import type { PopsAlertDetails } from "./components/alert/indexType";
import type { PopsConfirmDetails } from "./components/confirm/indexType";
import type { PopsPromptDetails } from "./components/prompt/indexType";
import type { PopsLoadingDetails } from "./components/loading/indexType";
import type { PopsIframeDetails } from "./components/iframe/indexType";
import type { PopsToolTipDetails } from "./components/tooltip/indexType";
import type { PopsDrawerDetails } from "./components/drawer/indexType";
import type { PopsFolderDetails } from "./components/folder/indexType";
import type { PopsPanelDetails } from "./components/panel/indexType";
import type { PopsRightClickMenuDetails } from "./components/rightClickMenu/indexType";
import type { PopsSearchSuggestionDetails } from "./components/searchSuggestion/indexType";
declare class Pops {
    /** 配置 */
    config: {
        /** 版本号 */
        version: string;
        cssText: {
            index: string;
            ninePalaceGridPosition: string;
            scrollbar: string;
            button: string;
            common: string;
            anim: string;
            alertCSS: string;
            confirmCSS: string;
            promptCSS: string;
            loadingCSS: string;
            iframeCSS: string;
            tooltipCSS: string;
            drawerCSS: string;
            folderCSS: string;
            panelCSS: string;
            rightClickMenu: string;
        };
        /** icon图标的svg代码 */
        iconSVG: {
            loading: string;
            min: string;
            max: string;
            mise: string;
            close: string;
            edit: string;
            share: string;
            delete: string;
            search: string;
            upload: string;
            next: string;
            prev: string;
            eleme: string;
            elemePlus: string;
            chromeFilled: string;
            cpu: string;
            videoPlay: string;
            videoPause: string;
            headset: string;
            monitor: string;
            documentCopy: string;
            picture: string;
            circleClose: string;
            view: string;
            hide: string;
            keyboard: string;
            arrowRight: string;
            arrowLeft: string;
        };
        /** 当前已配置的动画@keyframes名字映射(初始化时生成) */
        animation: {
            [key: string]: CSSKeyframesRule;
        };
        /** 存储已创建的元素 */
        layer: {
            iframe: import("./types/layer").PopsLayerCommonConfig[];
            loading: import("./types/layer").PopsLayerCommonConfig[];
            folder: import("./types/layer").PopsLayerCommonConfig[];
            alert: import("./types/layer").PopsLayerCommonConfig[];
            confirm: import("./types/layer").PopsLayerCommonConfig[];
            prompt: import("./types/layer").PopsLayerCommonConfig[];
            drawer: import("./types/layer").PopsLayerCommonConfig[];
            panel: import("./types/layer").PopsLayerCommonConfig[];
            tooltip: import("./types/layer").PopsLayerCommonConfig[];
            rightClickMenu: import("./types/layer").PopsLayerCommonConfig[];
        };
        /** 禁止滚动 */
        forbiddenScroll: {
            event(event: Event): boolean;
        };
        /** pops使用的工具类 */
        Utils: {
            isWin(target: any): boolean;
            isDOM(target: any): boolean;
            delete(target: any, propName: any): void;
            assign<T1, T2 extends object, T3 extends boolean>(target: T1, source: T2, isAdd?: T3 | undefined): T3 extends true ? T1 & T2 : T1;
            getRandomGUID(): string;
            contains(target: any): boolean;
            contains(context: any, target?: any): boolean;
            formatTime(text?: string | number | Date, formatType?: string): string;
            formatTime(text?: string | number | Date, formatType?: "yyyy-MM-dd HH:mm:ss" | "yyyy/MM/dd HH:mm:ss" | "yyyy_MM_dd_HH_mm_ss" | "yyyy\u5E74MM\u6708dd\u65E5 HH\u65F6mm\u5206ss\u79D2" | "yyyy\u5E74MM\u6708dd\u65E5 hh:mm:ss" | "yyyy\u5E74MM\u6708dd\u65E5 HH:mm:ss" | "yyyy-MM-dd" | "yyyyMMdd" | "HH:mm:ss"): string;
            formatByteToSize<T extends boolean>(byteSize: number | string, addType?: T | undefined): T extends true ? string : number;
            AnyTouch: () => typeof import("any-touch").default;
            isPhone(userAgent?: string): boolean;
            setTimeout(callback: Function, timeout?: number): number;
            clearTimeout(timeId: number | undefined): void;
            setInterval(callback: Function, timeout?: number): number;
            clearInterval(timeId: number | undefined): void;
        };
        /** pops使用的DOM工具类 */
        DOMUtils: {
            getAnimationEndNameList(): string[];
            getTransitionEndNameList(): string[];
            offset(element: HTMLElement, calcScroll?: boolean): DOMRect;
            width(element: HTMLElement | string | Window | Document | typeof globalThis, isShow?: boolean, parent?: HTMLElement | ShadowRoot): number;
            height(element: HTMLElement | string | Window | Document | typeof globalThis, isShow?: boolean, parent?: HTMLElement | ShadowRoot): number;
            outerWidth(element: HTMLElement | string | Window | Document, isShow?: boolean, parent?: HTMLElement | ShadowRoot): number;
            outerHeight(element: HTMLElement | string | Window, isShow?: boolean, parent?: HTMLElement | ShadowRoot): number;
            addClassName(element: HTMLElement, className: string): void;
            removeClassName(element: HTMLElement, className: string): void;
            containsClassName(element: HTMLElement, className: string): boolean;
            css(element: HTMLElement | string, property: keyof CSSStyleDeclaration): string;
            css(element: HTMLElement | string, property: string): string;
            css(element: HTMLElement | string, property: keyof CSSStyleDeclaration & string, value: string | number): string;
            css(element: HTMLElement | string, property: { [P in keyof CSSStyleDeclaration]?: CSSStyleDeclaration[P]; } | {
                [key: string]: string | number;
            }): string;
            createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, property?: ({ [P in keyof HTMLElementTagNameMap[K]]?: HTMLElementTagNameMap[K][P] extends string | boolean | number ? HTMLElementTagNameMap[K][P] : never; } & {
                [key: string]: any;
            }) | string, attributes?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsCreateElementAttributesMap): HTMLElementTagNameMap[K];
            parseTextToDOM<R extends HTMLElement>(elementString: string): R;
            getTextBoundingRect(input: HTMLInputElement | HTMLTextAreaElement, selectionStart: number | string, selectionEnd: number | string, debug: boolean): DOMRect;
            cssHide(ele: Element | null, isImportant?: boolean): void;
            cssShow(ele: Element | null): void;
            parseHTML<T1 extends boolean, T2 extends boolean>(html: string, useParser?: T1 | undefined, isComplete?: T2 | undefined): import("./types/PopsDOMUtilsEventType").ParseHTMLReturnType<T1, T2>;
            append(element: Element | Node | ShadowRoot | HTMLElement | string, content: HTMLElement | string | (HTMLElement | string | Element)[] | NodeList): void;
            appendHead($ele: HTMLElement): void;
            appendBody($ele: HTMLElement): void;
            isShow(element: HTMLElement): boolean;
            showElement($ele: HTMLElement, ownParent?: Node): {
                cloneNode: HTMLElement;
                recovery(): void;
            };
            getStyleValue(element: HTMLElement | CSSStyleDeclaration, styleName: string): number;
            before(element: HTMLElement | Element | string, content: HTMLElement | string): void;
            after(element: HTMLElement | Element | string, content: HTMLElement | string): void;
            getKeyFrames(sheet: CSSStyleSheet): {};
            on<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], callback: (this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T]) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): void;
            on<T extends Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], callback: (this: HTMLElement, event: T) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): void;
            on<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T], selectorTarget: HTMLElement) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): void;
            on<T extends Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: T, selectorTarget: HTMLElement) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): void;
            off<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], callback?: ((this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T]) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
            off<T extends Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], callback?: ((this: HTMLElement, event: T) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
            off<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], selector?: string | string[] | undefined | null, callback?: ((this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T], selectorTarget: HTMLElement) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
            off<T extends Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], selector?: string | string[] | undefined | null, callback?: ((this: HTMLElement, event: T, selectorTarget: HTMLElement) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
            offAll(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType?: string): void;
            offAll(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType?: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType | import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType[]): void;
            ready<T extends Function>(callback: T): void;
            trigger(element: HTMLElement | string | NodeList | any[] | Window | Document, eventType: string | string[], details?: object, useDispatchToTriggerEvent?: boolean): void;
            trigger(element: HTMLElement | string | NodeList | any[] | Window | Document, eventType: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType | import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType[], details?: object, useDispatchToTriggerEvent?: boolean): void;
            click(element: HTMLElement | string | Window, handler?: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["click"]) => void, details?: any, useDispatchToTriggerEvent?: boolean): void;
            blur(element: HTMLElement | string | Window, handler?: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["blur"]) => void, details?: object, useDispatchToTriggerEvent?: boolean): void;
            focus(element: HTMLElement | string | Window, handler?: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["focus"]) => void, details?: object, useDispatchToTriggerEvent?: boolean): void;
            hover(element: HTMLElement | string, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["hover"]) => void, option?: boolean | AddEventListenerOptions): void;
            keyup(target: HTMLElement | string | Window | typeof globalThis, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["keyup"]) => void, option?: boolean | AddEventListenerOptions): void;
            keydown(target: HTMLElement | Window | typeof globalThis | string, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["keydown"]) => void, option?: boolean | AddEventListenerOptions): void;
            keypress(target: HTMLElement | Window | typeof globalThis | string, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["keypress"]) => void, option?: boolean | AddEventListenerOptions): void;
            preventEvent(event: Event): boolean;
            preventEvent(element: HTMLElement, eventNameList?: string | string[], capture?: boolean): boolean;
            selector<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | undefined;
            selector<E extends Element = Element>(selector: string): E | undefined;
            selectorAll<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K][];
            selectorAll<E extends Element = Element>(selector: string): E[];
            matches($el: HTMLElement | Element | null | undefined, selector: string): boolean;
            closest<K extends keyof HTMLElementTagNameMap>($el: HTMLElement | Element, selector: string): HTMLElementTagNameMap[K] | null;
            closest<E extends Element = Element>($el: HTMLElement | Element, selector: string): E | null;
        };
        /** pops创建的实例使用的工具类 */
        InstanceUtils: {
            getMaxZIndexNodeInfo(deviation?: number, target?: Element | ShadowRoot | Document, ignoreCallBack?: ($ele: Element | HTMLElement | ShadowRoot) => boolean | void): {
                node: Element;
                zIndex: number;
            };
            getPopsMaxZIndex(deviation?: number): {
                zIndex: number;
                animElement: HTMLDivElement | null;
                isOverMaxZIndex: boolean;
            };
            getMaxZIndex(deviation?: number): number;
            removeInstance(moreLayerConfigList: import("./types/layer").PopsLayerCommonConfig[][], guid: string, isAll?: boolean): import("./types/layer").PopsLayerCommonConfig[][];
            hide(popsType: import("./types/main").PopsLayerMode, layerConfigList: import("./types/layer").PopsLayerCommonConfig[], guid: string, config: PopsAlertDetails | PopsDrawerDetails | PopsPromptDetails | PopsConfirmDetails | PopsIframeDetails | PopsLoadingDetails | PopsPanelDetails | PopsFolderDetails, animElement: HTMLElement, maskElement: HTMLElement): Promise<void>;
            show(popsType: import("./types/main").PopsLayerMode, layerConfigList: import("./types/layer").PopsLayerCommonConfig[], guid: string, config: PopsAlertDetails | PopsDrawerDetails | PopsPromptDetails | PopsConfirmDetails | PopsIframeDetails | PopsLoadingDetails | PopsPanelDetails | PopsFolderDetails, animElement: HTMLElement, maskElement?: HTMLElement): Promise<void>;
            close(popsType: string, layerConfigList: import("./types/layer").PopsLayerCommonConfig[], guid: string, config: PopsAlertDetails | PopsDrawerDetails | PopsPromptDetails | PopsConfirmDetails | PopsIframeDetails | PopsLoadingDetails | PopsPanelDetails | PopsFolderDetails, animElement: HTMLElement): Promise<void>;
            drag(moveElement: HTMLElement, options: {
                dragElement: HTMLElement;
                limit: boolean;
                triggerClick?: boolean;
                extraDistance: number;
                container?: Window | typeof globalThis | HTMLElement;
                moveCallBack?: (moveElement: HTMLElement, left: number, top: number) => void;
                endCallBack?: (moveElement: HTMLElement, left: number, top: number) => void;
                preventEvent?: (event: TouchEvent | PointerEvent) => boolean;
            }): void;
            sortElementListByProperty<T extends unknown, R>(getBeforeValueFun: (value: T) => R, getAfterValueFun: (value: T) => R, sortByDesc?: boolean): (after_obj: T, before_obj: T) => 1 | 0 | -1;
        };
        /** pops处理float类型使用的工具类 */
        MathFloatUtils: {
            isFloat(num: number): boolean;
            add(number1: number, number2: number): number;
            sub(number1: number, number2: number): string;
            division(number1: number, number2: number): number;
        };
        /** pops.panel中用于处理各个类型的工具 */
        panelHandleContentUtils: () => {
            asideULElement: HTMLUListElement;
            sectionContainerHeaderULElement: HTMLUListElement;
            sectionContainerULElement: HTMLUListElement;
            $el: {
                $content: HTMLDivElement;
                $contentAside: HTMLDivElement;
                $contentSectionContainer: HTMLDivElement;
            };
            init(details: {
                config: Required<PopsPanelDetails>;
                $el: {
                    $content: HTMLDivElement;
                    $contentAside: HTMLDivElement;
                    $contentSectionContainer: HTMLDivElement;
                };
            }): void;
            clearContainer(): void;
            clearAsideItemIsVisited(): void;
            setAsideItemIsVisited(element: HTMLElement): void;
            setElementAttributes(element: HTMLElement, attributes?: any): void;
            setElementProps(element: HTMLElement, props?: any): void;
            setElementClassName(element: HTMLElement, className?: string | string[] | (() => string | string[])): void;
            createAsideItem(asideConfig: import("./components/panel/indexType").PopsPanelContentConfig): HTMLLIElement;
            createSectionContainerItem_switch(formConfig: import("./components/panel/switchType").PopsPanelSwitchDetails): HTMLLIElement;
            createSectionContainerItem_slider(formConfig: import("./components/panel/sliderType").PopsPanelSliderDetails): HTMLLIElement;
            createSectionContainerItem_slider_new(formConfig: import("./components/panel/sliderType").PopsPanelSliderDetails): HTMLLIElement;
            createSectionContainerItem_input(formConfig: import("./components/panel/inputType").PopsPanelInputDetails): HTMLLIElement;
            createSectionContainerItem_textarea(formConfig: import("./components/panel/textareaType").PopsPanelTextAreaDetails): HTMLLIElement;
            createSectionContainerItem_select(formConfig: import("./components/panel/selectType").PopsPanelSelectDetails<any>): HTMLLIElement;
            createSectionContainerItem_select_multiple_new(formConfig: import("./components/panel/selectMultipleType").PopsPanelSelectMultipleDetails<any>): HTMLLIElement;
            createSectionContainerItem_button(formConfig: import("./components/panel/buttonType").PopsPanelButtonDetails): HTMLLIElement;
            createSectionContainerItem_deepMenu(formConfig: import("./components/panel/deepMenuType").PopsPanelDeepMenuDetails): HTMLLIElement;
            createSectionContainerItem_own(formConfig: import("./components/panel/ownType").PopsPanelOwnDetails): HTMLLIElement;
            createSectionContainerItem(formConfig: import("./components/panel/indexType").PopsPanelFormsTotalDetails): HTMLLIElement | undefined;
            createSectionContainerItem_forms(formConfig: import("./components/panel/indexType").PopsPanelContentConfig | import("./components/panel/formsType").PopsPanelFormsDetails): void;
            uListContainerAddItem(formConfig: import("./components/panel/indexType").PopsPanelFormsTotalDetails, containerOptions: Omit<import("./components/panel/commonType").PopsPanelRightAsideContainerOptions, "target">): void;
            setAsideItemClickEvent(asideLiElement: HTMLElement, asideConfig: import("./components/panel/indexType").PopsPanelContentConfig): void;
        };
    };
    init(): void;
    /**
     * 释放原有的pops控制权
     * @example
     * let pops = window.pops.noConflict()
     */
    noConflict(): Pops;
    /**
     * 通过navigator.userAgent判断是否是手机访问
     * @param userAgent
     */
    isPhone(userAgent?: string): boolean;
    /**
     * 为所有弹窗设置全局属性
     */
    GlobalConfig: {
        config: {
            style?: string | (() => string) | null;
            zIndex?: (number | (() => number) | null) | (string | (() => string) | null);
        } & Partial<import("./types/components").PopsCommonConfig>;
        setGlobalConfig(config: {
            style?: string | (() => string) | null;
            zIndex?: (number | (() => number) | null) | (string | (() => string) | null);
        } & Partial<import("./types/components").PopsCommonConfig>): void;
        getGlobalConfig(): {
            style?: string | undefined;
            zIndex?: string | number | undefined;
            useShadowRoot?: boolean | undefined;
            class?: string | undefined;
            only?: boolean | undefined;
            width?: string | undefined;
            height?: string | undefined;
            position?: import("./types/position").PopsPosition | undefined;
            animation?: import("./types/animation").PopsAnimation | undefined;
            mask?: import("./types/mask").PopsMaskDetails | undefined;
            forbiddenScroll?: boolean | undefined;
            beforeAppendToPageCallBack?: void;
        };
    };
    /**
     * 普通信息框
     * @param details 配置
     */
    alert: (details: PopsAlertDetails) => Omit<import("./types/event").PopsEventDetails, "function" | "type">;
    /**
     * 询问框
     * @param details 配置
     */
    confirm: (details: PopsConfirmDetails) => Omit<import("./types/event").PopsEventDetails, "function" | "type">;
    /**
     * 输入框
     * @param details 配置
     */
    prompt: (details: PopsPromptDetails) => Omit<import("./types/event").PopsEventDetails, "function" | "type">;
    /**
     * 加载层
     * @param details 配置
     */
    loading: (details: PopsLoadingDetails) => Omit<Omit<import("./types/event").PopsEventDetails, "$shadowContainer" | "$shadowRoot">, "function" | "type">;
    /**
     * iframe层
     * @param details 配置
     */
    iframe: (details: PopsIframeDetails) => Omit<import("./types/event").PopsEventDetails & {
        iframeElement: HTMLIFrameElement;
    }, "function" | "type">;
    /**
     * 提示框
     * @param details 配置
     */
    tooltip: (details: PopsToolTipDetails) => {
        guid: string;
        config: {
            target: HTMLElement;
            content: string | (() => string);
            isDiffContent: boolean;
            position: import("./components/tooltip/indexType").PopsTooltipPosition;
            className: string;
            isFixed: boolean;
            alwaysShow: boolean;
            delayCloseTime: number;
            triggerShowEventName: string;
            triggerCloseEventName: string;
            eventOption: {
                once: boolean;
                passive: boolean;
                signal: {
                    readonly aborted: boolean;
                    onabort: ((this: AbortSignal, ev: Event) => any) | null;
                    readonly reason: any;
                    throwIfAborted: () => void;
                    addEventListener: {
                        <K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                        (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;
                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                    };
                    dispatchEvent: (event: Event) => boolean;
                };
                capture: boolean;
            };
            showBeforeCallBack: ($toolTip: HTMLElement) => false | void;
            showAfterCallBack: ($toolTip: HTMLElement) => void;
            closeBeforeCallBack: ($toolTip: HTMLElement) => false | void;
            closeAfterCallBack: ($toolTip: HTMLElement) => void;
            showArrow: boolean;
            arrowDistance: number;
            otherDistance: number;
            useShadowRoot: boolean;
            only: boolean;
            zIndex: number | (() => number);
            style: string | null;
            beforeAppendToPageCallBack: ($shadowRoot: ShadowRoot | HTMLElement, $shadowContainer: HTMLDivElement) => void;
        };
        $shadowContainer: HTMLDivElement;
        $shadowRoot: HTMLDivElement | ShadowRoot;
        toolTip: import("./components/tooltip").ToolTip;
    };
    /**
     * 抽屉
     * @param details 配置
     */
    drawer: (details: PopsDrawerDetails) => Omit<import("./types/event").PopsEventDetails, "function" | "type">;
    /**
     * 文件夹
     * @param details 配置
     */
    folder: (details: PopsFolderDetails) => Omit<import("./types/event").PopsEventDetails, "function" | "type">;
    /**
     * 配置面板
     * @param details 配置
     */
    panel: (details: PopsPanelDetails) => Omit<import("./types/event").PopsEventDetails, "function" | "type">;
    /**
     * 右键菜单
     * @param details 配置
     */
    rightClickMenu: (details: PopsRightClickMenuDetails) => {
        guid: string;
        config: {
            target: Node | HTMLElement | {
                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                dispatchEvent: (event: Event) => boolean;
                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
            } | {
                [x: number]: /*elided*/ any;
                readonly clientInformation: {
                    readonly clipboard: {
                        read: () => Promise<ClipboardItems>;
                        readText: () => Promise<string>;
                        write: (data: ClipboardItems) => Promise<void>;
                        writeText: (data: string) => Promise<void>;
                        addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                        dispatchEvent: (event: Event) => boolean;
                        removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                    };
                    readonly credentials: {
                        create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                        get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                        preventSilentAccess: () => Promise<void>;
                        store: (credential: Credential) => Promise<void>;
                    };
                    readonly doNotTrack: string | null;
                    readonly geolocation: {
                        clearWatch: (watchId: number) => void;
                        getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                        watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                    };
                    readonly maxTouchPoints: number;
                    readonly mediaCapabilities: {
                        decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                        encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                    };
                    readonly mediaDevices: {
                        ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                        enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                        getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                        getSupportedConstraints: () => MediaTrackSupportedConstraints;
                        getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                        addEventListener: {
                            <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    };
                    readonly mediaSession: {
                        metadata: {
                            album: string;
                            artist: string;
                            artwork: readonly {
                                sizes: string;
                                src: string;
                                type: string;
                            }[];
                            title: string;
                        } | null;
                        playbackState: MediaSessionPlaybackState;
                        setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                        setPositionState: (state?: MediaPositionState) => void;
                    };
                    readonly permissions: {
                        query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                    };
                    readonly serviceWorker: {
                        readonly controller: {
                            onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                            readonly scriptURL: string;
                            readonly state: ServiceWorkerState;
                            postMessage: {
                                (message: any, transfer: Transferable[]): void;
                                (message: any, options?: StructuredSerializeOptions): void;
                            };
                            addEventListener: {
                                <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                            onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                        } | null;
                        oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                        onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                        onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                        readonly ready: {
                            then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                            catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                            finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                            readonly [Symbol.toStringTag]: string;
                        };
                        getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                        getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                        register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                        startMessages: () => void;
                        addEventListener: {
                            <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    };
                    readonly userActivation: {
                        readonly hasBeenActive: boolean;
                        readonly isActive: boolean;
                    };
                    readonly wakeLock: {
                        request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                    };
                    canShare: (data?: ShareData) => boolean;
                    getGamepads: () => (Gamepad | null)[];
                    requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                    requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                    sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                    share: (data?: ShareData) => Promise<void>;
                    vibrate: (pattern: VibratePattern) => boolean;
                    readonly webdriver: boolean;
                    clearAppBadge: () => Promise<void>;
                    setAppBadge: (contents?: number) => Promise<void>;
                    readonly hardwareConcurrency: number;
                    registerProtocolHandler: (scheme: string, url: string | URL) => void;
                    readonly cookieEnabled: boolean;
                    readonly appCodeName: string;
                    readonly appName: string;
                    readonly appVersion: string;
                    readonly platform: string;
                    readonly product: string;
                    readonly productSub: string;
                    readonly userAgent: string;
                    readonly vendor: string;
                    readonly vendorSub: string;
                    readonly language: string;
                    readonly languages: ReadonlyArray<string>;
                    readonly locks: {
                        query: () => Promise<LockManagerSnapshot>;
                        request: {
                            (name: string, callback: LockGrantedCallback): Promise<any>;
                            (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                        };
                    };
                    readonly onLine: boolean;
                    readonly mimeTypes: {
                        [x: number]: {
                            readonly description: string;
                            readonly enabledPlugin: {
                                [x: number]: /*elided*/ any;
                                readonly description: string;
                                readonly filename: string;
                                readonly length: number;
                                readonly name: string;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly suffixes: string;
                            readonly type: string;
                        };
                        readonly length: number;
                        item: (index: number) => MimeType | null;
                        namedItem: (name: string) => MimeType | null;
                    };
                    readonly pdfViewerEnabled: boolean;
                    readonly plugins: {
                        [x: number]: {
                            [x: number]: {
                                readonly description: string;
                                readonly enabledPlugin: /*elided*/ any;
                                readonly suffixes: string;
                                readonly type: string;
                            };
                            readonly description: string;
                            readonly filename: string;
                            readonly length: number;
                            readonly name: string;
                            item: (index: number) => MimeType | null;
                            namedItem: (name: string) => MimeType | null;
                        };
                        readonly length: number;
                        item: (index: number) => Plugin | null;
                        namedItem: (name: string) => Plugin | null;
                        refresh: () => void;
                    };
                    javaEnabled: () => boolean;
                    readonly storage: {
                        estimate: () => Promise<StorageEstimate>;
                        getDirectory: () => Promise<FileSystemDirectoryHandle>;
                        persist: () => Promise<boolean>;
                        persisted: () => Promise<boolean>;
                    };
                };
                readonly closed: boolean;
                readonly customElements: {
                    define: (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions) => void;
                    get: (name: string) => CustomElementConstructor | undefined;
                    getName: (constructor: CustomElementConstructor) => string | null;
                    upgrade: (root: Node) => void;
                    whenDefined: (name: string) => Promise<CustomElementConstructor>;
                };
                readonly devicePixelRatio: number;
                readonly document: Document;
                readonly event: {
                    readonly bubbles: boolean;
                    cancelBubble: boolean;
                    readonly cancelable: boolean;
                    readonly composed: boolean;
                    readonly currentTarget: {
                        addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                        dispatchEvent: (event: Event) => boolean;
                        removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                    } | null;
                    readonly defaultPrevented: boolean;
                    readonly eventPhase: number;
                    readonly isTrusted: boolean;
                    returnValue: boolean;
                    readonly srcElement: {
                        addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                        dispatchEvent: (event: Event) => boolean;
                        removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                    } | null;
                    readonly target: {
                        addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                        dispatchEvent: (event: Event) => boolean;
                        removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                    } | null;
                    readonly timeStamp: DOMHighResTimeStamp;
                    readonly type: string;
                    composedPath: () => EventTarget[];
                    initEvent: (type: string, bubbles?: boolean, cancelable?: boolean) => void;
                    preventDefault: () => void;
                    stopImmediatePropagation: () => void;
                    stopPropagation: () => void;
                    readonly NONE: 0;
                    readonly CAPTURING_PHASE: 1;
                    readonly AT_TARGET: 2;
                    readonly BUBBLING_PHASE: 3;
                } | undefined;
                readonly external: {
                    AddSearchProvider: () => void;
                    IsSearchProviderInstalled: () => void;
                };
                readonly frameElement: Element | null;
                readonly frames: /*elided*/ any;
                readonly history: {
                    readonly length: number;
                    scrollRestoration: ScrollRestoration;
                    readonly state: any;
                    back: () => void;
                    forward: () => void;
                    go: (delta?: number) => void;
                    pushState: (data: any, unused: string, url?: string | URL | null) => void;
                    replaceState: (data: any, unused: string, url?: string | URL | null) => void;
                };
                readonly innerHeight: number;
                readonly innerWidth: number;
                readonly length: number;
                location: {
                    readonly ancestorOrigins: {
                        [x: number]: string;
                        readonly length: number;
                        contains: (string: string) => boolean;
                        item: (index: number) => string | null;
                    };
                    hash: string;
                    host: string;
                    hostname: string;
                    href: string;
                    toString: () => string;
                    readonly origin: string;
                    pathname: string;
                    port: string;
                    protocol: string;
                    search: string;
                    assign: (url: string | URL) => void;
                    reload: () => void;
                    replace: (url: string | URL) => void;
                };
                readonly locationbar: {
                    readonly visible: boolean;
                };
                readonly menubar: {
                    readonly visible: boolean;
                };
                name: string;
                readonly navigator: {
                    readonly clipboard: {
                        read: () => Promise<ClipboardItems>;
                        readText: () => Promise<string>;
                        write: (data: ClipboardItems) => Promise<void>;
                        writeText: (data: string) => Promise<void>;
                        addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                        dispatchEvent: (event: Event) => boolean;
                        removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                    };
                    readonly credentials: {
                        create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                        get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                        preventSilentAccess: () => Promise<void>;
                        store: (credential: Credential) => Promise<void>;
                    };
                    readonly doNotTrack: string | null;
                    readonly geolocation: {
                        clearWatch: (watchId: number) => void;
                        getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                        watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                    };
                    readonly maxTouchPoints: number;
                    readonly mediaCapabilities: {
                        decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                        encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                    };
                    readonly mediaDevices: {
                        ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                        enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                        getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                        getSupportedConstraints: () => MediaTrackSupportedConstraints;
                        getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                        addEventListener: {
                            <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    };
                    readonly mediaSession: {
                        metadata: {
                            album: string;
                            artist: string;
                            artwork: readonly {
                                sizes: string;
                                src: string;
                                type: string;
                            }[];
                            title: string;
                        } | null;
                        playbackState: MediaSessionPlaybackState;
                        setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                        setPositionState: (state?: MediaPositionState) => void;
                    };
                    readonly permissions: {
                        query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                    };
                    readonly serviceWorker: {
                        readonly controller: {
                            onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                            readonly scriptURL: string;
                            readonly state: ServiceWorkerState;
                            postMessage: {
                                (message: any, transfer: Transferable[]): void;
                                (message: any, options?: StructuredSerializeOptions): void;
                            };
                            addEventListener: {
                                <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                            onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                        } | null;
                        oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                        onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                        onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                        readonly ready: {
                            then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                            catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                            finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                            readonly [Symbol.toStringTag]: string;
                        };
                        getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                        getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                        register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                        startMessages: () => void;
                        addEventListener: {
                            <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    };
                    readonly userActivation: {
                        readonly hasBeenActive: boolean;
                        readonly isActive: boolean;
                    };
                    readonly wakeLock: {
                        request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                    };
                    canShare: (data?: ShareData) => boolean;
                    getGamepads: () => (Gamepad | null)[];
                    requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                    requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                    sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                    share: (data?: ShareData) => Promise<void>;
                    vibrate: (pattern: VibratePattern) => boolean;
                    readonly webdriver: boolean;
                    clearAppBadge: () => Promise<void>;
                    setAppBadge: (contents?: number) => Promise<void>;
                    readonly hardwareConcurrency: number;
                    registerProtocolHandler: (scheme: string, url: string | URL) => void;
                    readonly cookieEnabled: boolean;
                    readonly appCodeName: string;
                    readonly appName: string;
                    readonly appVersion: string;
                    readonly platform: string;
                    readonly product: string;
                    readonly productSub: string;
                    readonly userAgent: string;
                    readonly vendor: string;
                    readonly vendorSub: string;
                    readonly language: string;
                    readonly languages: ReadonlyArray<string>;
                    readonly locks: {
                        query: () => Promise<LockManagerSnapshot>;
                        request: {
                            (name: string, callback: LockGrantedCallback): Promise<any>;
                            (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                        };
                    };
                    readonly onLine: boolean;
                    readonly mimeTypes: {
                        [x: number]: {
                            readonly description: string;
                            readonly enabledPlugin: {
                                [x: number]: /*elided*/ any;
                                readonly description: string;
                                readonly filename: string;
                                readonly length: number;
                                readonly name: string;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly suffixes: string;
                            readonly type: string;
                        };
                        readonly length: number;
                        item: (index: number) => MimeType | null;
                        namedItem: (name: string) => MimeType | null;
                    };
                    readonly pdfViewerEnabled: boolean;
                    readonly plugins: {
                        [x: number]: {
                            [x: number]: {
                                readonly description: string;
                                readonly enabledPlugin: /*elided*/ any;
                                readonly suffixes: string;
                                readonly type: string;
                            };
                            readonly description: string;
                            readonly filename: string;
                            readonly length: number;
                            readonly name: string;
                            item: (index: number) => MimeType | null;
                            namedItem: (name: string) => MimeType | null;
                        };
                        readonly length: number;
                        item: (index: number) => Plugin | null;
                        namedItem: (name: string) => Plugin | null;
                        refresh: () => void;
                    };
                    javaEnabled: () => boolean;
                    readonly storage: {
                        estimate: () => Promise<StorageEstimate>;
                        getDirectory: () => Promise<FileSystemDirectoryHandle>;
                        persist: () => Promise<boolean>;
                        persisted: () => Promise<boolean>;
                    };
                };
                ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;
                ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
                ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
                onorientationchange: ((this: Window, ev: Event) => any) | null;
                opener: any;
                readonly orientation: number;
                readonly outerHeight: number;
                readonly outerWidth: number;
                readonly pageXOffset: number;
                readonly pageYOffset: number;
                readonly parent: /*elided*/ any;
                readonly personalbar: {
                    readonly visible: boolean;
                };
                readonly screen: {
                    readonly availHeight: number;
                    readonly availWidth: number;
                    readonly colorDepth: number;
                    readonly height: number;
                    readonly orientation: {
                        readonly angle: number;
                        onchange: ((this: ScreenOrientation, ev: Event) => any) | null;
                        readonly type: OrientationType;
                        unlock: () => void;
                        addEventListener: {
                            <K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    };
                    readonly pixelDepth: number;
                    readonly width: number;
                };
                readonly screenLeft: number;
                readonly screenTop: number;
                readonly screenX: number;
                readonly screenY: number;
                readonly scrollX: number;
                readonly scrollY: number;
                readonly scrollbars: {
                    readonly visible: boolean;
                };
                readonly self: {
                    [x: number]: /*elided*/ any;
                    clientInformation: {
                        readonly clipboard: {
                            read: () => Promise<ClipboardItems>;
                            readText: () => Promise<string>;
                            write: (data: ClipboardItems) => Promise<void>;
                            writeText: (data: string) => Promise<void>;
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        };
                        readonly credentials: {
                            create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                            get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                            preventSilentAccess: () => Promise<void>;
                            store: (credential: Credential) => Promise<void>;
                        };
                        readonly doNotTrack: string | null;
                        readonly geolocation: {
                            clearWatch: (watchId: number) => void;
                            getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                            watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                        };
                        readonly maxTouchPoints: number;
                        readonly mediaCapabilities: {
                            decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                            encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                        };
                        readonly mediaDevices: {
                            ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                            enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                            getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                            getSupportedConstraints: () => MediaTrackSupportedConstraints;
                            getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                            addEventListener: {
                                <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly mediaSession: {
                            metadata: {
                                album: string;
                                artist: string;
                                artwork: readonly {
                                    sizes: string;
                                    src: string;
                                    type: string;
                                }[];
                                title: string;
                            } | null;
                            playbackState: MediaSessionPlaybackState;
                            setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                            setPositionState: (state?: MediaPositionState) => void;
                        };
                        readonly permissions: {
                            query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                        };
                        readonly serviceWorker: {
                            readonly controller: {
                                onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                                readonly scriptURL: string;
                                readonly state: ServiceWorkerState;
                                postMessage: {
                                    (message: any, transfer: Transferable[]): void;
                                    (message: any, options?: StructuredSerializeOptions): void;
                                };
                                addEventListener: {
                                    <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                                onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                            } | null;
                            oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                            onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                            onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                            readonly ready: {
                                then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                                catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                                finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                                readonly [Symbol.toStringTag]: string;
                            };
                            getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                            getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                            register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                            startMessages: () => void;
                            addEventListener: {
                                <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly userActivation: {
                            readonly hasBeenActive: boolean;
                            readonly isActive: boolean;
                        };
                        readonly wakeLock: {
                            request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                        };
                        canShare: (data?: ShareData) => boolean;
                        getGamepads: () => (Gamepad | null)[];
                        requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                        requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                        sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                        share: (data?: ShareData) => Promise<void>;
                        vibrate: (pattern: VibratePattern) => boolean;
                        readonly webdriver: boolean;
                        clearAppBadge: () => Promise<void>;
                        setAppBadge: (contents?: number) => Promise<void>;
                        readonly hardwareConcurrency: number;
                        registerProtocolHandler: (scheme: string, url: string | URL) => void;
                        readonly cookieEnabled: boolean;
                        readonly appCodeName: string;
                        readonly appName: string;
                        readonly appVersion: string;
                        readonly platform: string;
                        readonly product: string;
                        readonly productSub: string;
                        readonly userAgent: string;
                        readonly vendor: string;
                        readonly vendorSub: string;
                        readonly language: string;
                        readonly languages: ReadonlyArray<string>;
                        readonly locks: {
                            query: () => Promise<LockManagerSnapshot>;
                            request: {
                                (name: string, callback: LockGrantedCallback): Promise<any>;
                                (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                            };
                        };
                        readonly onLine: boolean;
                        readonly mimeTypes: {
                            [x: number]: {
                                readonly description: string;
                                readonly enabledPlugin: {
                                    [x: number]: /*elided*/ any;
                                    readonly description: string;
                                    readonly filename: string;
                                    readonly length: number;
                                    readonly name: string;
                                    item: (index: number) => MimeType | null;
                                    namedItem: (name: string) => MimeType | null;
                                };
                                readonly suffixes: string;
                                readonly type: string;
                            };
                            readonly length: number;
                            item: (index: number) => MimeType | null;
                            namedItem: (name: string) => MimeType | null;
                        };
                        readonly pdfViewerEnabled: boolean;
                        readonly plugins: {
                            [x: number]: {
                                [x: number]: {
                                    readonly description: string;
                                    readonly enabledPlugin: /*elided*/ any;
                                    readonly suffixes: string;
                                    readonly type: string;
                                };
                                readonly description: string;
                                readonly filename: string;
                                readonly length: number;
                                readonly name: string;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly length: number;
                            item: (index: number) => Plugin | null;
                            namedItem: (name: string) => Plugin | null;
                            refresh: () => void;
                        };
                        javaEnabled: () => boolean;
                        readonly storage: {
                            estimate: () => Promise<StorageEstimate>;
                            getDirectory: () => Promise<FileSystemDirectoryHandle>;
                            persist: () => Promise<boolean>;
                            persisted: () => Promise<boolean>;
                        };
                    };
                    closed: boolean;
                    customElements: {
                        define: (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions) => void;
                        get: (name: string) => CustomElementConstructor | undefined;
                        getName: (constructor: CustomElementConstructor) => string | null;
                        upgrade: (root: Node) => void;
                        whenDefined: (name: string) => Promise<CustomElementConstructor>;
                    };
                    devicePixelRatio: number;
                    document: Document;
                    event: {
                        readonly bubbles: boolean;
                        cancelBubble: boolean;
                        readonly cancelable: boolean;
                        readonly composed: boolean;
                        readonly currentTarget: {
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        } | null;
                        readonly defaultPrevented: boolean;
                        readonly eventPhase: number;
                        readonly isTrusted: boolean;
                        returnValue: boolean;
                        readonly srcElement: {
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        } | null;
                        readonly target: {
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        } | null;
                        readonly timeStamp: DOMHighResTimeStamp;
                        readonly type: string;
                        composedPath: () => EventTarget[];
                        initEvent: (type: string, bubbles?: boolean, cancelable?: boolean) => void;
                        preventDefault: () => void;
                        stopImmediatePropagation: () => void;
                        stopPropagation: () => void;
                        readonly NONE: 0;
                        readonly CAPTURING_PHASE: 1;
                        readonly AT_TARGET: 2;
                        readonly BUBBLING_PHASE: 3;
                    } | undefined;
                    external: {
                        AddSearchProvider: () => void;
                        IsSearchProviderInstalled: () => void;
                    };
                    frameElement: Element | null;
                    frames: /*elided*/ any;
                    history: {
                        readonly length: number;
                        scrollRestoration: ScrollRestoration;
                        readonly state: any;
                        back: () => void;
                        forward: () => void;
                        go: (delta?: number) => void;
                        pushState: (data: any, unused: string, url?: string | URL | null) => void;
                        replaceState: (data: any, unused: string, url?: string | URL | null) => void;
                    };
                    innerHeight: number;
                    innerWidth: number;
                    length: number;
                    location: {
                        readonly ancestorOrigins: {
                            [x: number]: string;
                            readonly length: number;
                            contains: (string: string) => boolean;
                            item: (index: number) => string | null;
                        };
                        hash: string;
                        host: string;
                        hostname: string;
                        href: string;
                        toString: () => string;
                        readonly origin: string;
                        pathname: string;
                        port: string;
                        protocol: string;
                        search: string;
                        assign: (url: string | URL) => void;
                        reload: () => void;
                        replace: (url: string | URL) => void;
                    };
                    locationbar: {
                        readonly visible: boolean;
                    };
                    menubar: {
                        readonly visible: boolean;
                    };
                    name: string;
                    navigator: {
                        readonly clipboard: {
                            read: () => Promise<ClipboardItems>;
                            readText: () => Promise<string>;
                            write: (data: ClipboardItems) => Promise<void>;
                            writeText: (data: string) => Promise<void>;
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        };
                        readonly credentials: {
                            create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                            get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                            preventSilentAccess: () => Promise<void>;
                            store: (credential: Credential) => Promise<void>;
                        };
                        readonly doNotTrack: string | null;
                        readonly geolocation: {
                            clearWatch: (watchId: number) => void;
                            getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                            watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                        };
                        readonly maxTouchPoints: number;
                        readonly mediaCapabilities: {
                            decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                            encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                        };
                        readonly mediaDevices: {
                            ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                            enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                            getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                            getSupportedConstraints: () => MediaTrackSupportedConstraints;
                            getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                            addEventListener: {
                                <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly mediaSession: {
                            metadata: {
                                album: string;
                                artist: string;
                                artwork: readonly {
                                    sizes: string;
                                    src: string;
                                    type: string;
                                }[];
                                title: string;
                            } | null;
                            playbackState: MediaSessionPlaybackState;
                            setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                            setPositionState: (state?: MediaPositionState) => void;
                        };
                        readonly permissions: {
                            query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                        };
                        readonly serviceWorker: {
                            readonly controller: {
                                onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                                readonly scriptURL: string;
                                readonly state: ServiceWorkerState;
                                postMessage: {
                                    (message: any, transfer: Transferable[]): void;
                                    (message: any, options?: StructuredSerializeOptions): void;
                                };
                                addEventListener: {
                                    <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                                onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                            } | null;
                            oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                            onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                            onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                            readonly ready: {
                                then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                                catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                                finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                                readonly [Symbol.toStringTag]: string;
                            };
                            getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                            getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                            register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                            startMessages: () => void;
                            addEventListener: {
                                <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly userActivation: {
                            readonly hasBeenActive: boolean;
                            readonly isActive: boolean;
                        };
                        readonly wakeLock: {
                            request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                        };
                        canShare: (data?: ShareData) => boolean;
                        getGamepads: () => (Gamepad | null)[];
                        requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                        requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                        sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                        share: (data?: ShareData) => Promise<void>;
                        vibrate: (pattern: VibratePattern) => boolean;
                        readonly webdriver: boolean;
                        clearAppBadge: () => Promise<void>;
                        setAppBadge: (contents?: number) => Promise<void>;
                        readonly hardwareConcurrency: number;
                        registerProtocolHandler: (scheme: string, url: string | URL) => void;
                        readonly cookieEnabled: boolean;
                        readonly appCodeName: string;
                        readonly appName: string;
                        readonly appVersion: string;
                        readonly platform: string;
                        readonly product: string;
                        readonly productSub: string;
                        readonly userAgent: string;
                        readonly vendor: string;
                        readonly vendorSub: string;
                        readonly language: string;
                        readonly languages: ReadonlyArray<string>;
                        readonly locks: {
                            query: () => Promise<LockManagerSnapshot>;
                            request: {
                                (name: string, callback: LockGrantedCallback): Promise<any>;
                                (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                            };
                        };
                        readonly onLine: boolean;
                        readonly mimeTypes: {
                            [x: number]: {
                                readonly description: string;
                                readonly enabledPlugin: {
                                    [x: number]: /*elided*/ any;
                                    readonly description: string;
                                    readonly filename: string;
                                    readonly length: number;
                                    readonly name: string;
                                    item: (index: number) => MimeType | null;
                                    namedItem: (name: string) => MimeType | null;
                                };
                                readonly suffixes: string;
                                readonly type: string;
                            };
                            readonly length: number;
                            item: (index: number) => MimeType | null;
                            namedItem: (name: string) => MimeType | null;
                        };
                        readonly pdfViewerEnabled: boolean;
                        readonly plugins: {
                            [x: number]: {
                                [x: number]: {
                                    readonly description: string;
                                    readonly enabledPlugin: /*elided*/ any;
                                    readonly suffixes: string;
                                    readonly type: string;
                                };
                                readonly description: string;
                                readonly filename: string;
                                readonly length: number;
                                readonly name: string;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly length: number;
                            item: (index: number) => Plugin | null;
                            namedItem: (name: string) => Plugin | null;
                            refresh: () => void;
                        };
                        javaEnabled: () => boolean;
                        readonly storage: {
                            estimate: () => Promise<StorageEstimate>;
                            getDirectory: () => Promise<FileSystemDirectoryHandle>;
                            persist: () => Promise<boolean>;
                            persisted: () => Promise<boolean>;
                        };
                    };
                    ondevicemotion: (((this: Window, ev: DeviceMotionEvent) => any) & ((this: Window, ev: DeviceMotionEvent) => any)) | null;
                    ondeviceorientation: (((this: Window, ev: DeviceOrientationEvent) => any) & ((this: Window, ev: DeviceOrientationEvent) => any)) | null;
                    ondeviceorientationabsolute: (((this: Window, ev: DeviceOrientationEvent) => any) & ((this: Window, ev: DeviceOrientationEvent) => any)) | null;
                    onorientationchange: (((this: Window, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    opener: any;
                    orientation: number;
                    outerHeight: number;
                    outerWidth: number;
                    pageXOffset: number;
                    pageYOffset: number;
                    parent: /*elided*/ any;
                    personalbar: {
                        readonly visible: boolean;
                    };
                    screen: {
                        readonly availHeight: number;
                        readonly availWidth: number;
                        readonly colorDepth: number;
                        readonly height: number;
                        readonly orientation: {
                            readonly angle: number;
                            onchange: ((this: ScreenOrientation, ev: Event) => any) | null;
                            readonly type: OrientationType;
                            unlock: () => void;
                            addEventListener: {
                                <K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly pixelDepth: number;
                        readonly width: number;
                    };
                    screenLeft: number;
                    screenTop: number;
                    screenX: number;
                    screenY: number;
                    scrollX: number;
                    scrollY: number;
                    scrollbars: {
                        readonly visible: boolean;
                    };
                    self: /*elided*/ any;
                    speechSynthesis: {
                        onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;
                        readonly paused: boolean;
                        readonly pending: boolean;
                        readonly speaking: boolean;
                        cancel: () => void;
                        getVoices: () => SpeechSynthesisVoice[];
                        pause: () => void;
                        resume: () => void;
                        speak: (utterance: SpeechSynthesisUtterance) => void;
                        addEventListener: {
                            <K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    };
                    status: string;
                    statusbar: {
                        readonly visible: boolean;
                    };
                    toolbar: {
                        readonly visible: boolean;
                    };
                    top: /*elided*/ any | null;
                    visualViewport: {
                        readonly height: number;
                        readonly offsetLeft: number;
                        readonly offsetTop: number;
                        onresize: ((this: VisualViewport, ev: Event) => any) | null;
                        onscroll: ((this: VisualViewport, ev: Event) => any) | null;
                        readonly pageLeft: number;
                        readonly pageTop: number;
                        readonly scale: number;
                        readonly width: number;
                        addEventListener: {
                            <K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    } | null;
                    window: /*elided*/ any;
                    alert: ((message?: any) => void) & typeof alert;
                    blur: (() => void) & typeof blur;
                    cancelIdleCallback: ((handle: number) => void) & typeof cancelIdleCallback;
                    captureEvents: (() => void) & typeof captureEvents;
                    close: (() => void) & typeof close;
                    confirm: ((message?: string) => boolean) & typeof confirm;
                    focus: (() => void) & typeof focus;
                    getComputedStyle: ((elt: Element, pseudoElt?: string | null) => CSSStyleDeclaration) & typeof getComputedStyle;
                    getSelection: (() => Selection | null) & typeof getSelection;
                    matchMedia: ((query: string) => MediaQueryList) & typeof matchMedia;
                    moveBy: ((x: number, y: number) => void) & typeof moveBy;
                    moveTo: ((x: number, y: number) => void) & typeof moveTo;
                    open: ((url?: string | URL, target?: string, features?: string) => WindowProxy | null) & typeof open;
                    postMessage: {
                        (message: any, targetOrigin: string, transfer?: Transferable[]): void;
                        (message: any, options?: WindowPostMessageOptions): void;
                    } & typeof postMessage;
                    print: (() => void) & typeof print;
                    prompt: ((message?: string, _default?: string) => string | null) & typeof prompt;
                    releaseEvents: (() => void) & typeof releaseEvents;
                    requestIdleCallback: ((callback: IdleRequestCallback, options?: IdleRequestOptions) => number) & typeof requestIdleCallback;
                    resizeBy: ((x: number, y: number) => void) & typeof resizeBy;
                    resizeTo: ((width: number, height: number) => void) & typeof resizeTo;
                    scroll: {
                        (options?: ScrollToOptions): void;
                        (x: number, y: number): void;
                    } & typeof scroll;
                    scrollBy: {
                        (options?: ScrollToOptions): void;
                        (x: number, y: number): void;
                    } & typeof scrollBy;
                    scrollTo: {
                        (options?: ScrollToOptions): void;
                        (x: number, y: number): void;
                    } & typeof scrollTo;
                    stop: (() => void) & typeof stop;
                    addEventListener: {
                        <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
                    } & typeof addEventListener;
                    removeEventListener: {
                        <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                    } & typeof removeEventListener;
                    dispatchEvent: ((event: Event) => boolean) & typeof dispatchEvent;
                    cancelAnimationFrame: ((handle: number) => void) & typeof cancelAnimationFrame;
                    requestAnimationFrame: ((callback: FrameRequestCallback) => number) & typeof requestAnimationFrame;
                    onabort: (((this: GlobalEventHandlers, ev: UIEvent) => any) & ((this: Window, ev: UIEvent) => any)) | null;
                    onanimationcancel: (((this: GlobalEventHandlers, ev: AnimationEvent) => any) & ((this: Window, ev: AnimationEvent) => any)) | null;
                    onanimationend: (((this: GlobalEventHandlers, ev: AnimationEvent) => any) & ((this: Window, ev: AnimationEvent) => any)) | null;
                    onanimationiteration: (((this: GlobalEventHandlers, ev: AnimationEvent) => any) & ((this: Window, ev: AnimationEvent) => any)) | null;
                    onanimationstart: (((this: GlobalEventHandlers, ev: AnimationEvent) => any) & ((this: Window, ev: AnimationEvent) => any)) | null;
                    onauxclick: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onbeforeinput: (((this: GlobalEventHandlers, ev: InputEvent) => any) & ((this: Window, ev: InputEvent) => any)) | null;
                    onbeforetoggle: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onblur: (((this: GlobalEventHandlers, ev: FocusEvent) => any) & ((this: Window, ev: FocusEvent) => any)) | null;
                    oncancel: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncanplay: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncanplaythrough: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onchange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onclick: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onclose: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncontextlost: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncontextmenu: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    oncontextrestored: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncopy: (((this: GlobalEventHandlers, ev: ClipboardEvent) => any) & ((this: Window, ev: ClipboardEvent) => any)) | null;
                    oncuechange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncut: (((this: GlobalEventHandlers, ev: ClipboardEvent) => any) & ((this: Window, ev: ClipboardEvent) => any)) | null;
                    ondblclick: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    ondrag: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragend: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragenter: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragleave: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragover: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragstart: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondrop: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondurationchange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onemptied: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onended: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onerror: OnErrorEventHandler;
                    onfocus: (((this: GlobalEventHandlers, ev: FocusEvent) => any) & ((this: Window, ev: FocusEvent) => any)) | null;
                    onformdata: (((this: GlobalEventHandlers, ev: FormDataEvent) => any) & ((this: Window, ev: FormDataEvent) => any)) | null;
                    ongotpointercapture: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    oninput: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oninvalid: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onkeydown: (((this: GlobalEventHandlers, ev: KeyboardEvent) => any) & ((this: Window, ev: KeyboardEvent) => any)) | null;
                    onkeypress: (((this: GlobalEventHandlers, ev: KeyboardEvent) => any) & ((this: Window, ev: KeyboardEvent) => any)) | null;
                    onkeyup: (((this: GlobalEventHandlers, ev: KeyboardEvent) => any) & ((this: Window, ev: KeyboardEvent) => any)) | null;
                    onload: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onloadeddata: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onloadedmetadata: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onloadstart: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onlostpointercapture: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onmousedown: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseenter: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseleave: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmousemove: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseout: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseover: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseup: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onpaste: (((this: GlobalEventHandlers, ev: ClipboardEvent) => any) & ((this: Window, ev: ClipboardEvent) => any)) | null;
                    onpause: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onplay: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onplaying: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onpointercancel: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerdown: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerenter: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerleave: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointermove: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerout: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerover: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerup: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onprogress: (((this: GlobalEventHandlers, ev: ProgressEvent) => any) & ((this: Window, ev: ProgressEvent) => any)) | null;
                    onratechange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onreset: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onresize: (((this: GlobalEventHandlers, ev: UIEvent) => any) & ((this: Window, ev: UIEvent) => any)) | null;
                    onscroll: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onscrollend: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onsecuritypolicyviolation: (((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) & ((this: Window, ev: SecurityPolicyViolationEvent) => any)) | null;
                    onseeked: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onseeking: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onselect: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onselectionchange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onselectstart: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onslotchange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onstalled: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onsubmit: (((this: GlobalEventHandlers, ev: SubmitEvent) => any) & ((this: Window, ev: SubmitEvent) => any)) | null;
                    onsuspend: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    ontimeupdate: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    ontoggle: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    ontouchcancel: (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null;
                    ontouchend: (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null;
                    ontouchmove: (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null;
                    ontouchstart: (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null;
                    ontransitioncancel: (((this: GlobalEventHandlers, ev: TransitionEvent) => any) & ((this: Window, ev: TransitionEvent) => any)) | null;
                    ontransitionend: (((this: GlobalEventHandlers, ev: TransitionEvent) => any) & ((this: Window, ev: TransitionEvent) => any)) | null;
                    ontransitionrun: (((this: GlobalEventHandlers, ev: TransitionEvent) => any) & ((this: Window, ev: TransitionEvent) => any)) | null;
                    ontransitionstart: (((this: GlobalEventHandlers, ev: TransitionEvent) => any) & ((this: Window, ev: TransitionEvent) => any)) | null;
                    onvolumechange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwaiting: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwebkitanimationend: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwebkitanimationiteration: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwebkitanimationstart: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwebkittransitionend: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwheel: (((this: GlobalEventHandlers, ev: WheelEvent) => any) & ((this: Window, ev: WheelEvent) => any)) | null;
                    onafterprint: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onbeforeprint: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onbeforeunload: (((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) & ((this: Window, ev: BeforeUnloadEvent) => any)) | null;
                    ongamepadconnected: (((this: WindowEventHandlers, ev: GamepadEvent) => any) & ((this: Window, ev: GamepadEvent) => any)) | null;
                    ongamepaddisconnected: (((this: WindowEventHandlers, ev: GamepadEvent) => any) & ((this: Window, ev: GamepadEvent) => any)) | null;
                    onhashchange: (((this: WindowEventHandlers, ev: HashChangeEvent) => any) & ((this: Window, ev: HashChangeEvent) => any)) | null;
                    onlanguagechange: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onmessage: (((this: WindowEventHandlers, ev: MessageEvent) => any) & ((this: Window, ev: MessageEvent) => any)) | null;
                    onmessageerror: (((this: WindowEventHandlers, ev: MessageEvent) => any) & ((this: Window, ev: MessageEvent) => any)) | null;
                    onoffline: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    ononline: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onpagehide: (((this: WindowEventHandlers, ev: PageTransitionEvent) => any) & ((this: Window, ev: PageTransitionEvent) => any)) | null;
                    onpagereveal: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onpageshow: (((this: WindowEventHandlers, ev: PageTransitionEvent) => any) & ((this: Window, ev: PageTransitionEvent) => any)) | null;
                    onpageswap: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onpopstate: (((this: WindowEventHandlers, ev: PopStateEvent) => any) & ((this: Window, ev: PopStateEvent) => any)) | null;
                    onrejectionhandled: (((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) & ((this: Window, ev: PromiseRejectionEvent) => any)) | null;
                    onstorage: (((this: WindowEventHandlers, ev: StorageEvent) => any) & ((this: Window, ev: StorageEvent) => any)) | null;
                    onunhandledrejection: (((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) & ((this: Window, ev: PromiseRejectionEvent) => any)) | null;
                    onunload: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    localStorage: {
                        [x: string]: any;
                        readonly length: number;
                        clear: () => void;
                        getItem: (key: string) => string | null;
                        key: (index: number) => string | null;
                        removeItem: (key: string) => void;
                        setItem: (key: string, value: string) => void;
                    };
                    caches: {
                        delete: (cacheName: string) => Promise<boolean>;
                        has: (cacheName: string) => Promise<boolean>;
                        keys: () => Promise<string[]>;
                        match: (request: RequestInfo | URL, options?: MultiCacheQueryOptions) => Promise<Response | undefined>;
                        open: (cacheName: string) => Promise<Cache>;
                    };
                    crossOriginIsolated: boolean;
                    crypto: {
                        readonly subtle: {
                            decrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                            deriveBits: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length?: number | null) => Promise<ArrayBuffer>;
                            deriveKey: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                            digest: (algorithm: AlgorithmIdentifier, data: BufferSource) => Promise<ArrayBuffer>;
                            encrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                            exportKey: {
                                (format: "jwk", key: CryptoKey): Promise<JsonWebKey>;
                                (format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;
                                (format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer | JsonWebKey>;
                            };
                            generateKey: {
                                (algorithm: "Ed25519" | {
                                    name: "Ed25519";
                                }, extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;
                                (algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
                                (algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                                (algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;
                            };
                            importKey: {
                                (format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                                (format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
                            };
                            sign: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                            unwrapKey: (format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                            verify: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource) => Promise<boolean>;
                            wrapKey: (format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams) => Promise<ArrayBuffer>;
                        };
                        getRandomValues: <T extends ArrayBufferView | null>(array: T) => T;
                        randomUUID: () => `${string}-${string}-${string}-${string}-${string}`;
                    };
                    indexedDB: {
                        cmp: (first: any, second: any) => number;
                        databases: () => Promise<IDBDatabaseInfo[]>;
                        deleteDatabase: (name: string) => IDBOpenDBRequest;
                        open: (name: string, version?: number) => IDBOpenDBRequest;
                    };
                    isSecureContext: boolean;
                    origin: string;
                    performance: {
                        readonly eventCounts: {
                            forEach: (callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any) => void;
                        };
                        readonly navigation: {
                            readonly redirectCount: number;
                            readonly type: number;
                            toJSON: () => any;
                            readonly TYPE_NAVIGATE: 0;
                            readonly TYPE_RELOAD: 1;
                            readonly TYPE_BACK_FORWARD: 2;
                            readonly TYPE_RESERVED: 255;
                        };
                        onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;
                        readonly timeOrigin: DOMHighResTimeStamp;
                        readonly timing: {
                            readonly connectEnd: number;
                            readonly connectStart: number;
                            readonly domComplete: number;
                            readonly domContentLoadedEventEnd: number;
                            readonly domContentLoadedEventStart: number;
                            readonly domInteractive: number;
                            readonly domLoading: number;
                            readonly domainLookupEnd: number;
                            readonly domainLookupStart: number;
                            readonly fetchStart: number;
                            readonly loadEventEnd: number;
                            readonly loadEventStart: number;
                            readonly navigationStart: number;
                            readonly redirectEnd: number;
                            readonly redirectStart: number;
                            readonly requestStart: number;
                            readonly responseEnd: number;
                            readonly responseStart: number;
                            readonly secureConnectionStart: number;
                            readonly unloadEventEnd: number;
                            readonly unloadEventStart: number;
                            toJSON: () => any;
                        };
                        clearMarks: (markName?: string) => void;
                        clearMeasures: (measureName?: string) => void;
                        clearResourceTimings: () => void;
                        getEntries: () => PerformanceEntryList;
                        getEntriesByName: (name: string, type?: string) => PerformanceEntryList;
                        getEntriesByType: (type: string) => PerformanceEntryList;
                        mark: (markName: string, markOptions?: PerformanceMarkOptions) => PerformanceMark;
                        measure: (measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string) => PerformanceMeasure;
                        now: () => DOMHighResTimeStamp;
                        setResourceTimingBufferSize: (maxSize: number) => void;
                        toJSON: () => any;
                        addEventListener: {
                            <K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    };
                    atob: ((data: string) => string) & typeof atob;
                    btoa: ((data: string) => string) & typeof btoa;
                    clearInterval: ((id: number | undefined) => void) & typeof clearInterval;
                    clearTimeout: ((id: number | undefined) => void) & typeof clearTimeout;
                    createImageBitmap: {
                        (image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;
                        (image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
                    } & typeof createImageBitmap;
                    fetch: ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>) & typeof fetch;
                    queueMicrotask: ((callback: VoidFunction) => void) & typeof queueMicrotask;
                    reportError: ((e: any) => void) & typeof reportError;
                    setInterval: ((handler: TimerHandler, timeout?: number, ...arguments: any[]) => number) & typeof setInterval;
                    setTimeout: ((handler: TimerHandler, timeout?: number, ...arguments: any[]) => number) & typeof setTimeout;
                    structuredClone: (<T = any>(value: T, options?: StructuredSerializeOptions) => T) & typeof structuredClone;
                    sessionStorage: {
                        [x: string]: any;
                        readonly length: number;
                        clear: () => void;
                        getItem: (key: string) => string | null;
                        key: (index: number) => string | null;
                        removeItem: (key: string) => void;
                        setItem: (key: string, value: string) => void;
                    };
                    readonly globalThis: {
                        readonly globalThis: /*elided*/ any;
                        eval: typeof eval;
                        parseInt: typeof parseInt;
                        parseFloat: typeof parseFloat;
                        isNaN: typeof isNaN;
                        isFinite: typeof isFinite;
                        decodeURI: typeof decodeURI;
                        decodeURIComponent: typeof decodeURIComponent;
                        encodeURI: typeof encodeURI;
                        encodeURIComponent: typeof encodeURIComponent;
                        escape: typeof escape;
                        unescape: typeof unescape;
                        NaN: number;
                        Infinity: number;
                        Symbol: SymbolConstructor;
                        Object: ObjectConstructor;
                        Function: FunctionConstructor;
                        String: StringConstructor;
                        Boolean: BooleanConstructor;
                        Number: NumberConstructor;
                        Math: {
                            readonly E: number;
                            readonly LN10: number;
                            readonly LN2: number;
                            readonly LOG2E: number;
                            readonly LOG10E: number;
                            readonly PI: number;
                            readonly SQRT1_2: number;
                            readonly SQRT2: number;
                            abs: (x: number) => number;
                            acos: (x: number) => number;
                            asin: (x: number) => number;
                            atan: (x: number) => number;
                            atan2: (y: number, x: number) => number;
                            ceil: (x: number) => number;
                            cos: (x: number) => number;
                            exp: (x: number) => number;
                            floor: (x: number) => number;
                            log: (x: number) => number;
                            max: (...values: number[]) => number;
                            min: (...values: number[]) => number;
                            pow: (x: number, y: number) => number;
                            random: () => number;
                            round: (x: number) => number;
                            sin: (x: number) => number;
                            sqrt: (x: number) => number;
                            tan: (x: number) => number;
                            clz32: (x: number) => number;
                            imul: (x: number, y: number) => number;
                            sign: (x: number) => number;
                            log10: (x: number) => number;
                            log2: (x: number) => number;
                            log1p: (x: number) => number;
                            expm1: (x: number) => number;
                            cosh: (x: number) => number;
                            sinh: (x: number) => number;
                            tanh: (x: number) => number;
                            acosh: (x: number) => number;
                            asinh: (x: number) => number;
                            atanh: (x: number) => number;
                            hypot: (...values: number[]) => number;
                            trunc: (x: number) => number;
                            fround: (x: number) => number;
                            cbrt: (x: number) => number;
                            f16round: (x: number) => number;
                            readonly [Symbol.toStringTag]: string;
                        };
                        Date: DateConstructor;
                        RegExp: RegExpConstructor;
                        Error: ErrorConstructor;
                        EvalError: EvalErrorConstructor;
                        RangeError: RangeErrorConstructor;
                        ReferenceError: ReferenceErrorConstructor;
                        SyntaxError: SyntaxErrorConstructor;
                        TypeError: TypeErrorConstructor;
                        URIError: URIErrorConstructor;
                        JSON: {
                            parse: (text: string, reviver?: (this: any, key: string, value: any) => any) => any;
                            stringify: {
                                (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
                                (value: any, replacer?: (number | string)[] | null, space?: string | number): string;
                            };
                            readonly [Symbol.toStringTag]: string;
                        };
                        Array: ArrayConstructor;
                        Promise: PromiseConstructor;
                        ArrayBuffer: ArrayBufferConstructor;
                        DataView: DataViewConstructor;
                        Int8Array: Int8ArrayConstructor;
                        Uint8Array: Uint8ArrayConstructor;
                        Uint8ClampedArray: Uint8ClampedArrayConstructor;
                        Int16Array: Int16ArrayConstructor;
                        Uint16Array: Uint16ArrayConstructor;
                        Int32Array: Int32ArrayConstructor;
                        Uint32Array: Uint32ArrayConstructor;
                        Float32Array: Float32ArrayConstructor;
                        Float64Array: Float64ArrayConstructor;
                        Intl: {
                            Collator: Intl.CollatorConstructor;
                            NumberFormat: Intl.NumberFormatConstructor;
                            DateTimeFormat: Intl.DateTimeFormatConstructor;
                            getCanonicalLocales: typeof Intl.getCanonicalLocales;
                            readonly PluralRules: Intl.PluralRulesConstructor;
                            readonly RelativeTimeFormat: {
                                new (locales?: Intl.LocalesArgument, options?: Intl.RelativeTimeFormatOptions): Intl.RelativeTimeFormat;
                                supportedLocalesOf(locales?: Intl.LocalesArgument, options?: Intl.RelativeTimeFormatOptions): Intl.UnicodeBCP47LocaleIdentifier[];
                            };
                            readonly Locale: {
                                new (tag: Intl.UnicodeBCP47LocaleIdentifier | Intl.Locale, options?: Intl.LocaleOptions): Intl.Locale;
                            };
                            readonly DisplayNames: {
                                prototype: Intl.DisplayNames;
                                new (locales: Intl.LocalesArgument, options: Intl.DisplayNamesOptions): Intl.DisplayNames;
                                supportedLocalesOf(locales?: Intl.LocalesArgument, options?: {
                                    localeMatcher?: Intl.RelativeTimeFormatLocaleMatcher;
                                }): Intl.UnicodeBCP47LocaleIdentifier[];
                            };
                            readonly ListFormat: {
                                prototype: Intl.ListFormat;
                                new (locales?: Intl.LocalesArgument, options?: Intl.ListFormatOptions): Intl.ListFormat;
                                supportedLocalesOf(locales: Intl.LocalesArgument, options?: Pick<Intl.ListFormatOptions, "localeMatcher">): Intl.UnicodeBCP47LocaleIdentifier[];
                            };
                            supportedValuesOf: typeof Intl.supportedValuesOf;
                            readonly Segmenter: {
                                prototype: Intl.Segmenter;
                                new (locales?: Intl.LocalesArgument, options?: Intl.SegmenterOptions): Intl.Segmenter;
                                supportedLocalesOf(locales: Intl.LocalesArgument, options?: Pick<Intl.SegmenterOptions, "localeMatcher">): Intl.UnicodeBCP47LocaleIdentifier[];
                            };
                        };
                        alert: typeof alert;
                        blur: typeof blur;
                        cancelIdleCallback: typeof cancelIdleCallback;
                        captureEvents: typeof captureEvents;
                        close: typeof close;
                        confirm: typeof confirm;
                        focus: typeof focus;
                        getComputedStyle: typeof getComputedStyle;
                        getSelection: typeof getSelection;
                        matchMedia: typeof matchMedia;
                        moveBy: typeof moveBy;
                        moveTo: typeof moveTo;
                        open: typeof open;
                        postMessage: typeof postMessage;
                        print: typeof print;
                        prompt: typeof prompt;
                        releaseEvents: typeof releaseEvents;
                        requestIdleCallback: typeof requestIdleCallback;
                        resizeBy: typeof resizeBy;
                        resizeTo: typeof resizeTo;
                        scroll: typeof scroll;
                        scrollBy: typeof scrollBy;
                        scrollTo: typeof scrollTo;
                        stop: typeof stop;
                        toString: typeof toString;
                        dispatchEvent: typeof dispatchEvent;
                        cancelAnimationFrame: typeof cancelAnimationFrame;
                        requestAnimationFrame: typeof requestAnimationFrame;
                        atob: typeof atob;
                        btoa: typeof btoa;
                        clearInterval: typeof clearInterval;
                        clearTimeout: typeof clearTimeout;
                        createImageBitmap: typeof createImageBitmap;
                        fetch: typeof fetch;
                        queueMicrotask: typeof queueMicrotask;
                        reportError: typeof reportError;
                        setInterval: typeof setInterval;
                        setTimeout: typeof setTimeout;
                        structuredClone: typeof structuredClone;
                        addEventListener: typeof addEventListener;
                        removeEventListener: typeof removeEventListener;
                        NodeFilter: {
                            readonly FILTER_ACCEPT: 1;
                            readonly FILTER_REJECT: 2;
                            readonly FILTER_SKIP: 3;
                            readonly SHOW_ALL: 4294967295;
                            readonly SHOW_ELEMENT: 1;
                            readonly SHOW_ATTRIBUTE: 2;
                            readonly SHOW_TEXT: 4;
                            readonly SHOW_CDATA_SECTION: 8;
                            readonly SHOW_ENTITY_REFERENCE: 16;
                            readonly SHOW_ENTITY: 32;
                            readonly SHOW_PROCESSING_INSTRUCTION: 64;
                            readonly SHOW_COMMENT: 128;
                            readonly SHOW_DOCUMENT: 256;
                            readonly SHOW_DOCUMENT_TYPE: 512;
                            readonly SHOW_DOCUMENT_FRAGMENT: 1024;
                            readonly SHOW_NOTATION: 2048;
                        };
                        AbortController: {
                            prototype: AbortController;
                            new (): AbortController;
                        };
                        AbortSignal: {
                            prototype: AbortSignal;
                            new (): AbortSignal;
                            abort(reason?: any): AbortSignal;
                            any(signals: AbortSignal[]): AbortSignal;
                            timeout(milliseconds: number): AbortSignal;
                        };
                        AbstractRange: {
                            prototype: AbstractRange;
                            new (): AbstractRange;
                        };
                        AnalyserNode: {
                            prototype: AnalyserNode;
                            new (context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;
                        };
                        Animation: {
                            prototype: Animation;
                            new (effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;
                        };
                        AnimationEffect: {
                            prototype: AnimationEffect;
                            new (): AnimationEffect;
                        };
                        AnimationEvent: {
                            prototype: AnimationEvent;
                            new (type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;
                        };
                        AnimationPlaybackEvent: {
                            prototype: AnimationPlaybackEvent;
                            new (type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;
                        };
                        AnimationTimeline: {
                            prototype: AnimationTimeline;
                            new (): AnimationTimeline;
                        };
                        Attr: {
                            prototype: Attr;
                            new (): Attr;
                        };
                        AudioBuffer: {
                            prototype: AudioBuffer;
                            new (options: AudioBufferOptions): AudioBuffer;
                        };
                        AudioBufferSourceNode: {
                            prototype: AudioBufferSourceNode;
                            new (context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;
                        };
                        AudioContext: {
                            prototype: AudioContext;
                            new (contextOptions?: AudioContextOptions): AudioContext;
                        };
                        AudioData: {
                            prototype: AudioData;
                            new (init: AudioDataInit): AudioData;
                        };
                        AudioDecoder: {
                            prototype: AudioDecoder;
                            new (init: AudioDecoderInit): AudioDecoder;
                            isConfigSupported(config: AudioDecoderConfig): Promise<AudioDecoderSupport>;
                        };
                        AudioDestinationNode: {
                            prototype: AudioDestinationNode;
                            new (): AudioDestinationNode;
                        };
                        AudioEncoder: {
                            prototype: AudioEncoder;
                            new (init: AudioEncoderInit): AudioEncoder;
                            isConfigSupported(config: AudioEncoderConfig): Promise<AudioEncoderSupport>;
                        };
                        AudioListener: {
                            prototype: AudioListener;
                            new (): AudioListener;
                        };
                        AudioNode: {
                            prototype: AudioNode;
                            new (): AudioNode;
                        };
                        AudioParam: {
                            prototype: AudioParam;
                            new (): AudioParam;
                        };
                        AudioParamMap: {
                            prototype: AudioParamMap;
                            new (): AudioParamMap;
                        };
                        AudioProcessingEvent: {
                            prototype: AudioProcessingEvent;
                            new (type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;
                        };
                        AudioScheduledSourceNode: {
                            prototype: AudioScheduledSourceNode;
                            new (): AudioScheduledSourceNode;
                        };
                        AudioWorklet: {
                            prototype: AudioWorklet;
                            new (): AudioWorklet;
                        };
                        AudioWorkletNode: {
                            prototype: AudioWorkletNode;
                            new (context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;
                        };
                        AuthenticatorAssertionResponse: {
                            prototype: AuthenticatorAssertionResponse;
                            new (): AuthenticatorAssertionResponse;
                        };
                        AuthenticatorAttestationResponse: {
                            prototype: AuthenticatorAttestationResponse;
                            new (): AuthenticatorAttestationResponse;
                        };
                        AuthenticatorResponse: {
                            prototype: AuthenticatorResponse;
                            new (): AuthenticatorResponse;
                        };
                        BarProp: {
                            prototype: BarProp;
                            new (): BarProp;
                        };
                        BaseAudioContext: {
                            prototype: BaseAudioContext;
                            new (): BaseAudioContext;
                        };
                        BeforeUnloadEvent: {
                            prototype: BeforeUnloadEvent;
                            new (): BeforeUnloadEvent;
                        };
                        BiquadFilterNode: {
                            prototype: BiquadFilterNode;
                            new (context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;
                        };
                        Blob: {
                            prototype: Blob;
                            new (blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
                        };
                        BlobEvent: {
                            prototype: BlobEvent;
                            new (type: string, eventInitDict: BlobEventInit): BlobEvent;
                        };
                        BroadcastChannel: {
                            prototype: BroadcastChannel;
                            new (name: string): BroadcastChannel;
                        };
                        ByteLengthQueuingStrategy: {
                            prototype: ByteLengthQueuingStrategy;
                            new (init: QueuingStrategyInit): ByteLengthQueuingStrategy;
                        };
                        CDATASection: {
                            prototype: CDATASection;
                            new (): CDATASection;
                        };
                        CSSAnimation: {
                            prototype: CSSAnimation;
                            new (): CSSAnimation;
                        };
                        CSSConditionRule: {
                            prototype: CSSConditionRule;
                            new (): CSSConditionRule;
                        };
                        CSSContainerRule: {
                            prototype: CSSContainerRule;
                            new (): CSSContainerRule;
                        };
                        CSSCounterStyleRule: {
                            prototype: CSSCounterStyleRule;
                            new (): CSSCounterStyleRule;
                        };
                        CSSFontFaceRule: {
                            prototype: CSSFontFaceRule;
                            new (): CSSFontFaceRule;
                        };
                        CSSFontFeatureValuesRule: {
                            prototype: CSSFontFeatureValuesRule;
                            new (): CSSFontFeatureValuesRule;
                        };
                        CSSFontPaletteValuesRule: {
                            prototype: CSSFontPaletteValuesRule;
                            new (): CSSFontPaletteValuesRule;
                        };
                        CSSGroupingRule: {
                            prototype: CSSGroupingRule;
                            new (): CSSGroupingRule;
                        };
                        CSSImageValue: {
                            prototype: CSSImageValue;
                            new (): CSSImageValue;
                        };
                        CSSImportRule: {
                            prototype: CSSImportRule;
                            new (): CSSImportRule;
                        };
                        CSSKeyframeRule: {
                            prototype: CSSKeyframeRule;
                            new (): CSSKeyframeRule;
                        };
                        CSSKeyframesRule: {
                            prototype: CSSKeyframesRule;
                            new (): CSSKeyframesRule;
                        };
                        CSSKeywordValue: {
                            prototype: CSSKeywordValue;
                            new (value: string): CSSKeywordValue;
                        };
                        CSSLayerBlockRule: {
                            prototype: CSSLayerBlockRule;
                            new (): CSSLayerBlockRule;
                        };
                        CSSLayerStatementRule: {
                            prototype: CSSLayerStatementRule;
                            new (): CSSLayerStatementRule;
                        };
                        CSSMathClamp: {
                            prototype: CSSMathClamp;
                            new (lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;
                        };
                        CSSMathInvert: {
                            prototype: CSSMathInvert;
                            new (arg: CSSNumberish): CSSMathInvert;
                        };
                        CSSMathMax: {
                            prototype: CSSMathMax;
                            new (...args: CSSNumberish[]): CSSMathMax;
                        };
                        CSSMathMin: {
                            prototype: CSSMathMin;
                            new (...args: CSSNumberish[]): CSSMathMin;
                        };
                        CSSMathNegate: {
                            prototype: CSSMathNegate;
                            new (arg: CSSNumberish): CSSMathNegate;
                        };
                        CSSMathProduct: {
                            prototype: CSSMathProduct;
                            new (...args: CSSNumberish[]): CSSMathProduct;
                        };
                        CSSMathSum: {
                            prototype: CSSMathSum;
                            new (...args: CSSNumberish[]): CSSMathSum;
                        };
                        CSSMathValue: {
                            prototype: CSSMathValue;
                            new (): CSSMathValue;
                        };
                        CSSMatrixComponent: {
                            prototype: CSSMatrixComponent;
                            new (matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;
                        };
                        CSSMediaRule: {
                            prototype: CSSMediaRule;
                            new (): CSSMediaRule;
                        };
                        CSSNamespaceRule: {
                            prototype: CSSNamespaceRule;
                            new (): CSSNamespaceRule;
                        };
                        CSSNestedDeclarations: {
                            prototype: CSSNestedDeclarations;
                            new (): CSSNestedDeclarations;
                        };
                        CSSNumericArray: {
                            prototype: CSSNumericArray;
                            new (): CSSNumericArray;
                        };
                        CSSNumericValue: {
                            prototype: CSSNumericValue;
                            new (): CSSNumericValue;
                            parse(cssText: string): CSSNumericValue;
                        };
                        CSSPageRule: {
                            prototype: CSSPageRule;
                            new (): CSSPageRule;
                        };
                        CSSPerspective: {
                            prototype: CSSPerspective;
                            new (length: CSSPerspectiveValue): CSSPerspective;
                        };
                        CSSPropertyRule: {
                            prototype: CSSPropertyRule;
                            new (): CSSPropertyRule;
                        };
                        CSSRotate: {
                            prototype: CSSRotate;
                            new (angle: CSSNumericValue): CSSRotate;
                            new (x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;
                        };
                        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 SUPPORTS_RULE: 12;
                            readonly COUNTER_STYLE_RULE: 11;
                            readonly FONT_FEATURE_VALUES_RULE: 14;
                        };
                        CSSRuleList: {
                            prototype: CSSRuleList;
                            new (): CSSRuleList;
                        };
                        CSSScale: {
                            prototype: CSSScale;
                            new (x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;
                        };
                        CSSScopeRule: {
                            prototype: CSSScopeRule;
                            new (): CSSScopeRule;
                        };
                        CSSSkew: {
                            prototype: CSSSkew;
                            new (ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;
                        };
                        CSSSkewX: {
                            prototype: CSSSkewX;
                            new (ax: CSSNumericValue): CSSSkewX;
                        };
                        CSSSkewY: {
                            prototype: CSSSkewY;
                            new (ay: CSSNumericValue): CSSSkewY;
                        };
                        CSSStartingStyleRule: {
                            prototype: CSSStartingStyleRule;
                            new (): CSSStartingStyleRule;
                        };
                        CSSStyleDeclaration: {
                            prototype: CSSStyleDeclaration;
                            new (): CSSStyleDeclaration;
                        };
                        CSSStyleRule: {
                            prototype: CSSStyleRule;
                            new (): CSSStyleRule;
                        };
                        CSSStyleSheet: {
                            prototype: CSSStyleSheet;
                            new (options?: CSSStyleSheetInit): CSSStyleSheet;
                        };
                        CSSStyleValue: {
                            prototype: CSSStyleValue;
                            new (): CSSStyleValue;
                            parse(property: string, cssText: string): CSSStyleValue;
                            parseAll(property: string, cssText: string): CSSStyleValue[];
                        };
                        CSSSupportsRule: {
                            prototype: CSSSupportsRule;
                            new (): CSSSupportsRule;
                        };
                        CSSTransformComponent: {
                            prototype: CSSTransformComponent;
                            new (): CSSTransformComponent;
                        };
                        CSSTransformValue: {
                            prototype: CSSTransformValue;
                            new (transforms: CSSTransformComponent[]): CSSTransformValue;
                        };
                        CSSTransition: {
                            prototype: CSSTransition;
                            new (): CSSTransition;
                        };
                        CSSTranslate: {
                            prototype: CSSTranslate;
                            new (x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;
                        };
                        CSSUnitValue: {
                            prototype: CSSUnitValue;
                            new (value: number, unit: string): CSSUnitValue;
                        };
                        CSSUnparsedValue: {
                            prototype: CSSUnparsedValue;
                            new (members: CSSUnparsedSegment[]): CSSUnparsedValue;
                        };
                        CSSVariableReferenceValue: {
                            prototype: CSSVariableReferenceValue;
                            new (variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;
                        };
                        CSSViewTransitionRule: {
                            prototype: CSSViewTransitionRule;
                            new (): CSSViewTransitionRule;
                        };
                        Cache: {
                            prototype: Cache;
                            new (): Cache;
                        };
                        CacheStorage: {
                            prototype: CacheStorage;
                            new (): CacheStorage;
                        };
                        CanvasCaptureMediaStreamTrack: {
                            prototype: CanvasCaptureMediaStreamTrack;
                            new (): CanvasCaptureMediaStreamTrack;
                        };
                        CanvasGradient: {
                            prototype: CanvasGradient;
                            new (): CanvasGradient;
                        };
                        CanvasPattern: {
                            prototype: CanvasPattern;
                            new (): CanvasPattern;
                        };
                        CanvasRenderingContext2D: {
                            prototype: CanvasRenderingContext2D;
                            new (): CanvasRenderingContext2D;
                        };
                        CaretPosition: {
                            prototype: CaretPosition;
                            new (): CaretPosition;
                        };
                        ChannelMergerNode: {
                            prototype: ChannelMergerNode;
                            new (context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;
                        };
                        ChannelSplitterNode: {
                            prototype: ChannelSplitterNode;
                            new (context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;
                        };
                        CharacterData: {
                            prototype: CharacterData;
                            new (): CharacterData;
                        };
                        Clipboard: {
                            prototype: Clipboard;
                            new (): Clipboard;
                        };
                        ClipboardEvent: {
                            prototype: ClipboardEvent;
                            new (type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;
                        };
                        ClipboardItem: {
                            prototype: ClipboardItem;
                            new (items: Record<string, string | Blob | PromiseLike<string | Blob>>, options?: ClipboardItemOptions): ClipboardItem;
                            supports(type: string): boolean;
                        };
                        CloseEvent: {
                            prototype: CloseEvent;
                            new (type: string, eventInitDict?: CloseEventInit): CloseEvent;
                        };
                        Comment: {
                            prototype: Comment;
                            new (data?: string): Comment;
                        };
                        CompositionEvent: {
                            prototype: CompositionEvent;
                            new (type: string, eventInitDict?: CompositionEventInit): CompositionEvent;
                        };
                        CompressionStream: {
                            prototype: CompressionStream;
                            new (format: CompressionFormat): CompressionStream;
                        };
                        ConstantSourceNode: {
                            prototype: ConstantSourceNode;
                            new (context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;
                        };
                        ContentVisibilityAutoStateChangeEvent: {
                            prototype: ContentVisibilityAutoStateChangeEvent;
                            new (type: string, eventInitDict?: ContentVisibilityAutoStateChangeEventInit): ContentVisibilityAutoStateChangeEvent;
                        };
                        ConvolverNode: {
                            prototype: ConvolverNode;
                            new (context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;
                        };
                        CountQueuingStrategy: {
                            prototype: CountQueuingStrategy;
                            new (init: QueuingStrategyInit): CountQueuingStrategy;
                        };
                        Credential: {
                            prototype: Credential;
                            new (): Credential;
                        };
                        CredentialsContainer: {
                            prototype: CredentialsContainer;
                            new (): CredentialsContainer;
                        };
                        Crypto: {
                            prototype: Crypto;
                            new (): Crypto;
                        };
                        CryptoKey: {
                            prototype: CryptoKey;
                            new (): CryptoKey;
                        };
                        CustomElementRegistry: {
                            prototype: CustomElementRegistry;
                            new (): CustomElementRegistry;
                        };
                        CustomEvent: {
                            prototype: CustomEvent;
                            new <T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;
                        };
                        CustomStateSet: {
                            prototype: CustomStateSet;
                            new (): CustomStateSet;
                        };
                        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;
                        };
                        DOMImplementation: {
                            prototype: DOMImplementation;
                            new (): DOMImplementation;
                        };
                        DOMMatrix: {
                            prototype: DOMMatrix;
                            new (init?: string | number[]): DOMMatrix;
                            fromFloat32Array(array32: Float32Array): DOMMatrix;
                            fromFloat64Array(array64: Float64Array): DOMMatrix;
                            fromMatrix(other?: DOMMatrixInit): DOMMatrix;
                        };
                        SVGMatrix: typeof DOMMatrix;
                        WebKitCSSMatrix: typeof DOMMatrix;
                        DOMMatrixReadOnly: {
                            prototype: DOMMatrixReadOnly;
                            new (init?: string | number[]): DOMMatrixReadOnly;
                            fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;
                            fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;
                            fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;
                        };
                        DOMParser: {
                            prototype: DOMParser;
                            new (): DOMParser;
                        };
                        DOMPoint: {
                            prototype: DOMPoint;
                            new (x?: number, y?: number, z?: number, w?: number): DOMPoint;
                            fromPoint(other?: DOMPointInit): DOMPoint;
                        };
                        SVGPoint: typeof DOMPoint;
                        DOMPointReadOnly: {
                            prototype: DOMPointReadOnly;
                            new (x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;
                            fromPoint(other?: DOMPointInit): DOMPointReadOnly;
                        };
                        DOMQuad: {
                            prototype: DOMQuad;
                            new (p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;
                            fromQuad(other?: DOMQuadInit): DOMQuad;
                            fromRect(other?: DOMRectInit): DOMQuad;
                        };
                        DOMRect: {
                            prototype: DOMRect;
                            new (x?: number, y?: number, width?: number, height?: number): DOMRect;
                            fromRect(other?: DOMRectInit): DOMRect;
                        };
                        SVGRect: typeof DOMRect;
                        DOMRectList: {
                            prototype: DOMRectList;
                            new (): DOMRectList;
                        };
                        DOMRectReadOnly: {
                            prototype: DOMRectReadOnly;
                            new (x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;
                            fromRect(other?: DOMRectInit): DOMRectReadOnly;
                        };
                        DOMStringList: {
                            prototype: DOMStringList;
                            new (): DOMStringList;
                        };
                        DOMStringMap: {
                            prototype: DOMStringMap;
                            new (): DOMStringMap;
                        };
                        DOMTokenList: {
                            prototype: DOMTokenList;
                            new (): DOMTokenList;
                        };
                        DataTransfer: {
                            prototype: DataTransfer;
                            new (): DataTransfer;
                        };
                        DataTransferItem: {
                            prototype: DataTransferItem;
                            new (): DataTransferItem;
                        };
                        DataTransferItemList: {
                            prototype: DataTransferItemList;
                            new (): DataTransferItemList;
                        };
                        DecompressionStream: {
                            prototype: DecompressionStream;
                            new (format: CompressionFormat): DecompressionStream;
                        };
                        DelayNode: {
                            prototype: DelayNode;
                            new (context: BaseAudioContext, options?: DelayOptions): DelayNode;
                        };
                        DeviceMotionEvent: {
                            prototype: DeviceMotionEvent;
                            new (type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;
                        };
                        DeviceOrientationEvent: {
                            prototype: DeviceOrientationEvent;
                            new (type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;
                        };
                        Document: {
                            prototype: Document;
                            new (): Document;
                            parseHTMLUnsafe(html: string): Document;
                        };
                        DocumentFragment: {
                            prototype: DocumentFragment;
                            new (): DocumentFragment;
                        };
                        DocumentTimeline: {
                            prototype: DocumentTimeline;
                            new (options?: DocumentTimelineOptions): DocumentTimeline;
                        };
                        DocumentType: {
                            prototype: DocumentType;
                            new (): DocumentType;
                        };
                        DragEvent: {
                            prototype: DragEvent;
                            new (type: string, eventInitDict?: DragEventInit): DragEvent;
                        };
                        DynamicsCompressorNode: {
                            prototype: DynamicsCompressorNode;
                            new (context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;
                        };
                        Element: {
                            prototype: Element;
                            new (): Element;
                        };
                        ElementInternals: {
                            prototype: ElementInternals;
                            new (): ElementInternals;
                        };
                        EncodedAudioChunk: {
                            prototype: EncodedAudioChunk;
                            new (init: EncodedAudioChunkInit): EncodedAudioChunk;
                        };
                        EncodedVideoChunk: {
                            prototype: EncodedVideoChunk;
                            new (init: EncodedVideoChunkInit): EncodedVideoChunk;
                        };
                        ErrorEvent: {
                            prototype: ErrorEvent;
                            new (type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
                        };
                        Event: {
                            prototype: Event;
                            new (type: string, eventInitDict?: EventInit): Event;
                            readonly NONE: 0;
                            readonly CAPTURING_PHASE: 1;
                            readonly AT_TARGET: 2;
                            readonly BUBBLING_PHASE: 3;
                        };
                        EventCounts: {
                            prototype: EventCounts;
                            new (): EventCounts;
                        };
                        EventSource: {
                            prototype: EventSource;
                            new (url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;
                            readonly CONNECTING: 0;
                            readonly OPEN: 1;
                            readonly CLOSED: 2;
                        };
                        EventTarget: {
                            prototype: EventTarget;
                            new (): EventTarget;
                        };
                        External: {
                            prototype: External;
                            new (): External;
                        };
                        File: {
                            prototype: File;
                            new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
                        };
                        FileList: {
                            prototype: FileList;
                            new (): FileList;
                        };
                        FileReader: {
                            prototype: FileReader;
                            new (): FileReader;
                            readonly EMPTY: 0;
                            readonly LOADING: 1;
                            readonly DONE: 2;
                        };
                        FileSystem: {
                            prototype: FileSystem;
                            new (): FileSystem;
                        };
                        FileSystemDirectoryEntry: {
                            prototype: FileSystemDirectoryEntry;
                            new (): FileSystemDirectoryEntry;
                        };
                        FileSystemDirectoryHandle: {
                            prototype: FileSystemDirectoryHandle;
                            new (): FileSystemDirectoryHandle;
                        };
                        FileSystemDirectoryReader: {
                            prototype: FileSystemDirectoryReader;
                            new (): FileSystemDirectoryReader;
                        };
                        FileSystemEntry: {
                            prototype: FileSystemEntry;
                            new (): FileSystemEntry;
                        };
                        FileSystemFileEntry: {
                            prototype: FileSystemFileEntry;
                            new (): FileSystemFileEntry;
                        };
                        FileSystemFileHandle: {
                            prototype: FileSystemFileHandle;
                            new (): FileSystemFileHandle;
                        };
                        FileSystemHandle: {
                            prototype: FileSystemHandle;
                            new (): FileSystemHandle;
                        };
                        FileSystemWritableFileStream: {
                            prototype: FileSystemWritableFileStream;
                            new (): FileSystemWritableFileStream;
                        };
                        FocusEvent: {
                            prototype: FocusEvent;
                            new (type: string, eventInitDict?: FocusEventInit): FocusEvent;
                        };
                        FontFace: {
                            prototype: FontFace;
                            new (family: string, source: string | BufferSource, descriptors?: FontFaceDescriptors): FontFace;
                        };
                        FontFaceSet: {
                            prototype: FontFaceSet;
                            new (): FontFaceSet;
                        };
                        FontFaceSetLoadEvent: {
                            prototype: FontFaceSetLoadEvent;
                            new (type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;
                        };
                        FormData: {
                            prototype: FormData;
                            new (form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;
                        };
                        FormDataEvent: {
                            prototype: FormDataEvent;
                            new (type: string, eventInitDict: FormDataEventInit): FormDataEvent;
                        };
                        FragmentDirective: {
                            prototype: FragmentDirective;
                            new (): FragmentDirective;
                        };
                        GainNode: {
                            prototype: GainNode;
                            new (context: BaseAudioContext, options?: GainOptions): GainNode;
                        };
                        Gamepad: {
                            prototype: Gamepad;
                            new (): Gamepad;
                        };
                        GamepadButton: {
                            prototype: GamepadButton;
                            new (): GamepadButton;
                        };
                        GamepadEvent: {
                            prototype: GamepadEvent;
                            new (type: string, eventInitDict: GamepadEventInit): GamepadEvent;
                        };
                        GamepadHapticActuator: {
                            prototype: GamepadHapticActuator;
                            new (): GamepadHapticActuator;
                        };
                        Geolocation: {
                            prototype: Geolocation;
                            new (): Geolocation;
                        };
                        GeolocationCoordinates: {
                            prototype: GeolocationCoordinates;
                            new (): GeolocationCoordinates;
                        };
                        GeolocationPosition: {
                            prototype: GeolocationPosition;
                            new (): GeolocationPosition;
                        };
                        GeolocationPositionError: {
                            prototype: GeolocationPositionError;
                            new (): GeolocationPositionError;
                            readonly PERMISSION_DENIED: 1;
                            readonly POSITION_UNAVAILABLE: 2;
                            readonly TIMEOUT: 3;
                        };
                        HTMLAllCollection: {
                            prototype: HTMLAllCollection;
                            new (): HTMLAllCollection;
                        };
                        HTMLAnchorElement: {
                            prototype: HTMLAnchorElement;
                            new (): HTMLAnchorElement;
                        };
                        HTMLAreaElement: {
                            prototype: HTMLAreaElement;
                            new (): HTMLAreaElement;
                        };
                        HTMLAudioElement: {
                            prototype: HTMLAudioElement;
                            new (): HTMLAudioElement;
                        };
                        HTMLBRElement: {
                            prototype: HTMLBRElement;
                            new (): HTMLBRElement;
                        };
                        HTMLBaseElement: {
                            prototype: HTMLBaseElement;
                            new (): HTMLBaseElement;
                        };
                        HTMLBodyElement: {
                            prototype: HTMLBodyElement;
                            new (): HTMLBodyElement;
                        };
                        HTMLButtonElement: {
                            prototype: HTMLButtonElement;
                            new (): HTMLButtonElement;
                        };
                        HTMLCanvasElement: {
                            prototype: HTMLCanvasElement;
                            new (): HTMLCanvasElement;
                        };
                        HTMLCollection: {
                            prototype: HTMLCollection;
                            new (): HTMLCollection;
                        };
                        HTMLDListElement: {
                            prototype: HTMLDListElement;
                            new (): HTMLDListElement;
                        };
                        HTMLDataElement: {
                            prototype: HTMLDataElement;
                            new (): HTMLDataElement;
                        };
                        HTMLDataListElement: {
                            prototype: HTMLDataListElement;
                            new (): HTMLDataListElement;
                        };
                        HTMLDetailsElement: {
                            prototype: HTMLDetailsElement;
                            new (): HTMLDetailsElement;
                        };
                        HTMLDialogElement: {
                            prototype: HTMLDialogElement;
                            new (): HTMLDialogElement;
                        };
                        HTMLDirectoryElement: {
                            prototype: HTMLDirectoryElement;
                            new (): HTMLDirectoryElement;
                        };
                        HTMLDivElement: {
                            prototype: HTMLDivElement;
                            new (): HTMLDivElement;
                        };
                        HTMLDocument: {
                            prototype: HTMLDocument;
                            new (): HTMLDocument;
                        };
                        HTMLElement: {
                            prototype: HTMLElement;
                            new (): HTMLElement;
                        };
                        HTMLEmbedElement: {
                            prototype: HTMLEmbedElement;
                            new (): HTMLEmbedElement;
                        };
                        HTMLFieldSetElement: {
                            prototype: HTMLFieldSetElement;
                            new (): HTMLFieldSetElement;
                        };
                        HTMLFontElement: {
                            prototype: HTMLFontElement;
                            new (): HTMLFontElement;
                        };
                        HTMLFormControlsCollection: {
                            prototype: HTMLFormControlsCollection;
                            new (): HTMLFormControlsCollection;
                        };
                        HTMLFormElement: {
                            prototype: HTMLFormElement;
                            new (): HTMLFormElement;
                        };
                        HTMLFrameElement: {
                            prototype: HTMLFrameElement;
                            new (): HTMLFrameElement;
                        };
                        HTMLFrameSetElement: {
                            prototype: HTMLFrameSetElement;
                            new (): HTMLFrameSetElement;
                        };
                        HTMLHRElement: {
                            prototype: HTMLHRElement;
                            new (): HTMLHRElement;
                        };
                        HTMLHeadElement: {
                            prototype: HTMLHeadElement;
                            new (): HTMLHeadElement;
                        };
                        HTMLHeadingElement: {
                            prototype: HTMLHeadingElement;
                            new (): HTMLHeadingElement;
                        };
                        HTMLHtmlElement: {
                            prototype: HTMLHtmlElement;
                            new (): HTMLHtmlElement;
                        };
                        HTMLIFrameElement: {
                            prototype: HTMLIFrameElement;
                            new (): HTMLIFrameElement;
                        };
                        HTMLImageElement: {
                            prototype: HTMLImageElement;
                            new (): HTMLImageElement;
                        };
                        HTMLInputElement: {
                            prototype: HTMLInputElement;
                            new (): HTMLInputElement;
                        };
                        HTMLLIElement: {
                            prototype: HTMLLIElement;
                            new (): HTMLLIElement;
                        };
                        HTMLLabelElement: {
                            prototype: HTMLLabelElement;
                            new (): HTMLLabelElement;
                        };
                        HTMLLegendElement: {
                            prototype: HTMLLegendElement;
                            new (): HTMLLegendElement;
                        };
                        HTMLLinkElement: {
                            prototype: HTMLLinkElement;
                            new (): HTMLLinkElement;
                        };
                        HTMLMapElement: {
                            prototype: HTMLMapElement;
                            new (): HTMLMapElement;
                        };
                        HTMLMarqueeElement: {
                            prototype: HTMLMarqueeElement;
                            new (): HTMLMarqueeElement;
                        };
                        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;
                        };
                        HTMLMenuElement: {
                            prototype: HTMLMenuElement;
                            new (): HTMLMenuElement;
                        };
                        HTMLMetaElement: {
                            prototype: HTMLMetaElement;
                            new (): HTMLMetaElement;
                        };
                        HTMLMeterElement: {
                            prototype: HTMLMeterElement;
                            new (): HTMLMeterElement;
                        };
                        HTMLModElement: {
                            prototype: HTMLModElement;
                            new (): HTMLModElement;
                        };
                        HTMLOListElement: {
                            prototype: HTMLOListElement;
                            new (): HTMLOListElement;
                        };
                        HTMLObjectElement: {
                            prototype: HTMLObjectElement;
                            new (): HTMLObjectElement;
                        };
                        HTMLOptGroupElement: {
                            prototype: HTMLOptGroupElement;
                            new (): HTMLOptGroupElement;
                        };
                        HTMLOptionElement: {
                            prototype: HTMLOptionElement;
                            new (): HTMLOptionElement;
                        };
                        HTMLOptionsCollection: {
                            prototype: HTMLOptionsCollection;
                            new (): HTMLOptionsCollection;
                        };
                        HTMLOutputElement: {
                            prototype: HTMLOutputElement;
                            new (): HTMLOutputElement;
                        };
                        HTMLParagraphElement: {
                            prototype: HTMLParagraphElement;
                            new (): HTMLParagraphElement;
                        };
                        HTMLParamElement: {
                            prototype: HTMLParamElement;
                            new (): HTMLParamElement;
                        };
                        HTMLPictureElement: {
                            prototype: HTMLPictureElement;
                            new (): HTMLPictureElement;
                        };
                        HTMLPreElement: {
                            prototype: HTMLPreElement;
                            new (): HTMLPreElement;
                        };
                        HTMLProgressElement: {
                            prototype: HTMLProgressElement;
                            new (): HTMLProgressElement;
                        };
                        HTMLQuoteElement: {
                            prototype: HTMLQuoteElement;
                            new (): HTMLQuoteElement;
                        };
                        HTMLScriptElement: {
                            prototype: HTMLScriptElement;
                            new (): HTMLScriptElement;
                            supports(type: string): boolean;
                        };
                        HTMLSelectElement: {
                            prototype: HTMLSelectElement;
                            new (): HTMLSelectElement;
                        };
                        HTMLSlotElement: {
                            prototype: HTMLSlotElement;
                            new (): HTMLSlotElement;
                        };
                        HTMLSourceElement: {
                            prototype: HTMLSourceElement;
                            new (): HTMLSourceElement;
                        };
                        HTMLSpanElement: {
                            prototype: HTMLSpanElement;
                            new (): HTMLSpanElement;
                        };
                        HTMLStyleElement: {
                            prototype: HTMLStyleElement;
                            new (): HTMLStyleElement;
                        };
                        HTMLTableCaptionElement: {
                            prototype: HTMLTableCaptionElement;
                            new (): HTMLTableCaptionElement;
                        };
                        HTMLTableCellElement: {
                            prototype: HTMLTableCellElement;
                            new (): HTMLTableCellElement;
                        };
                        HTMLTableColElement: {
                            prototype: HTMLTableColElement;
                            new (): HTMLTableColElement;
                        };
                        HTMLTableElement: {
                            prototype: HTMLTableElement;
                            new (): HTMLTableElement;
                        };
                        HTMLTableRowElement: {
                            prototype: HTMLTableRowElement;
                            new (): HTMLTableRowElement;
                        };
                        HTMLTableSectionElement: {
                            prototype: HTMLTableSectionElement;
                            new (): HTMLTableSectionElement;
                        };
                        HTMLTemplateElement: {
                            prototype: HTMLTemplateElement;
                            new (): HTMLTemplateElement;
                        };
                        HTMLTextAreaElement: {
                            prototype: HTMLTextAreaElement;
                            new (): HTMLTextAreaElement;
                        };
                        HTMLTimeElement: {
                            prototype: HTMLTimeElement;
                            new (): HTMLTimeElement;
                        };
                        HTMLTitleElement: {
                            prototype: HTMLTitleElement;
                            new (): HTMLTitleElement;
                        };
                        HTMLTrackElement: {
                            prototype: HTMLTrackElement;
                            new (): HTMLTrackElement;
                            readonly NONE: 0;
                            readonly LOADING: 1;
                            readonly LOADED: 2;
                            readonly ERROR: 3;
                        };
                        HTMLUListElement: {
                            prototype: HTMLUListElement;
                            new (): HTMLUListElement;
                        };
                        HTMLUnknownElement: {
                            prototype: HTMLUnknownElement;
                            new (): HTMLUnknownElement;
                        };
                        HTMLVideoElement: {
                            prototype: HTMLVideoElement;
                            new (): HTMLVideoElement;
                        };
                        HashChangeEvent: {
                            prototype: HashChangeEvent;
                            new (type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;
                        };
                        Headers: {
                            prototype: Headers;
                            new (init?: HeadersInit): Headers;
                        };
                        Highlight: {
                            prototype: Highlight;
                            new (...initialRanges: AbstractRange[]): Highlight;
                        };
                        HighlightRegistry: {
                            prototype: HighlightRegistry;
                            new (): HighlightRegistry;
                        };
                        History: {
                            prototype: History;
                            new (): History;
                        };
                        IDBCursor: {
                            prototype: IDBCursor;
                            new (): IDBCursor;
                        };
                        IDBCursorWithValue: {
                            prototype: IDBCursorWithValue;
                            new (): IDBCursorWithValue;
                        };
                        IDBDatabase: {
                            prototype: IDBDatabase;
                            new (): IDBDatabase;
                        };
                        IDBFactory: {
                            prototype: IDBFactory;
                            new (): IDBFactory;
                        };
                        IDBIndex: {
                            prototype: IDBIndex;
                            new (): IDBIndex;
                        };
                        IDBKeyRange: {
                            prototype: IDBKeyRange;
                            new (): IDBKeyRange;
                            bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;
                            lowerBound(lower: any, open?: boolean): IDBKeyRange;
                            only(value: any): IDBKeyRange;
                            upperBound(upper: any, open?: boolean): IDBKeyRange;
                        };
                        IDBObjectStore: {
                            prototype: IDBObjectStore;
                            new (): IDBObjectStore;
                        };
                        IDBOpenDBRequest: {
                            prototype: IDBOpenDBRequest;
                            new (): IDBOpenDBRequest;
                        };
                        IDBRequest: {
                            prototype: IDBRequest;
                            new (): IDBRequest;
                        };
                        IDBTransaction: {
                            prototype: IDBTransaction;
                            new (): IDBTransaction;
                        };
                        IDBVersionChangeEvent: {
                            prototype: IDBVersionChangeEvent;
                            new (type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;
                        };
                        IIRFilterNode: {
                            prototype: IIRFilterNode;
                            new (context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;
                        };
                        IdleDeadline: {
                            prototype: IdleDeadline;
                            new (): IdleDeadline;
                        };
                        ImageBitmap: {
                            prototype: ImageBitmap;
                            new (): ImageBitmap;
                        };
                        ImageBitmapRenderingContext: {
                            prototype: ImageBitmapRenderingContext;
                            new (): ImageBitmapRenderingContext;
                        };
                        ImageData: {
                            prototype: ImageData;
                            new (sw: number, sh: number, settings?: ImageDataSettings): ImageData;
                            new (data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;
                        };
                        ImageDecoder: {
                            prototype: ImageDecoder;
                            new (init: ImageDecoderInit): ImageDecoder;
                            isTypeSupported(type: string): Promise<boolean>;
                        };
                        ImageTrack: {
                            prototype: ImageTrack;
                            new (): ImageTrack;
                        };
                        ImageTrackList: {
                            prototype: ImageTrackList;
                            new (): ImageTrackList;
                        };
                        InputDeviceInfo: {
                            prototype: InputDeviceInfo;
                            new (): InputDeviceInfo;
                        };
                        InputEvent: {
                            prototype: InputEvent;
                            new (type: string, eventInitDict?: InputEventInit): InputEvent;
                        };
                        IntersectionObserver: {
                            prototype: IntersectionObserver;
                            new (callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;
                        };
                        IntersectionObserverEntry: {
                            prototype: IntersectionObserverEntry;
                            new (): IntersectionObserverEntry;
                        };
                        KeyboardEvent: {
                            prototype: KeyboardEvent;
                            new (type: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;
                            readonly DOM_KEY_LOCATION_STANDARD: 0;
                            readonly DOM_KEY_LOCATION_LEFT: 1;
                            readonly DOM_KEY_LOCATION_RIGHT: 2;
                            readonly DOM_KEY_LOCATION_NUMPAD: 3;
                        };
                        KeyframeEffect: {
                            prototype: KeyframeEffect;
                            new (target: Element | null, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeEffectOptions): KeyframeEffect;
                            new (source: KeyframeEffect): KeyframeEffect;
                        };
                        LargestContentfulPaint: {
                            prototype: LargestContentfulPaint;
                            new (): LargestContentfulPaint;
                        };
                        Location: {
                            prototype: Location;
                            new (): Location;
                        };
                        Lock: {
                            prototype: Lock;
                            new (): Lock;
                        };
                        LockManager: {
                            prototype: LockManager;
                            new (): LockManager;
                        };
                        MIDIAccess: {
                            prototype: MIDIAccess;
                            new (): MIDIAccess;
                        };
                        MIDIConnectionEvent: {
                            prototype: MIDIConnectionEvent;
                            new (type: string, eventInitDict?: MIDIConnectionEventInit): MIDIConnectionEvent;
                        };
                        MIDIInput: {
                            prototype: MIDIInput;
                            new (): MIDIInput;
                        };
                        MIDIInputMap: {
                            prototype: MIDIInputMap;
                            new (): MIDIInputMap;
                        };
                        MIDIMessageEvent: {
                            prototype: MIDIMessageEvent;
                            new (type: string, eventInitDict?: MIDIMessageEventInit): MIDIMessageEvent;
                        };
                        MIDIOutput: {
                            prototype: MIDIOutput;
                            new (): MIDIOutput;
                        };
                        MIDIOutputMap: {
                            prototype: MIDIOutputMap;
                            new (): MIDIOutputMap;
                        };
                        MIDIPort: {
                            prototype: MIDIPort;
                            new (): MIDIPort;
                        };
                        MathMLElement: {
                            prototype: MathMLElement;
                            new (): MathMLElement;
                        };
                        MediaCapabilities: {
                            prototype: MediaCapabilities;
                            new (): MediaCapabilities;
                        };
                        MediaDeviceInfo: {
                            prototype: MediaDeviceInfo;
                            new (): MediaDeviceInfo;
                        };
                        MediaDevices: {
                            prototype: MediaDevices;
                            new (): MediaDevices;
                        };
                        MediaElementAudioSourceNode: {
                            prototype: MediaElementAudioSourceNode;
                            new (context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;
                        };
                        MediaEncryptedEvent: {
                            prototype: MediaEncryptedEvent;
                            new (type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;
                        };
                        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;
                        };
                        MediaKeyMessageEvent: {
                            prototype: MediaKeyMessageEvent;
                            new (type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;
                        };
                        MediaKeySession: {
                            prototype: MediaKeySession;
                            new (): MediaKeySession;
                        };
                        MediaKeyStatusMap: {
                            prototype: MediaKeyStatusMap;
                            new (): MediaKeyStatusMap;
                        };
                        MediaKeySystemAccess: {
                            prototype: MediaKeySystemAccess;
                            new (): MediaKeySystemAccess;
                        };
                        MediaKeys: {
                            prototype: MediaKeys;
                            new (): MediaKeys;
                        };
                        MediaList: {
                            prototype: MediaList;
                            new (): MediaList;
                        };
                        MediaMetadata: {
                            prototype: MediaMetadata;
                            new (init?: MediaMetadataInit): MediaMetadata;
                        };
                        MediaQueryList: {
                            prototype: MediaQueryList;
                            new (): MediaQueryList;
                        };
                        MediaQueryListEvent: {
                            prototype: MediaQueryListEvent;
                            new (type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;
                        };
                        MediaRecorder: {
                            prototype: MediaRecorder;
                            new (stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;
                            isTypeSupported(type: string): boolean;
                        };
                        MediaSession: {
                            prototype: MediaSession;
                            new (): MediaSession;
                        };
                        MediaSource: {
                            prototype: MediaSource;
                            new (): MediaSource;
                            readonly canConstructInDedicatedWorker: boolean;
                            isTypeSupported(type: string): boolean;
                        };
                        MediaSourceHandle: {
                            prototype: MediaSourceHandle;
                            new (): MediaSourceHandle;
                        };
                        MediaStream: {
                            prototype: MediaStream;
                            new (): MediaStream;
                            new (stream: MediaStream): MediaStream;
                            new (tracks: MediaStreamTrack[]): MediaStream;
                        };
                        MediaStreamAudioDestinationNode: {
                            prototype: MediaStreamAudioDestinationNode;
                            new (context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;
                        };
                        MediaStreamAudioSourceNode: {
                            prototype: MediaStreamAudioSourceNode;
                            new (context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;
                        };
                        MediaStreamTrack: {
                            prototype: MediaStreamTrack;
                            new (): MediaStreamTrack;
                        };
                        MediaStreamTrackEvent: {
                            prototype: MediaStreamTrackEvent;
                            new (type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;
                        };
                        MessageChannel: {
                            prototype: MessageChannel;
                            new (): MessageChannel;
                        };
                        MessageEvent: {
                            prototype: MessageEvent;
                            new <T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;
                        };
                        MessagePort: {
                            prototype: MessagePort;
                            new (): MessagePort;
                        };
                        MimeType: {
                            prototype: MimeType;
                            new (): MimeType;
                        };
                        MimeTypeArray: {
                            prototype: MimeTypeArray;
                            new (): MimeTypeArray;
                        };
                        MouseEvent: {
                            prototype: MouseEvent;
                            new (type: string, eventInitDict?: MouseEventInit): MouseEvent;
                        };
                        MutationObserver: {
                            prototype: MutationObserver;
                            new (callback: MutationCallback): MutationObserver;
                        };
                        MutationRecord: {
                            prototype: MutationRecord;
                            new (): MutationRecord;
                        };
                        NamedNodeMap: {
                            prototype: NamedNodeMap;
                            new (): NamedNodeMap;
                        };
                        NavigationActivation: {
                            prototype: NavigationActivation;
                            new (): NavigationActivation;
                        };
                        NavigationHistoryEntry: {
                            prototype: NavigationHistoryEntry;
                            new (): NavigationHistoryEntry;
                        };
                        NavigationPreloadManager: {
                            prototype: NavigationPreloadManager;
                            new (): NavigationPreloadManager;
                        };
                        Navigator: {
                            prototype: Navigator;
                            new (): Navigator;
                        };
                        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: 1;
                            readonly DOCUMENT_POSITION_PRECEDING: 2;
                            readonly DOCUMENT_POSITION_FOLLOWING: 4;
                            readonly DOCUMENT_POSITION_CONTAINS: 8;
                            readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
                            readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
                        };
                        NodeIterator: {
                            prototype: NodeIterator;
                            new (): NodeIterator;
                        };
                        NodeList: {
                            prototype: NodeList;
                            new (): NodeList;
                        };
                        Notification: {
                            prototype: Notification;
                            new (title: string, options?: NotificationOptions): Notification;
                            readonly permission: NotificationPermission;
                            requestPermission(deprecatedCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;
                        };
                        OfflineAudioCompletionEvent: {
                            prototype: OfflineAudioCompletionEvent;
                            new (type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;
                        };
                        OfflineAudioContext: {
                            prototype: OfflineAudioContext;
                            new (contextOptions: OfflineAudioContextOptions): OfflineAudioContext;
                            new (numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;
                        };
                        OffscreenCanvas: {
                            prototype: OffscreenCanvas;
                            new (width: number, height: number): OffscreenCanvas;
                        };
                        OffscreenCanvasRenderingContext2D: {
                            prototype: OffscreenCanvasRenderingContext2D;
                            new (): OffscreenCanvasRenderingContext2D;
                        };
                        OscillatorNode: {
                            prototype: OscillatorNode;
                            new (context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;
                        };
                        OverconstrainedError: {
                            prototype: OverconstrainedError;
                            new (constraint: string, message?: string): OverconstrainedError;
                        };
                        PageRevealEvent: {
                            prototype: PageRevealEvent;
                            new (type: string, eventInitDict?: PageRevealEventInit): PageRevealEvent;
                        };
                        PageSwapEvent: {
                            prototype: PageSwapEvent;
                            new (type: string, eventInitDict?: PageSwapEventInit): PageSwapEvent;
                        };
                        PageTransitionEvent: {
                            prototype: PageTransitionEvent;
                            new (type: string, eventInitDict?: PageTransitionEventInit): PageTransitionEvent;
                        };
                        PannerNode: {
                            prototype: PannerNode;
                            new (context: BaseAudioContext, options?: PannerOptions): PannerNode;
                        };
                        Path2D: {
                            prototype: Path2D;
                            new (path?: Path2D | string): Path2D;
                        };
                        PaymentAddress: {
                            prototype: PaymentAddress;
                            new (): PaymentAddress;
                        };
                        PaymentMethodChangeEvent: {
                            prototype: PaymentMethodChangeEvent;
                            new (type: string, eventInitDict?: PaymentMethodChangeEventInit): PaymentMethodChangeEvent;
                        };
                        PaymentRequest: {
                            prototype: PaymentRequest;
                            new (methodData: PaymentMethodData[], details: PaymentDetailsInit, options?: PaymentOptions): PaymentRequest;
                        };
                        PaymentRequestUpdateEvent: {
                            prototype: PaymentRequestUpdateEvent;
                            new (type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;
                        };
                        PaymentResponse: {
                            prototype: PaymentResponse;
                            new (): PaymentResponse;
                        };
                        Performance: {
                            prototype: Performance;
                            new (): Performance;
                        };
                        PerformanceEntry: {
                            prototype: PerformanceEntry;
                            new (): PerformanceEntry;
                        };
                        PerformanceEventTiming: {
                            prototype: PerformanceEventTiming;
                            new (): PerformanceEventTiming;
                        };
                        PerformanceMark: {
                            prototype: PerformanceMark;
                            new (markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
                        };
                        PerformanceMeasure: {
                            prototype: PerformanceMeasure;
                            new (): PerformanceMeasure;
                        };
                        PerformanceNavigation: {
                            prototype: PerformanceNavigation;
                            new (): PerformanceNavigation;
                            readonly TYPE_NAVIGATE: 0;
                            readonly TYPE_RELOAD: 1;
                            readonly TYPE_BACK_FORWARD: 2;
                            readonly TYPE_RESERVED: 255;
                        };
                        PerformanceNavigationTiming: {
                            prototype: PerformanceNavigationTiming;
                            new (): PerformanceNavigationTiming;
                        };
                        PerformanceObserver: {
                            prototype: PerformanceObserver;
                            new (callback: PerformanceObserverCallback): PerformanceObserver;
                            readonly supportedEntryTypes: ReadonlyArray<string>;
                        };
                        PerformanceObserverEntryList: {
                            prototype: PerformanceObserverEntryList;
                            new (): PerformanceObserverEntryList;
                        };
                        PerformancePaintTiming: {
                            prototype: PerformancePaintTiming;
                            new (): PerformancePaintTiming;
                        };
                        PerformanceResourceTiming: {
                            prototype: PerformanceResourceTiming;
                            new (): PerformanceResourceTiming;
                        };
                        PerformanceServerTiming: {
                            prototype: PerformanceServerTiming;
                            new (): PerformanceServerTiming;
                        };
                        PerformanceTiming: {
                            prototype: PerformanceTiming;
                            new (): PerformanceTiming;
                        };
                        PeriodicWave: {
                            prototype: PeriodicWave;
                            new (context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;
                        };
                        PermissionStatus: {
                            prototype: PermissionStatus;
                            new (): PermissionStatus;
                        };
                        Permissions: {
                            prototype: Permissions;
                            new (): Permissions;
                        };
                        PictureInPictureEvent: {
                            prototype: PictureInPictureEvent;
                            new (type: string, eventInitDict: PictureInPictureEventInit): PictureInPictureEvent;
                        };
                        PictureInPictureWindow: {
                            prototype: PictureInPictureWindow;
                            new (): PictureInPictureWindow;
                        };
                        Plugin: {
                            prototype: Plugin;
                            new (): Plugin;
                        };
                        PluginArray: {
                            prototype: PluginArray;
                            new (): PluginArray;
                        };
                        PointerEvent: {
                            prototype: PointerEvent;
                            new (type: string, eventInitDict?: PointerEventInit): PointerEvent;
                        };
                        PopStateEvent: {
                            prototype: PopStateEvent;
                            new (type: string, eventInitDict?: PopStateEventInit): PopStateEvent;
                        };
                        ProcessingInstruction: {
                            prototype: ProcessingInstruction;
                            new (): ProcessingInstruction;
                        };
                        ProgressEvent: {
                            prototype: ProgressEvent;
                            new (type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
                        };
                        PromiseRejectionEvent: {
                            prototype: PromiseRejectionEvent;
                            new (type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;
                        };
                        PublicKeyCredential: {
                            prototype: PublicKeyCredential;
                            new (): PublicKeyCredential;
                            getClientCapabilities(): Promise<PublicKeyCredentialClientCapabilities>;
                            isConditionalMediationAvailable(): Promise<boolean>;
                            isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;
                            parseCreationOptionsFromJSON(options: PublicKeyCredentialCreationOptionsJSON): PublicKeyCredentialCreationOptions;
                            parseRequestOptionsFromJSON(options: PublicKeyCredentialRequestOptionsJSON): PublicKeyCredentialRequestOptions;
                        };
                        PushManager: {
                            prototype: PushManager;
                            new (): PushManager;
                            readonly supportedContentEncodings: ReadonlyArray<string>;
                        };
                        PushSubscription: {
                            prototype: PushSubscription;
                            new (): PushSubscription;
                        };
                        PushSubscriptionOptions: {
                            prototype: PushSubscriptionOptions;
                            new (): PushSubscriptionOptions;
                        };
                        RTCCertificate: {
                            prototype: RTCCertificate;
                            new (): RTCCertificate;
                        };
                        RTCDTMFSender: {
                            prototype: RTCDTMFSender;
                            new (): RTCDTMFSender;
                        };
                        RTCDTMFToneChangeEvent: {
                            prototype: RTCDTMFToneChangeEvent;
                            new (type: string, eventInitDict?: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;
                        };
                        RTCDataChannel: {
                            prototype: RTCDataChannel;
                            new (): RTCDataChannel;
                        };
                        RTCDataChannelEvent: {
                            prototype: RTCDataChannelEvent;
                            new (type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;
                        };
                        RTCDtlsTransport: {
                            prototype: RTCDtlsTransport;
                            new (): RTCDtlsTransport;
                        };
                        RTCEncodedAudioFrame: {
                            prototype: RTCEncodedAudioFrame;
                            new (): RTCEncodedAudioFrame;
                        };
                        RTCEncodedVideoFrame: {
                            prototype: RTCEncodedVideoFrame;
                            new (): RTCEncodedVideoFrame;
                        };
                        RTCError: {
                            prototype: RTCError;
                            new (init: RTCErrorInit, message?: string): RTCError;
                        };
                        RTCErrorEvent: {
                            prototype: RTCErrorEvent;
                            new (type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent;
                        };
                        RTCIceCandidate: {
                            prototype: RTCIceCandidate;
                            new (candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;
                        };
                        RTCIceTransport: {
                            prototype: RTCIceTransport;
                            new (): RTCIceTransport;
                        };
                        RTCPeerConnection: {
                            prototype: RTCPeerConnection;
                            new (configuration?: RTCConfiguration): RTCPeerConnection;
                            generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;
                        };
                        RTCPeerConnectionIceErrorEvent: {
                            prototype: RTCPeerConnectionIceErrorEvent;
                            new (type: string, eventInitDict: RTCPeerConnectionIceErrorEventInit): RTCPeerConnectionIceErrorEvent;
                        };
                        RTCPeerConnectionIceEvent: {
                            prototype: RTCPeerConnectionIceEvent;
                            new (type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;
                        };
                        RTCRtpReceiver: {
                            prototype: RTCRtpReceiver;
                            new (): RTCRtpReceiver;
                            getCapabilities(kind: string): RTCRtpCapabilities | null;
                        };
                        RTCRtpScriptTransform: {
                            prototype: RTCRtpScriptTransform;
                            new (worker: Worker, options?: any, transfer?: any[]): RTCRtpScriptTransform;
                        };
                        RTCRtpSender: {
                            prototype: RTCRtpSender;
                            new (): RTCRtpSender;
                            getCapabilities(kind: string): RTCRtpCapabilities | null;
                        };
                        RTCRtpTransceiver: {
                            prototype: RTCRtpTransceiver;
                            new (): RTCRtpTransceiver;
                        };
                        RTCSctpTransport: {
                            prototype: RTCSctpTransport;
                            new (): RTCSctpTransport;
                        };
                        RTCSessionDescription: {
                            prototype: RTCSessionDescription;
                            new (descriptionInitDict: RTCSessionDescriptionInit): RTCSessionDescription;
                        };
                        RTCStatsReport: {
                            prototype: RTCStatsReport;
                            new (): RTCStatsReport;
                        };
                        RTCTrackEvent: {
                            prototype: RTCTrackEvent;
                            new (type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;
                        };
                        RadioNodeList: {
                            prototype: RadioNodeList;
                            new (): RadioNodeList;
                        };
                        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;
                        };
                        ReadableByteStreamController: {
                            prototype: ReadableByteStreamController;
                            new (): ReadableByteStreamController;
                        };
                        ReadableStream: {
                            prototype: ReadableStream;
                            new (underlyingSource: UnderlyingByteSource, strategy?: {
                                highWaterMark?: number;
                            }): ReadableStream<Uint8Array>;
                            new <R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
                            new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
                        };
                        ReadableStreamBYOBReader: {
                            prototype: ReadableStreamBYOBReader;
                            new (stream: ReadableStream<Uint8Array>): ReadableStreamBYOBReader;
                        };
                        ReadableStreamBYOBRequest: {
                            prototype: ReadableStreamBYOBRequest;
                            new (): ReadableStreamBYOBRequest;
                        };
                        ReadableStreamDefaultController: {
                            prototype: ReadableStreamDefaultController;
                            new (): ReadableStreamDefaultController;
                        };
                        ReadableStreamDefaultReader: {
                            prototype: ReadableStreamDefaultReader;
                            new <R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
                        };
                        RemotePlayback: {
                            prototype: RemotePlayback;
                            new (): RemotePlayback;
                        };
                        Report: {
                            prototype: Report;
                            new (): Report;
                        };
                        ReportBody: {
                            prototype: ReportBody;
                            new (): ReportBody;
                        };
                        ReportingObserver: {
                            prototype: ReportingObserver;
                            new (callback: ReportingObserverCallback, options?: ReportingObserverOptions): ReportingObserver;
                        };
                        Request: {
                            prototype: Request;
                            new (input: RequestInfo | URL, init?: RequestInit): Request;
                        };
                        ResizeObserver: {
                            prototype: ResizeObserver;
                            new (callback: ResizeObserverCallback): ResizeObserver;
                        };
                        ResizeObserverEntry: {
                            prototype: ResizeObserverEntry;
                            new (): ResizeObserverEntry;
                        };
                        ResizeObserverSize: {
                            prototype: ResizeObserverSize;
                            new (): ResizeObserverSize;
                        };
                        Response: {
                            prototype: Response;
                            new (body?: BodyInit | null, init?: ResponseInit): Response;
                            error(): Response;
                            json(data: any, init?: ResponseInit): Response;
                            redirect(url: string | URL, status?: number): Response;
                        };
                        SVGAElement: {
                            prototype: SVGAElement;
                            new (): SVGAElement;
                        };
                        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;
                        };
                        SVGAnimateElement: {
                            prototype: SVGAnimateElement;
                            new (): SVGAnimateElement;
                        };
                        SVGAnimateMotionElement: {
                            prototype: SVGAnimateMotionElement;
                            new (): SVGAnimateMotionElement;
                        };
                        SVGAnimateTransformElement: {
                            prototype: SVGAnimateTransformElement;
                            new (): SVGAnimateTransformElement;
                        };
                        SVGAnimatedAngle: {
                            prototype: SVGAnimatedAngle;
                            new (): SVGAnimatedAngle;
                        };
                        SVGAnimatedBoolean: {
                            prototype: SVGAnimatedBoolean;
                            new (): SVGAnimatedBoolean;
                        };
                        SVGAnimatedEnumeration: {
                            prototype: SVGAnimatedEnumeration;
                            new (): SVGAnimatedEnumeration;
                        };
                        SVGAnimatedInteger: {
                            prototype: SVGAnimatedInteger;
                            new (): SVGAnimatedInteger;
                        };
                        SVGAnimatedLength: {
                            prototype: SVGAnimatedLength;
                            new (): SVGAnimatedLength;
                        };
                        SVGAnimatedLengthList: {
                            prototype: SVGAnimatedLengthList;
                            new (): SVGAnimatedLengthList;
                        };
                        SVGAnimatedNumber: {
                            prototype: SVGAnimatedNumber;
                            new (): SVGAnimatedNumber;
                        };
                        SVGAnimatedNumberList: {
                            prototype: SVGAnimatedNumberList;
                            new (): SVGAnimatedNumberList;
                        };
                        SVGAnimatedPreserveAspectRatio: {
                            prototype: SVGAnimatedPreserveAspectRatio;
                            new (): SVGAnimatedPreserveAspectRatio;
                        };
                        SVGAnimatedRect: {
                            prototype: SVGAnimatedRect;
                            new (): SVGAnimatedRect;
                        };
                        SVGAnimatedString: {
                            prototype: SVGAnimatedString;
                            new (): SVGAnimatedString;
                        };
                        SVGAnimatedTransformList: {
                            prototype: SVGAnimatedTransformList;
                            new (): SVGAnimatedTransformList;
                        };
                        SVGAnimationElement: {
                            prototype: SVGAnimationElement;
                            new (): SVGAnimationElement;
                        };
                        SVGCircleElement: {
                            prototype: SVGCircleElement;
                            new (): SVGCircleElement;
                        };
                        SVGClipPathElement: {
                            prototype: SVGClipPathElement;
                            new (): SVGClipPathElement;
                        };
                        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;
                        };
                        SVGDefsElement: {
                            prototype: SVGDefsElement;
                            new (): SVGDefsElement;
                        };
                        SVGDescElement: {
                            prototype: SVGDescElement;
                            new (): SVGDescElement;
                        };
                        SVGElement: {
                            prototype: SVGElement;
                            new (): SVGElement;
                        };
                        SVGEllipseElement: {
                            prototype: SVGEllipseElement;
                            new (): SVGEllipseElement;
                        };
                        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;
                        };
                        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;
                        };
                        SVGFEComponentTransferElement: {
                            prototype: SVGFEComponentTransferElement;
                            new (): SVGFEComponentTransferElement;
                        };
                        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;
                        };
                        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;
                        };
                        SVGFEDiffuseLightingElement: {
                            prototype: SVGFEDiffuseLightingElement;
                            new (): SVGFEDiffuseLightingElement;
                        };
                        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;
                        };
                        SVGFEDistantLightElement: {
                            prototype: SVGFEDistantLightElement;
                            new (): SVGFEDistantLightElement;
                        };
                        SVGFEDropShadowElement: {
                            prototype: SVGFEDropShadowElement;
                            new (): SVGFEDropShadowElement;
                        };
                        SVGFEFloodElement: {
                            prototype: SVGFEFloodElement;
                            new (): SVGFEFloodElement;
                        };
                        SVGFEFuncAElement: {
                            prototype: SVGFEFuncAElement;
                            new (): SVGFEFuncAElement;
                        };
                        SVGFEFuncBElement: {
                            prototype: SVGFEFuncBElement;
                            new (): SVGFEFuncBElement;
                        };
                        SVGFEFuncGElement: {
                            prototype: SVGFEFuncGElement;
                            new (): SVGFEFuncGElement;
                        };
                        SVGFEFuncRElement: {
                            prototype: SVGFEFuncRElement;
                            new (): SVGFEFuncRElement;
                        };
                        SVGFEGaussianBlurElement: {
                            prototype: SVGFEGaussianBlurElement;
                            new (): SVGFEGaussianBlurElement;
                        };
                        SVGFEImageElement: {
                            prototype: SVGFEImageElement;
                            new (): SVGFEImageElement;
                        };
                        SVGFEMergeElement: {
                            prototype: SVGFEMergeElement;
                            new (): SVGFEMergeElement;
                        };
                        SVGFEMergeNodeElement: {
                            prototype: SVGFEMergeNodeElement;
                            new (): SVGFEMergeNodeElement;
                        };
                        SVGFEMorphologyElement: {
                            prototype: SVGFEMorphologyElement;
                            new (): SVGFEMorphologyElement;
                            readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
                            readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
                            readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
                        };
                        SVGFEOffsetElement: {
                            prototype: SVGFEOffsetElement;
                            new (): SVGFEOffsetElement;
                        };
                        SVGFEPointLightElement: {
                            prototype: SVGFEPointLightElement;
                            new (): SVGFEPointLightElement;
                        };
                        SVGFESpecularLightingElement: {
                            prototype: SVGFESpecularLightingElement;
                            new (): SVGFESpecularLightingElement;
                        };
                        SVGFESpotLightElement: {
                            prototype: SVGFESpotLightElement;
                            new (): SVGFESpotLightElement;
                        };
                        SVGFETileElement: {
                            prototype: SVGFETileElement;
                            new (): SVGFETileElement;
                        };
                        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;
                        };
                        SVGFilterElement: {
                            prototype: SVGFilterElement;
                            new (): SVGFilterElement;
                        };
                        SVGForeignObjectElement: {
                            prototype: SVGForeignObjectElement;
                            new (): SVGForeignObjectElement;
                        };
                        SVGGElement: {
                            prototype: SVGGElement;
                            new (): SVGGElement;
                        };
                        SVGGeometryElement: {
                            prototype: SVGGeometryElement;
                            new (): SVGGeometryElement;
                        };
                        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;
                        };
                        SVGGraphicsElement: {
                            prototype: SVGGraphicsElement;
                            new (): SVGGraphicsElement;
                        };
                        SVGImageElement: {
                            prototype: SVGImageElement;
                            new (): SVGImageElement;
                        };
                        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;
                        };
                        SVGLengthList: {
                            prototype: SVGLengthList;
                            new (): SVGLengthList;
                        };
                        SVGLineElement: {
                            prototype: SVGLineElement;
                            new (): SVGLineElement;
                        };
                        SVGLinearGradientElement: {
                            prototype: SVGLinearGradientElement;
                            new (): SVGLinearGradientElement;
                        };
                        SVGMPathElement: {
                            prototype: SVGMPathElement;
                            new (): SVGMPathElement;
                        };
                        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;
                        };
                        SVGMaskElement: {
                            prototype: SVGMaskElement;
                            new (): SVGMaskElement;
                        };
                        SVGMetadataElement: {
                            prototype: SVGMetadataElement;
                            new (): SVGMetadataElement;
                        };
                        SVGNumber: {
                            prototype: SVGNumber;
                            new (): SVGNumber;
                        };
                        SVGNumberList: {
                            prototype: SVGNumberList;
                            new (): SVGNumberList;
                        };
                        SVGPathElement: {
                            prototype: SVGPathElement;
                            new (): SVGPathElement;
                        };
                        SVGPatternElement: {
                            prototype: SVGPatternElement;
                            new (): SVGPatternElement;
                        };
                        SVGPointList: {
                            prototype: SVGPointList;
                            new (): SVGPointList;
                        };
                        SVGPolygonElement: {
                            prototype: SVGPolygonElement;
                            new (): SVGPolygonElement;
                        };
                        SVGPolylineElement: {
                            prototype: SVGPolylineElement;
                            new (): SVGPolylineElement;
                        };
                        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;
                        };
                        SVGRadialGradientElement: {
                            prototype: SVGRadialGradientElement;
                            new (): SVGRadialGradientElement;
                        };
                        SVGRectElement: {
                            prototype: SVGRectElement;
                            new (): SVGRectElement;
                        };
                        SVGSVGElement: {
                            prototype: SVGSVGElement;
                            new (): SVGSVGElement;
                        };
                        SVGScriptElement: {
                            prototype: SVGScriptElement;
                            new (): SVGScriptElement;
                        };
                        SVGSetElement: {
                            prototype: SVGSetElement;
                            new (): SVGSetElement;
                        };
                        SVGStopElement: {
                            prototype: SVGStopElement;
                            new (): SVGStopElement;
                        };
                        SVGStringList: {
                            prototype: SVGStringList;
                            new (): SVGStringList;
                        };
                        SVGStyleElement: {
                            prototype: SVGStyleElement;
                            new (): SVGStyleElement;
                        };
                        SVGSwitchElement: {
                            prototype: SVGSwitchElement;
                            new (): SVGSwitchElement;
                        };
                        SVGSymbolElement: {
                            prototype: SVGSymbolElement;
                            new (): SVGSymbolElement;
                        };
                        SVGTSpanElement: {
                            prototype: SVGTSpanElement;
                            new (): SVGTSpanElement;
                        };
                        SVGTextContentElement: {
                            prototype: SVGTextContentElement;
                            new (): SVGTextContentElement;
                            readonly LENGTHADJUST_UNKNOWN: 0;
                            readonly LENGTHADJUST_SPACING: 1;
                            readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
                        };
                        SVGTextElement: {
                            prototype: SVGTextElement;
                            new (): SVGTextElement;
                        };
                        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;
                        };
                        SVGTextPositioningElement: {
                            prototype: SVGTextPositioningElement;
                            new (): SVGTextPositioningElement;
                        };
                        SVGTitleElement: {
                            prototype: SVGTitleElement;
                            new (): SVGTitleElement;
                        };
                        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;
                        };
                        SVGTransformList: {
                            prototype: SVGTransformList;
                            new (): SVGTransformList;
                        };
                        SVGUnitTypes: {
                            prototype: SVGUnitTypes;
                            new (): SVGUnitTypes;
                            readonly SVG_UNIT_TYPE_UNKNOWN: 0;
                            readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
                            readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
                        };
                        SVGUseElement: {
                            prototype: SVGUseElement;
                            new (): SVGUseElement;
                        };
                        SVGViewElement: {
                            prototype: SVGViewElement;
                            new (): SVGViewElement;
                        };
                        Screen: {
                            prototype: Screen;
                            new (): Screen;
                        };
                        ScreenOrientation: {
                            prototype: ScreenOrientation;
                            new (): ScreenOrientation;
                        };
                        ScriptProcessorNode: {
                            prototype: ScriptProcessorNode;
                            new (): ScriptProcessorNode;
                        };
                        SecurityPolicyViolationEvent: {
                            prototype: SecurityPolicyViolationEvent;
                            new (type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;
                        };
                        Selection: {
                            prototype: Selection;
                            new (): Selection;
                        };
                        ServiceWorker: {
                            prototype: ServiceWorker;
                            new (): ServiceWorker;
                        };
                        ServiceWorkerContainer: {
                            prototype: ServiceWorkerContainer;
                            new (): ServiceWorkerContainer;
                        };
                        ServiceWorkerRegistration: {
                            prototype: ServiceWorkerRegistration;
                            new (): ServiceWorkerRegistration;
                        };
                        ShadowRoot: {
                            prototype: ShadowRoot;
                            new (): ShadowRoot;
                        };
                        SharedWorker: {
                            prototype: SharedWorker;
                            new (scriptURL: string | URL, options?: string | WorkerOptions): SharedWorker;
                        };
                        SourceBuffer: {
                            prototype: SourceBuffer;
                            new (): SourceBuffer;
                        };
                        SourceBufferList: {
                            prototype: SourceBufferList;
                            new (): SourceBufferList;
                        };
                        SpeechRecognitionAlternative: {
                            prototype: SpeechRecognitionAlternative;
                            new (): SpeechRecognitionAlternative;
                        };
                        SpeechRecognitionResult: {
                            prototype: SpeechRecognitionResult;
                            new (): SpeechRecognitionResult;
                        };
                        SpeechRecognitionResultList: {
                            prototype: SpeechRecognitionResultList;
                            new (): SpeechRecognitionResultList;
                        };
                        SpeechSynthesis: {
                            prototype: SpeechSynthesis;
                            new (): SpeechSynthesis;
                        };
                        SpeechSynthesisErrorEvent: {
                            prototype: SpeechSynthesisErrorEvent;
                            new (type: string, eventInitDict: SpeechSynthesisErrorEventInit): SpeechSynthesisErrorEvent;
                        };
                        SpeechSynthesisEvent: {
                            prototype: SpeechSynthesisEvent;
                            new (type: string, eventInitDict: SpeechSynthesisEventInit): SpeechSynthesisEvent;
                        };
                        SpeechSynthesisUtterance: {
                            prototype: SpeechSynthesisUtterance;
                            new (text?: string): SpeechSynthesisUtterance;
                        };
                        SpeechSynthesisVoice: {
                            prototype: SpeechSynthesisVoice;
                            new (): SpeechSynthesisVoice;
                        };
                        StaticRange: {
                            prototype: StaticRange;
                            new (init: StaticRangeInit): StaticRange;
                        };
                        StereoPannerNode: {
                            prototype: StereoPannerNode;
                            new (context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;
                        };
                        Storage: {
                            prototype: Storage;
                            new (): Storage;
                        };
                        StorageEvent: {
                            prototype: StorageEvent;
                            new (type: string, eventInitDict?: StorageEventInit): StorageEvent;
                        };
                        StorageManager: {
                            prototype: StorageManager;
                            new (): StorageManager;
                        };
                        StylePropertyMap: {
                            prototype: StylePropertyMap;
                            new (): StylePropertyMap;
                        };
                        StylePropertyMapReadOnly: {
                            prototype: StylePropertyMapReadOnly;
                            new (): StylePropertyMapReadOnly;
                        };
                        StyleSheet: {
                            prototype: StyleSheet;
                            new (): StyleSheet;
                        };
                        StyleSheetList: {
                            prototype: StyleSheetList;
                            new (): StyleSheetList;
                        };
                        SubmitEvent: {
                            prototype: SubmitEvent;
                            new (type: string, eventInitDict?: SubmitEventInit): SubmitEvent;
                        };
                        SubtleCrypto: {
                            prototype: SubtleCrypto;
                            new (): SubtleCrypto;
                        };
                        Text: {
                            prototype: Text;
                            new (data?: string): Text;
                        };
                        TextDecoder: {
                            prototype: TextDecoder;
                            new (label?: string, options?: TextDecoderOptions): TextDecoder;
                        };
                        TextDecoderStream: {
                            prototype: TextDecoderStream;
                            new (label?: string, options?: TextDecoderOptions): TextDecoderStream;
                        };
                        TextEncoder: {
                            prototype: TextEncoder;
                            new (): TextEncoder;
                        };
                        TextEncoderStream: {
                            prototype: TextEncoderStream;
                            new (): TextEncoderStream;
                        };
                        TextEvent: {
                            prototype: TextEvent;
                            new (): TextEvent;
                        };
                        TextMetrics: {
                            prototype: TextMetrics;
                            new (): TextMetrics;
                        };
                        TextTrack: {
                            prototype: TextTrack;
                            new (): TextTrack;
                        };
                        TextTrackCue: {
                            prototype: TextTrackCue;
                            new (): TextTrackCue;
                        };
                        TextTrackCueList: {
                            prototype: TextTrackCueList;
                            new (): TextTrackCueList;
                        };
                        TextTrackList: {
                            prototype: TextTrackList;
                            new (): TextTrackList;
                        };
                        TimeRanges: {
                            prototype: TimeRanges;
                            new (): TimeRanges;
                        };
                        ToggleEvent: {
                            prototype: ToggleEvent;
                            new (type: string, eventInitDict?: ToggleEventInit): ToggleEvent;
                        };
                        Touch: {
                            prototype: Touch;
                            new (touchInitDict: TouchInit): Touch;
                        };
                        TouchEvent: {
                            prototype: TouchEvent;
                            new (type: string, eventInitDict?: TouchEventInit): TouchEvent;
                        };
                        TouchList: {
                            prototype: TouchList;
                            new (): TouchList;
                        };
                        TrackEvent: {
                            prototype: TrackEvent;
                            new (type: string, eventInitDict?: TrackEventInit): TrackEvent;
                        };
                        TransformStream: {
                            prototype: TransformStream;
                            new <I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;
                        };
                        TransformStreamDefaultController: {
                            prototype: TransformStreamDefaultController;
                            new (): TransformStreamDefaultController;
                        };
                        TransitionEvent: {
                            prototype: TransitionEvent;
                            new (type: string, transitionEventInitDict?: TransitionEventInit): TransitionEvent;
                        };
                        TreeWalker: {
                            prototype: TreeWalker;
                            new (): TreeWalker;
                        };
                        UIEvent: {
                            prototype: UIEvent;
                            new (type: string, eventInitDict?: UIEventInit): UIEvent;
                        };
                        URL: {
                            prototype: URL;
                            new (url: string | URL, base?: string | URL): URL;
                            canParse(url: string | URL, base?: string | URL): boolean;
                            createObjectURL(obj: Blob | MediaSource): string;
                            parse(url: string | URL, base?: string | URL): URL | null;
                            revokeObjectURL(url: string): void;
                        };
                        webkitURL: typeof URL;
                        URLSearchParams: {
                            prototype: URLSearchParams;
                            new (init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;
                        };
                        UserActivation: {
                            prototype: UserActivation;
                            new (): UserActivation;
                        };
                        VTTCue: {
                            prototype: VTTCue;
                            new (startTime: number, endTime: number, text: string): VTTCue;
                        };
                        VTTRegion: {
                            prototype: VTTRegion;
                            new (): VTTRegion;
                        };
                        ValidityState: {
                            prototype: ValidityState;
                            new (): ValidityState;
                        };
                        VideoColorSpace: {
                            prototype: VideoColorSpace;
                            new (init?: VideoColorSpaceInit): VideoColorSpace;
                        };
                        VideoDecoder: {
                            prototype: VideoDecoder;
                            new (init: VideoDecoderInit): VideoDecoder;
                            isConfigSupported(config: VideoDecoderConfig): Promise<VideoDecoderSupport>;
                        };
                        VideoEncoder: {
                            prototype: VideoEncoder;
                            new (init: VideoEncoderInit): VideoEncoder;
                            isConfigSupported(config: VideoEncoderConfig): Promise<VideoEncoderSupport>;
                        };
                        VideoFrame: {
                            prototype: VideoFrame;
                            new (image: CanvasImageSource, init?: VideoFrameInit): VideoFrame;
                            new (data: AllowSharedBufferSource, init: VideoFrameBufferInit): VideoFrame;
                        };
                        VideoPlaybackQuality: {
                            prototype: VideoPlaybackQuality;
                            new (): VideoPlaybackQuality;
                        };
                        ViewTransition: {
                            prototype: ViewTransition;
                            new (): ViewTransition;
                        };
                        ViewTransitionTypeSet: {
                            prototype: ViewTransitionTypeSet;
                            new (): ViewTransitionTypeSet;
                        };
                        VisualViewport: {
                            prototype: VisualViewport;
                            new (): VisualViewport;
                        };
                        WakeLock: {
                            prototype: WakeLock;
                            new (): WakeLock;
                        };
                        WakeLockSentinel: {
                            prototype: WakeLockSentinel;
                            new (): WakeLockSentinel;
                        };
                        WaveShaperNode: {
                            prototype: WaveShaperNode;
                            new (context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;
                        };
                        WebGL2RenderingContext: {
                            prototype: WebGL2RenderingContext;
                            new (): WebGL2RenderingContext;
                            readonly READ_BUFFER: 3074;
                            readonly UNPACK_ROW_LENGTH: 3314;
                            readonly UNPACK_SKIP_ROWS: 3315;
                            readonly UNPACK_SKIP_PIXELS: 3316;
                            readonly PACK_ROW_LENGTH: 3330;
                            readonly PACK_SKIP_ROWS: 3331;
                            readonly PACK_SKIP_PIXELS: 3332;
                            readonly COLOR: 6144;
                            readonly DEPTH: 6145;
                            readonly STENCIL: 6146;
                            readonly RED: 6403;
                            readonly RGB8: 32849;
                            readonly RGB10_A2: 32857;
                            readonly TEXTURE_BINDING_3D: 32874;
                            readonly UNPACK_SKIP_IMAGES: 32877;
                            readonly UNPACK_IMAGE_HEIGHT: 32878;
                            readonly TEXTURE_3D: 32879;
                            readonly TEXTURE_WRAP_R: 32882;
                            readonly MAX_3D_TEXTURE_SIZE: 32883;
                            readonly UNSIGNED_INT_2_10_10_10_REV: 33640;
                            readonly MAX_ELEMENTS_VERTICES: 33000;
                            readonly MAX_ELEMENTS_INDICES: 33001;
                            readonly TEXTURE_MIN_LOD: 33082;
                            readonly TEXTURE_MAX_LOD: 33083;
                            readonly TEXTURE_BASE_LEVEL: 33084;
                            readonly TEXTURE_MAX_LEVEL: 33085;
                            readonly MIN: 32775;
                            readonly MAX: 32776;
                            readonly DEPTH_COMPONENT24: 33190;
                            readonly MAX_TEXTURE_LOD_BIAS: 34045;
                            readonly TEXTURE_COMPARE_MODE: 34892;
                            readonly TEXTURE_COMPARE_FUNC: 34893;
                            readonly CURRENT_QUERY: 34917;
                            readonly QUERY_RESULT: 34918;
                            readonly QUERY_RESULT_AVAILABLE: 34919;
                            readonly STREAM_READ: 35041;
                            readonly STREAM_COPY: 35042;
                            readonly STATIC_READ: 35045;
                            readonly STATIC_COPY: 35046;
                            readonly DYNAMIC_READ: 35049;
                            readonly DYNAMIC_COPY: 35050;
                            readonly MAX_DRAW_BUFFERS: 34852;
                            readonly DRAW_BUFFER0: 34853;
                            readonly DRAW_BUFFER1: 34854;
                            readonly DRAW_BUFFER2: 34855;
                            readonly DRAW_BUFFER3: 34856;
                            readonly DRAW_BUFFER4: 34857;
                            readonly DRAW_BUFFER5: 34858;
                            readonly DRAW_BUFFER6: 34859;
                            readonly DRAW_BUFFER7: 34860;
                            readonly DRAW_BUFFER8: 34861;
                            readonly DRAW_BUFFER9: 34862;
                            readonly DRAW_BUFFER10: 34863;
                            readonly DRAW_BUFFER11: 34864;
                            readonly DRAW_BUFFER12: 34865;
                            readonly DRAW_BUFFER13: 34866;
                            readonly DRAW_BUFFER14: 34867;
                            readonly DRAW_BUFFER15: 34868;
                            readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 35657;
                            readonly MAX_VERTEX_UNIFORM_COMPONENTS: 35658;
                            readonly SAMPLER_3D: 35679;
                            readonly SAMPLER_2D_SHADOW: 35682;
                            readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 35723;
                            readonly PIXEL_PACK_BUFFER: 35051;
                            readonly PIXEL_UNPACK_BUFFER: 35052;
                            readonly PIXEL_PACK_BUFFER_BINDING: 35053;
                            readonly PIXEL_UNPACK_BUFFER_BINDING: 35055;
                            readonly FLOAT_MAT2x3: 35685;
                            readonly FLOAT_MAT2x4: 35686;
                            readonly FLOAT_MAT3x2: 35687;
                            readonly FLOAT_MAT3x4: 35688;
                            readonly FLOAT_MAT4x2: 35689;
                            readonly FLOAT_MAT4x3: 35690;
                            readonly SRGB: 35904;
                            readonly SRGB8: 35905;
                            readonly SRGB8_ALPHA8: 35907;
                            readonly COMPARE_REF_TO_TEXTURE: 34894;
                            readonly RGBA32F: 34836;
                            readonly RGB32F: 34837;
                            readonly RGBA16F: 34842;
                            readonly RGB16F: 34843;
                            readonly VERTEX_ATTRIB_ARRAY_INTEGER: 35069;
                            readonly MAX_ARRAY_TEXTURE_LAYERS: 35071;
                            readonly MIN_PROGRAM_TEXEL_OFFSET: 35076;
                            readonly MAX_PROGRAM_TEXEL_OFFSET: 35077;
                            readonly MAX_VARYING_COMPONENTS: 35659;
                            readonly TEXTURE_2D_ARRAY: 35866;
                            readonly TEXTURE_BINDING_2D_ARRAY: 35869;
                            readonly R11F_G11F_B10F: 35898;
                            readonly UNSIGNED_INT_10F_11F_11F_REV: 35899;
                            readonly RGB9_E5: 35901;
                            readonly UNSIGNED_INT_5_9_9_9_REV: 35902;
                            readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 35967;
                            readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 35968;
                            readonly TRANSFORM_FEEDBACK_VARYINGS: 35971;
                            readonly TRANSFORM_FEEDBACK_BUFFER_START: 35972;
                            readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 35973;
                            readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 35976;
                            readonly RASTERIZER_DISCARD: 35977;
                            readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 35978;
                            readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 35979;
                            readonly INTERLEAVED_ATTRIBS: 35980;
                            readonly SEPARATE_ATTRIBS: 35981;
                            readonly TRANSFORM_FEEDBACK_BUFFER: 35982;
                            readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 35983;
                            readonly RGBA32UI: 36208;
                            readonly RGB32UI: 36209;
                            readonly RGBA16UI: 36214;
                            readonly RGB16UI: 36215;
                            readonly RGBA8UI: 36220;
                            readonly RGB8UI: 36221;
                            readonly RGBA32I: 36226;
                            readonly RGB32I: 36227;
                            readonly RGBA16I: 36232;
                            readonly RGB16I: 36233;
                            readonly RGBA8I: 36238;
                            readonly RGB8I: 36239;
                            readonly RED_INTEGER: 36244;
                            readonly RGB_INTEGER: 36248;
                            readonly RGBA_INTEGER: 36249;
                            readonly SAMPLER_2D_ARRAY: 36289;
                            readonly SAMPLER_2D_ARRAY_SHADOW: 36292;
                            readonly SAMPLER_CUBE_SHADOW: 36293;
                            readonly UNSIGNED_INT_VEC2: 36294;
                            readonly UNSIGNED_INT_VEC3: 36295;
                            readonly UNSIGNED_INT_VEC4: 36296;
                            readonly INT_SAMPLER_2D: 36298;
                            readonly INT_SAMPLER_3D: 36299;
                            readonly INT_SAMPLER_CUBE: 36300;
                            readonly INT_SAMPLER_2D_ARRAY: 36303;
                            readonly UNSIGNED_INT_SAMPLER_2D: 36306;
                            readonly UNSIGNED_INT_SAMPLER_3D: 36307;
                            readonly UNSIGNED_INT_SAMPLER_CUBE: 36308;
                            readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 36311;
                            readonly DEPTH_COMPONENT32F: 36012;
                            readonly DEPTH32F_STENCIL8: 36013;
                            readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 36269;
                            readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 33296;
                            readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 33297;
                            readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 33298;
                            readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 33299;
                            readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 33300;
                            readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 33301;
                            readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 33302;
                            readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 33303;
                            readonly FRAMEBUFFER_DEFAULT: 33304;
                            readonly UNSIGNED_INT_24_8: 34042;
                            readonly DEPTH24_STENCIL8: 35056;
                            readonly UNSIGNED_NORMALIZED: 35863;
                            readonly DRAW_FRAMEBUFFER_BINDING: 36006;
                            readonly READ_FRAMEBUFFER: 36008;
                            readonly DRAW_FRAMEBUFFER: 36009;
                            readonly READ_FRAMEBUFFER_BINDING: 36010;
                            readonly RENDERBUFFER_SAMPLES: 36011;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 36052;
                            readonly MAX_COLOR_ATTACHMENTS: 36063;
                            readonly COLOR_ATTACHMENT1: 36065;
                            readonly COLOR_ATTACHMENT2: 36066;
                            readonly COLOR_ATTACHMENT3: 36067;
                            readonly COLOR_ATTACHMENT4: 36068;
                            readonly COLOR_ATTACHMENT5: 36069;
                            readonly COLOR_ATTACHMENT6: 36070;
                            readonly COLOR_ATTACHMENT7: 36071;
                            readonly COLOR_ATTACHMENT8: 36072;
                            readonly COLOR_ATTACHMENT9: 36073;
                            readonly COLOR_ATTACHMENT10: 36074;
                            readonly COLOR_ATTACHMENT11: 36075;
                            readonly COLOR_ATTACHMENT12: 36076;
                            readonly COLOR_ATTACHMENT13: 36077;
                            readonly COLOR_ATTACHMENT14: 36078;
                            readonly COLOR_ATTACHMENT15: 36079;
                            readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 36182;
                            readonly MAX_SAMPLES: 36183;
                            readonly HALF_FLOAT: 5131;
                            readonly RG: 33319;
                            readonly RG_INTEGER: 33320;
                            readonly R8: 33321;
                            readonly RG8: 33323;
                            readonly R16F: 33325;
                            readonly R32F: 33326;
                            readonly RG16F: 33327;
                            readonly RG32F: 33328;
                            readonly R8I: 33329;
                            readonly R8UI: 33330;
                            readonly R16I: 33331;
                            readonly R16UI: 33332;
                            readonly R32I: 33333;
                            readonly R32UI: 33334;
                            readonly RG8I: 33335;
                            readonly RG8UI: 33336;
                            readonly RG16I: 33337;
                            readonly RG16UI: 33338;
                            readonly RG32I: 33339;
                            readonly RG32UI: 33340;
                            readonly VERTEX_ARRAY_BINDING: 34229;
                            readonly R8_SNORM: 36756;
                            readonly RG8_SNORM: 36757;
                            readonly RGB8_SNORM: 36758;
                            readonly RGBA8_SNORM: 36759;
                            readonly SIGNED_NORMALIZED: 36764;
                            readonly COPY_READ_BUFFER: 36662;
                            readonly COPY_WRITE_BUFFER: 36663;
                            readonly COPY_READ_BUFFER_BINDING: 36662;
                            readonly COPY_WRITE_BUFFER_BINDING: 36663;
                            readonly UNIFORM_BUFFER: 35345;
                            readonly UNIFORM_BUFFER_BINDING: 35368;
                            readonly UNIFORM_BUFFER_START: 35369;
                            readonly UNIFORM_BUFFER_SIZE: 35370;
                            readonly MAX_VERTEX_UNIFORM_BLOCKS: 35371;
                            readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 35373;
                            readonly MAX_COMBINED_UNIFORM_BLOCKS: 35374;
                            readonly MAX_UNIFORM_BUFFER_BINDINGS: 35375;
                            readonly MAX_UNIFORM_BLOCK_SIZE: 35376;
                            readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 35377;
                            readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 35379;
                            readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 35380;
                            readonly ACTIVE_UNIFORM_BLOCKS: 35382;
                            readonly UNIFORM_TYPE: 35383;
                            readonly UNIFORM_SIZE: 35384;
                            readonly UNIFORM_BLOCK_INDEX: 35386;
                            readonly UNIFORM_OFFSET: 35387;
                            readonly UNIFORM_ARRAY_STRIDE: 35388;
                            readonly UNIFORM_MATRIX_STRIDE: 35389;
                            readonly UNIFORM_IS_ROW_MAJOR: 35390;
                            readonly UNIFORM_BLOCK_BINDING: 35391;
                            readonly UNIFORM_BLOCK_DATA_SIZE: 35392;
                            readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 35394;
                            readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 35395;
                            readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 35396;
                            readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 35398;
                            readonly INVALID_INDEX: 4294967295;
                            readonly MAX_VERTEX_OUTPUT_COMPONENTS: 37154;
                            readonly MAX_FRAGMENT_INPUT_COMPONENTS: 37157;
                            readonly MAX_SERVER_WAIT_TIMEOUT: 37137;
                            readonly OBJECT_TYPE: 37138;
                            readonly SYNC_CONDITION: 37139;
                            readonly SYNC_STATUS: 37140;
                            readonly SYNC_FLAGS: 37141;
                            readonly SYNC_FENCE: 37142;
                            readonly SYNC_GPU_COMMANDS_COMPLETE: 37143;
                            readonly UNSIGNALED: 37144;
                            readonly SIGNALED: 37145;
                            readonly ALREADY_SIGNALED: 37146;
                            readonly TIMEOUT_EXPIRED: 37147;
                            readonly CONDITION_SATISFIED: 37148;
                            readonly WAIT_FAILED: 37149;
                            readonly SYNC_FLUSH_COMMANDS_BIT: 1;
                            readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 35070;
                            readonly ANY_SAMPLES_PASSED: 35887;
                            readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 36202;
                            readonly SAMPLER_BINDING: 35097;
                            readonly RGB10_A2UI: 36975;
                            readonly INT_2_10_10_10_REV: 36255;
                            readonly TRANSFORM_FEEDBACK: 36386;
                            readonly TRANSFORM_FEEDBACK_PAUSED: 36387;
                            readonly TRANSFORM_FEEDBACK_ACTIVE: 36388;
                            readonly TRANSFORM_FEEDBACK_BINDING: 36389;
                            readonly TEXTURE_IMMUTABLE_FORMAT: 37167;
                            readonly MAX_ELEMENT_INDEX: 36203;
                            readonly TEXTURE_IMMUTABLE_LEVELS: 33503;
                            readonly TIMEOUT_IGNORED: -1;
                            readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 37447;
                            readonly DEPTH_BUFFER_BIT: 256;
                            readonly STENCIL_BUFFER_BIT: 1024;
                            readonly COLOR_BUFFER_BIT: 16384;
                            readonly POINTS: 0;
                            readonly LINES: 1;
                            readonly LINE_LOOP: 2;
                            readonly LINE_STRIP: 3;
                            readonly TRIANGLES: 4;
                            readonly TRIANGLE_STRIP: 5;
                            readonly TRIANGLE_FAN: 6;
                            readonly ZERO: 0;
                            readonly ONE: 1;
                            readonly SRC_COLOR: 768;
                            readonly ONE_MINUS_SRC_COLOR: 769;
                            readonly SRC_ALPHA: 770;
                            readonly ONE_MINUS_SRC_ALPHA: 771;
                            readonly DST_ALPHA: 772;
                            readonly ONE_MINUS_DST_ALPHA: 773;
                            readonly DST_COLOR: 774;
                            readonly ONE_MINUS_DST_COLOR: 775;
                            readonly SRC_ALPHA_SATURATE: 776;
                            readonly FUNC_ADD: 32774;
                            readonly BLEND_EQUATION: 32777;
                            readonly BLEND_EQUATION_RGB: 32777;
                            readonly BLEND_EQUATION_ALPHA: 34877;
                            readonly FUNC_SUBTRACT: 32778;
                            readonly FUNC_REVERSE_SUBTRACT: 32779;
                            readonly BLEND_DST_RGB: 32968;
                            readonly BLEND_SRC_RGB: 32969;
                            readonly BLEND_DST_ALPHA: 32970;
                            readonly BLEND_SRC_ALPHA: 32971;
                            readonly CONSTANT_COLOR: 32769;
                            readonly ONE_MINUS_CONSTANT_COLOR: 32770;
                            readonly CONSTANT_ALPHA: 32771;
                            readonly ONE_MINUS_CONSTANT_ALPHA: 32772;
                            readonly BLEND_COLOR: 32773;
                            readonly ARRAY_BUFFER: 34962;
                            readonly ELEMENT_ARRAY_BUFFER: 34963;
                            readonly ARRAY_BUFFER_BINDING: 34964;
                            readonly ELEMENT_ARRAY_BUFFER_BINDING: 34965;
                            readonly STREAM_DRAW: 35040;
                            readonly STATIC_DRAW: 35044;
                            readonly DYNAMIC_DRAW: 35048;
                            readonly BUFFER_SIZE: 34660;
                            readonly BUFFER_USAGE: 34661;
                            readonly CURRENT_VERTEX_ATTRIB: 34342;
                            readonly FRONT: 1028;
                            readonly BACK: 1029;
                            readonly FRONT_AND_BACK: 1032;
                            readonly CULL_FACE: 2884;
                            readonly BLEND: 3042;
                            readonly DITHER: 3024;
                            readonly STENCIL_TEST: 2960;
                            readonly DEPTH_TEST: 2929;
                            readonly SCISSOR_TEST: 3089;
                            readonly POLYGON_OFFSET_FILL: 32823;
                            readonly SAMPLE_ALPHA_TO_COVERAGE: 32926;
                            readonly SAMPLE_COVERAGE: 32928;
                            readonly NO_ERROR: 0;
                            readonly INVALID_ENUM: 1280;
                            readonly INVALID_VALUE: 1281;
                            readonly INVALID_OPERATION: 1282;
                            readonly OUT_OF_MEMORY: 1285;
                            readonly CW: 2304;
                            readonly CCW: 2305;
                            readonly LINE_WIDTH: 2849;
                            readonly ALIASED_POINT_SIZE_RANGE: 33901;
                            readonly ALIASED_LINE_WIDTH_RANGE: 33902;
                            readonly CULL_FACE_MODE: 2885;
                            readonly FRONT_FACE: 2886;
                            readonly DEPTH_RANGE: 2928;
                            readonly DEPTH_WRITEMASK: 2930;
                            readonly DEPTH_CLEAR_VALUE: 2931;
                            readonly DEPTH_FUNC: 2932;
                            readonly STENCIL_CLEAR_VALUE: 2961;
                            readonly STENCIL_FUNC: 2962;
                            readonly STENCIL_FAIL: 2964;
                            readonly STENCIL_PASS_DEPTH_FAIL: 2965;
                            readonly STENCIL_PASS_DEPTH_PASS: 2966;
                            readonly STENCIL_REF: 2967;
                            readonly STENCIL_VALUE_MASK: 2963;
                            readonly STENCIL_WRITEMASK: 2968;
                            readonly STENCIL_BACK_FUNC: 34816;
                            readonly STENCIL_BACK_FAIL: 34817;
                            readonly STENCIL_BACK_PASS_DEPTH_FAIL: 34818;
                            readonly STENCIL_BACK_PASS_DEPTH_PASS: 34819;
                            readonly STENCIL_BACK_REF: 36003;
                            readonly STENCIL_BACK_VALUE_MASK: 36004;
                            readonly STENCIL_BACK_WRITEMASK: 36005;
                            readonly VIEWPORT: 2978;
                            readonly SCISSOR_BOX: 3088;
                            readonly COLOR_CLEAR_VALUE: 3106;
                            readonly COLOR_WRITEMASK: 3107;
                            readonly UNPACK_ALIGNMENT: 3317;
                            readonly PACK_ALIGNMENT: 3333;
                            readonly MAX_TEXTURE_SIZE: 3379;
                            readonly MAX_VIEWPORT_DIMS: 3386;
                            readonly SUBPIXEL_BITS: 3408;
                            readonly RED_BITS: 3410;
                            readonly GREEN_BITS: 3411;
                            readonly BLUE_BITS: 3412;
                            readonly ALPHA_BITS: 3413;
                            readonly DEPTH_BITS: 3414;
                            readonly STENCIL_BITS: 3415;
                            readonly POLYGON_OFFSET_UNITS: 10752;
                            readonly POLYGON_OFFSET_FACTOR: 32824;
                            readonly TEXTURE_BINDING_2D: 32873;
                            readonly SAMPLE_BUFFERS: 32936;
                            readonly SAMPLES: 32937;
                            readonly SAMPLE_COVERAGE_VALUE: 32938;
                            readonly SAMPLE_COVERAGE_INVERT: 32939;
                            readonly COMPRESSED_TEXTURE_FORMATS: 34467;
                            readonly DONT_CARE: 4352;
                            readonly FASTEST: 4353;
                            readonly NICEST: 4354;
                            readonly GENERATE_MIPMAP_HINT: 33170;
                            readonly BYTE: 5120;
                            readonly UNSIGNED_BYTE: 5121;
                            readonly SHORT: 5122;
                            readonly UNSIGNED_SHORT: 5123;
                            readonly INT: 5124;
                            readonly UNSIGNED_INT: 5125;
                            readonly FLOAT: 5126;
                            readonly DEPTH_COMPONENT: 6402;
                            readonly ALPHA: 6406;
                            readonly RGB: 6407;
                            readonly RGBA: 6408;
                            readonly LUMINANCE: 6409;
                            readonly LUMINANCE_ALPHA: 6410;
                            readonly UNSIGNED_SHORT_4_4_4_4: 32819;
                            readonly UNSIGNED_SHORT_5_5_5_1: 32820;
                            readonly UNSIGNED_SHORT_5_6_5: 33635;
                            readonly FRAGMENT_SHADER: 35632;
                            readonly VERTEX_SHADER: 35633;
                            readonly MAX_VERTEX_ATTRIBS: 34921;
                            readonly MAX_VERTEX_UNIFORM_VECTORS: 36347;
                            readonly MAX_VARYING_VECTORS: 36348;
                            readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661;
                            readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660;
                            readonly MAX_TEXTURE_IMAGE_UNITS: 34930;
                            readonly MAX_FRAGMENT_UNIFORM_VECTORS: 36349;
                            readonly SHADER_TYPE: 35663;
                            readonly DELETE_STATUS: 35712;
                            readonly LINK_STATUS: 35714;
                            readonly VALIDATE_STATUS: 35715;
                            readonly ATTACHED_SHADERS: 35717;
                            readonly ACTIVE_UNIFORMS: 35718;
                            readonly ACTIVE_ATTRIBUTES: 35721;
                            readonly SHADING_LANGUAGE_VERSION: 35724;
                            readonly CURRENT_PROGRAM: 35725;
                            readonly NEVER: 512;
                            readonly LESS: 513;
                            readonly EQUAL: 514;
                            readonly LEQUAL: 515;
                            readonly GREATER: 516;
                            readonly NOTEQUAL: 517;
                            readonly GEQUAL: 518;
                            readonly ALWAYS: 519;
                            readonly KEEP: 7680;
                            readonly REPLACE: 7681;
                            readonly INCR: 7682;
                            readonly DECR: 7683;
                            readonly INVERT: 5386;
                            readonly INCR_WRAP: 34055;
                            readonly DECR_WRAP: 34056;
                            readonly VENDOR: 7936;
                            readonly RENDERER: 7937;
                            readonly VERSION: 7938;
                            readonly NEAREST: 9728;
                            readonly LINEAR: 9729;
                            readonly NEAREST_MIPMAP_NEAREST: 9984;
                            readonly LINEAR_MIPMAP_NEAREST: 9985;
                            readonly NEAREST_MIPMAP_LINEAR: 9986;
                            readonly LINEAR_MIPMAP_LINEAR: 9987;
                            readonly TEXTURE_MAG_FILTER: 10240;
                            readonly TEXTURE_MIN_FILTER: 10241;
                            readonly TEXTURE_WRAP_S: 10242;
                            readonly TEXTURE_WRAP_T: 10243;
                            readonly TEXTURE_2D: 3553;
                            readonly TEXTURE: 5890;
                            readonly TEXTURE_CUBE_MAP: 34067;
                            readonly TEXTURE_BINDING_CUBE_MAP: 34068;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_X: 34069;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 34070;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 34071;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 34073;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074;
                            readonly MAX_CUBE_MAP_TEXTURE_SIZE: 34076;
                            readonly TEXTURE0: 33984;
                            readonly TEXTURE1: 33985;
                            readonly TEXTURE2: 33986;
                            readonly TEXTURE3: 33987;
                            readonly TEXTURE4: 33988;
                            readonly TEXTURE5: 33989;
                            readonly TEXTURE6: 33990;
                            readonly TEXTURE7: 33991;
                            readonly TEXTURE8: 33992;
                            readonly TEXTURE9: 33993;
                            readonly TEXTURE10: 33994;
                            readonly TEXTURE11: 33995;
                            readonly TEXTURE12: 33996;
                            readonly TEXTURE13: 33997;
                            readonly TEXTURE14: 33998;
                            readonly TEXTURE15: 33999;
                            readonly TEXTURE16: 34000;
                            readonly TEXTURE17: 34001;
                            readonly TEXTURE18: 34002;
                            readonly TEXTURE19: 34003;
                            readonly TEXTURE20: 34004;
                            readonly TEXTURE21: 34005;
                            readonly TEXTURE22: 34006;
                            readonly TEXTURE23: 34007;
                            readonly TEXTURE24: 34008;
                            readonly TEXTURE25: 34009;
                            readonly TEXTURE26: 34010;
                            readonly TEXTURE27: 34011;
                            readonly TEXTURE28: 34012;
                            readonly TEXTURE29: 34013;
                            readonly TEXTURE30: 34014;
                            readonly TEXTURE31: 34015;
                            readonly ACTIVE_TEXTURE: 34016;
                            readonly REPEAT: 10497;
                            readonly CLAMP_TO_EDGE: 33071;
                            readonly MIRRORED_REPEAT: 33648;
                            readonly FLOAT_VEC2: 35664;
                            readonly FLOAT_VEC3: 35665;
                            readonly FLOAT_VEC4: 35666;
                            readonly INT_VEC2: 35667;
                            readonly INT_VEC3: 35668;
                            readonly INT_VEC4: 35669;
                            readonly BOOL: 35670;
                            readonly BOOL_VEC2: 35671;
                            readonly BOOL_VEC3: 35672;
                            readonly BOOL_VEC4: 35673;
                            readonly FLOAT_MAT2: 35674;
                            readonly FLOAT_MAT3: 35675;
                            readonly FLOAT_MAT4: 35676;
                            readonly SAMPLER_2D: 35678;
                            readonly SAMPLER_CUBE: 35680;
                            readonly VERTEX_ATTRIB_ARRAY_ENABLED: 34338;
                            readonly VERTEX_ATTRIB_ARRAY_SIZE: 34339;
                            readonly VERTEX_ATTRIB_ARRAY_STRIDE: 34340;
                            readonly VERTEX_ATTRIB_ARRAY_TYPE: 34341;
                            readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922;
                            readonly VERTEX_ATTRIB_ARRAY_POINTER: 34373;
                            readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975;
                            readonly IMPLEMENTATION_COLOR_READ_TYPE: 35738;
                            readonly IMPLEMENTATION_COLOR_READ_FORMAT: 35739;
                            readonly COMPILE_STATUS: 35713;
                            readonly LOW_FLOAT: 36336;
                            readonly MEDIUM_FLOAT: 36337;
                            readonly HIGH_FLOAT: 36338;
                            readonly LOW_INT: 36339;
                            readonly MEDIUM_INT: 36340;
                            readonly HIGH_INT: 36341;
                            readonly FRAMEBUFFER: 36160;
                            readonly RENDERBUFFER: 36161;
                            readonly RGBA4: 32854;
                            readonly RGB5_A1: 32855;
                            readonly RGBA8: 32856;
                            readonly RGB565: 36194;
                            readonly DEPTH_COMPONENT16: 33189;
                            readonly STENCIL_INDEX8: 36168;
                            readonly DEPTH_STENCIL: 34041;
                            readonly RENDERBUFFER_WIDTH: 36162;
                            readonly RENDERBUFFER_HEIGHT: 36163;
                            readonly RENDERBUFFER_INTERNAL_FORMAT: 36164;
                            readonly RENDERBUFFER_RED_SIZE: 36176;
                            readonly RENDERBUFFER_GREEN_SIZE: 36177;
                            readonly RENDERBUFFER_BLUE_SIZE: 36178;
                            readonly RENDERBUFFER_ALPHA_SIZE: 36179;
                            readonly RENDERBUFFER_DEPTH_SIZE: 36180;
                            readonly RENDERBUFFER_STENCIL_SIZE: 36181;
                            readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048;
                            readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051;
                            readonly COLOR_ATTACHMENT0: 36064;
                            readonly DEPTH_ATTACHMENT: 36096;
                            readonly STENCIL_ATTACHMENT: 36128;
                            readonly DEPTH_STENCIL_ATTACHMENT: 33306;
                            readonly NONE: 0;
                            readonly FRAMEBUFFER_COMPLETE: 36053;
                            readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054;
                            readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055;
                            readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057;
                            readonly FRAMEBUFFER_UNSUPPORTED: 36061;
                            readonly FRAMEBUFFER_BINDING: 36006;
                            readonly RENDERBUFFER_BINDING: 36007;
                            readonly MAX_RENDERBUFFER_SIZE: 34024;
                            readonly INVALID_FRAMEBUFFER_OPERATION: 1286;
                            readonly UNPACK_FLIP_Y_WEBGL: 37440;
                            readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441;
                            readonly CONTEXT_LOST_WEBGL: 37442;
                            readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443;
                            readonly BROWSER_DEFAULT_WEBGL: 37444;
                        };
                        WebGLActiveInfo: {
                            prototype: WebGLActiveInfo;
                            new (): WebGLActiveInfo;
                        };
                        WebGLBuffer: {
                            prototype: WebGLBuffer;
                            new (): WebGLBuffer;
                        };
                        WebGLContextEvent: {
                            prototype: WebGLContextEvent;
                            new (type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;
                        };
                        WebGLFramebuffer: {
                            prototype: WebGLFramebuffer;
                            new (): WebGLFramebuffer;
                        };
                        WebGLProgram: {
                            prototype: WebGLProgram;
                            new (): WebGLProgram;
                        };
                        WebGLQuery: {
                            prototype: WebGLQuery;
                            new (): WebGLQuery;
                        };
                        WebGLRenderbuffer: {
                            prototype: WebGLRenderbuffer;
                            new (): WebGLRenderbuffer;
                        };
                        WebGLRenderingContext: {
                            prototype: WebGLRenderingContext;
                            new (): WebGLRenderingContext;
                            readonly DEPTH_BUFFER_BIT: 256;
                            readonly STENCIL_BUFFER_BIT: 1024;
                            readonly COLOR_BUFFER_BIT: 16384;
                            readonly POINTS: 0;
                            readonly LINES: 1;
                            readonly LINE_LOOP: 2;
                            readonly LINE_STRIP: 3;
                            readonly TRIANGLES: 4;
                            readonly TRIANGLE_STRIP: 5;
                            readonly TRIANGLE_FAN: 6;
                            readonly ZERO: 0;
                            readonly ONE: 1;
                            readonly SRC_COLOR: 768;
                            readonly ONE_MINUS_SRC_COLOR: 769;
                            readonly SRC_ALPHA: 770;
                            readonly ONE_MINUS_SRC_ALPHA: 771;
                            readonly DST_ALPHA: 772;
                            readonly ONE_MINUS_DST_ALPHA: 773;
                            readonly DST_COLOR: 774;
                            readonly ONE_MINUS_DST_COLOR: 775;
                            readonly SRC_ALPHA_SATURATE: 776;
                            readonly FUNC_ADD: 32774;
                            readonly BLEND_EQUATION: 32777;
                            readonly BLEND_EQUATION_RGB: 32777;
                            readonly BLEND_EQUATION_ALPHA: 34877;
                            readonly FUNC_SUBTRACT: 32778;
                            readonly FUNC_REVERSE_SUBTRACT: 32779;
                            readonly BLEND_DST_RGB: 32968;
                            readonly BLEND_SRC_RGB: 32969;
                            readonly BLEND_DST_ALPHA: 32970;
                            readonly BLEND_SRC_ALPHA: 32971;
                            readonly CONSTANT_COLOR: 32769;
                            readonly ONE_MINUS_CONSTANT_COLOR: 32770;
                            readonly CONSTANT_ALPHA: 32771;
                            readonly ONE_MINUS_CONSTANT_ALPHA: 32772;
                            readonly BLEND_COLOR: 32773;
                            readonly ARRAY_BUFFER: 34962;
                            readonly ELEMENT_ARRAY_BUFFER: 34963;
                            readonly ARRAY_BUFFER_BINDING: 34964;
                            readonly ELEMENT_ARRAY_BUFFER_BINDING: 34965;
                            readonly STREAM_DRAW: 35040;
                            readonly STATIC_DRAW: 35044;
                            readonly DYNAMIC_DRAW: 35048;
                            readonly BUFFER_SIZE: 34660;
                            readonly BUFFER_USAGE: 34661;
                            readonly CURRENT_VERTEX_ATTRIB: 34342;
                            readonly FRONT: 1028;
                            readonly BACK: 1029;
                            readonly FRONT_AND_BACK: 1032;
                            readonly CULL_FACE: 2884;
                            readonly BLEND: 3042;
                            readonly DITHER: 3024;
                            readonly STENCIL_TEST: 2960;
                            readonly DEPTH_TEST: 2929;
                            readonly SCISSOR_TEST: 3089;
                            readonly POLYGON_OFFSET_FILL: 32823;
                            readonly SAMPLE_ALPHA_TO_COVERAGE: 32926;
                            readonly SAMPLE_COVERAGE: 32928;
                            readonly NO_ERROR: 0;
                            readonly INVALID_ENUM: 1280;
                            readonly INVALID_VALUE: 1281;
                            readonly INVALID_OPERATION: 1282;
                            readonly OUT_OF_MEMORY: 1285;
                            readonly CW: 2304;
                            readonly CCW: 2305;
                            readonly LINE_WIDTH: 2849;
                            readonly ALIASED_POINT_SIZE_RANGE: 33901;
                            readonly ALIASED_LINE_WIDTH_RANGE: 33902;
                            readonly CULL_FACE_MODE: 2885;
                            readonly FRONT_FACE: 2886;
                            readonly DEPTH_RANGE: 2928;
                            readonly DEPTH_WRITEMASK: 2930;
                            readonly DEPTH_CLEAR_VALUE: 2931;
                            readonly DEPTH_FUNC: 2932;
                            readonly STENCIL_CLEAR_VALUE: 2961;
                            readonly STENCIL_FUNC: 2962;
                            readonly STENCIL_FAIL: 2964;
                            readonly STENCIL_PASS_DEPTH_FAIL: 2965;
                            readonly STENCIL_PASS_DEPTH_PASS: 2966;
                            readonly STENCIL_REF: 2967;
                            readonly STENCIL_VALUE_MASK: 2963;
                            readonly STENCIL_WRITEMASK: 2968;
                            readonly STENCIL_BACK_FUNC: 34816;
                            readonly STENCIL_BACK_FAIL: 34817;
                            readonly STENCIL_BACK_PASS_DEPTH_FAIL: 34818;
                            readonly STENCIL_BACK_PASS_DEPTH_PASS: 34819;
                            readonly STENCIL_BACK_REF: 36003;
                            readonly STENCIL_BACK_VALUE_MASK: 36004;
                            readonly STENCIL_BACK_WRITEMASK: 36005;
                            readonly VIEWPORT: 2978;
                            readonly SCISSOR_BOX: 3088;
                            readonly COLOR_CLEAR_VALUE: 3106;
                            readonly COLOR_WRITEMASK: 3107;
                            readonly UNPACK_ALIGNMENT: 3317;
                            readonly PACK_ALIGNMENT: 3333;
                            readonly MAX_TEXTURE_SIZE: 3379;
                            readonly MAX_VIEWPORT_DIMS: 3386;
                            readonly SUBPIXEL_BITS: 3408;
                            readonly RED_BITS: 3410;
                            readonly GREEN_BITS: 3411;
                            readonly BLUE_BITS: 3412;
                            readonly ALPHA_BITS: 3413;
                            readonly DEPTH_BITS: 3414;
                            readonly STENCIL_BITS: 3415;
                            readonly POLYGON_OFFSET_UNITS: 10752;
                            readonly POLYGON_OFFSET_FACTOR: 32824;
                            readonly TEXTURE_BINDING_2D: 32873;
                            readonly SAMPLE_BUFFERS: 32936;
                            readonly SAMPLES: 32937;
                            readonly SAMPLE_COVERAGE_VALUE: 32938;
                            readonly SAMPLE_COVERAGE_INVERT: 32939;
                            readonly COMPRESSED_TEXTURE_FORMATS: 34467;
                            readonly DONT_CARE: 4352;
                            readonly FASTEST: 4353;
                            readonly NICEST: 4354;
                            readonly GENERATE_MIPMAP_HINT: 33170;
                            readonly BYTE: 5120;
                            readonly UNSIGNED_BYTE: 5121;
                            readonly SHORT: 5122;
                            readonly UNSIGNED_SHORT: 5123;
                            readonly INT: 5124;
                            readonly UNSIGNED_INT: 5125;
                            readonly FLOAT: 5126;
                            readonly DEPTH_COMPONENT: 6402;
                            readonly ALPHA: 6406;
                            readonly RGB: 6407;
                            readonly RGBA: 6408;
                            readonly LUMINANCE: 6409;
                            readonly LUMINANCE_ALPHA: 6410;
                            readonly UNSIGNED_SHORT_4_4_4_4: 32819;
                            readonly UNSIGNED_SHORT_5_5_5_1: 32820;
                            readonly UNSIGNED_SHORT_5_6_5: 33635;
                            readonly FRAGMENT_SHADER: 35632;
                            readonly VERTEX_SHADER: 35633;
                            readonly MAX_VERTEX_ATTRIBS: 34921;
                            readonly MAX_VERTEX_UNIFORM_VECTORS: 36347;
                            readonly MAX_VARYING_VECTORS: 36348;
                            readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661;
                            readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660;
                            readonly MAX_TEXTURE_IMAGE_UNITS: 34930;
                            readonly MAX_FRAGMENT_UNIFORM_VECTORS: 36349;
                            readonly SHADER_TYPE: 35663;
                            readonly DELETE_STATUS: 35712;
                            readonly LINK_STATUS: 35714;
                            readonly VALIDATE_STATUS: 35715;
                            readonly ATTACHED_SHADERS: 35717;
                            readonly ACTIVE_UNIFORMS: 35718;
                            readonly ACTIVE_ATTRIBUTES: 35721;
                            readonly SHADING_LANGUAGE_VERSION: 35724;
                            readonly CURRENT_PROGRAM: 35725;
                            readonly NEVER: 512;
                            readonly LESS: 513;
                            readonly EQUAL: 514;
                            readonly LEQUAL: 515;
                            readonly GREATER: 516;
                            readonly NOTEQUAL: 517;
                            readonly GEQUAL: 518;
                            readonly ALWAYS: 519;
                            readonly KEEP: 7680;
                            readonly REPLACE: 7681;
                            readonly INCR: 7682;
                            readonly DECR: 7683;
                            readonly INVERT: 5386;
                            readonly INCR_WRAP: 34055;
                            readonly DECR_WRAP: 34056;
                            readonly VENDOR: 7936;
                            readonly RENDERER: 7937;
                            readonly VERSION: 7938;
                            readonly NEAREST: 9728;
                            readonly LINEAR: 9729;
                            readonly NEAREST_MIPMAP_NEAREST: 9984;
                            readonly LINEAR_MIPMAP_NEAREST: 9985;
                            readonly NEAREST_MIPMAP_LINEAR: 9986;
                            readonly LINEAR_MIPMAP_LINEAR: 9987;
                            readonly TEXTURE_MAG_FILTER: 10240;
                            readonly TEXTURE_MIN_FILTER: 10241;
                            readonly TEXTURE_WRAP_S: 10242;
                            readonly TEXTURE_WRAP_T: 10243;
                            readonly TEXTURE_2D: 3553;
                            readonly TEXTURE: 5890;
                            readonly TEXTURE_CUBE_MAP: 34067;
                            readonly TEXTURE_BINDING_CUBE_MAP: 34068;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_X: 34069;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 34070;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 34071;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 34073;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074;
                            readonly MAX_CUBE_MAP_TEXTURE_SIZE: 34076;
                            readonly TEXTURE0: 33984;
                            readonly TEXTURE1: 33985;
                            readonly TEXTURE2: 33986;
                            readonly TEXTURE3: 33987;
                            readonly TEXTURE4: 33988;
                            readonly TEXTURE5: 33989;
                            readonly TEXTURE6: 33990;
                            readonly TEXTURE7: 33991;
                            readonly TEXTURE8: 33992;
                            readonly TEXTURE9: 33993;
                            readonly TEXTURE10: 33994;
                            readonly TEXTURE11: 33995;
                            readonly TEXTURE12: 33996;
                            readonly TEXTURE13: 33997;
                            readonly TEXTURE14: 33998;
                            readonly TEXTURE15: 33999;
                            readonly TEXTURE16: 34000;
                            readonly TEXTURE17: 34001;
                            readonly TEXTURE18: 34002;
                            readonly TEXTURE19: 34003;
                            readonly TEXTURE20: 34004;
                            readonly TEXTURE21: 34005;
                            readonly TEXTURE22: 34006;
                            readonly TEXTURE23: 34007;
                            readonly TEXTURE24: 34008;
                            readonly TEXTURE25: 34009;
                            readonly TEXTURE26: 34010;
                            readonly TEXTURE27: 34011;
                            readonly TEXTURE28: 34012;
                            readonly TEXTURE29: 34013;
                            readonly TEXTURE30: 34014;
                            readonly TEXTURE31: 34015;
                            readonly ACTIVE_TEXTURE: 34016;
                            readonly REPEAT: 10497;
                            readonly CLAMP_TO_EDGE: 33071;
                            readonly MIRRORED_REPEAT: 33648;
                            readonly FLOAT_VEC2: 35664;
                            readonly FLOAT_VEC3: 35665;
                            readonly FLOAT_VEC4: 35666;
                            readonly INT_VEC2: 35667;
                            readonly INT_VEC3: 35668;
                            readonly INT_VEC4: 35669;
                            readonly BOOL: 35670;
                            readonly BOOL_VEC2: 35671;
                            readonly BOOL_VEC3: 35672;
                            readonly BOOL_VEC4: 35673;
                            readonly FLOAT_MAT2: 35674;
                            readonly FLOAT_MAT3: 35675;
                            readonly FLOAT_MAT4: 35676;
                            readonly SAMPLER_2D: 35678;
                            readonly SAMPLER_CUBE: 35680;
                            readonly VERTEX_ATTRIB_ARRAY_ENABLED: 34338;
                            readonly VERTEX_ATTRIB_ARRAY_SIZE: 34339;
                            readonly VERTEX_ATTRIB_ARRAY_STRIDE: 34340;
                            readonly VERTEX_ATTRIB_ARRAY_TYPE: 34341;
                            readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922;
                            readonly VERTEX_ATTRIB_ARRAY_POINTER: 34373;
                            readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975;
                            readonly IMPLEMENTATION_COLOR_READ_TYPE: 35738;
                            readonly IMPLEMENTATION_COLOR_READ_FORMAT: 35739;
                            readonly COMPILE_STATUS: 35713;
                            readonly LOW_FLOAT: 36336;
                            readonly MEDIUM_FLOAT: 36337;
                            readonly HIGH_FLOAT: 36338;
                            readonly LOW_INT: 36339;
                            readonly MEDIUM_INT: 36340;
                            readonly HIGH_INT: 36341;
                            readonly FRAMEBUFFER: 36160;
                            readonly RENDERBUFFER: 36161;
                            readonly RGBA4: 32854;
                            readonly RGB5_A1: 32855;
                            readonly RGBA8: 32856;
                            readonly RGB565: 36194;
                            readonly DEPTH_COMPONENT16: 33189;
                            readonly STENCIL_INDEX8: 36168;
                            readonly DEPTH_STENCIL: 34041;
                            readonly RENDERBUFFER_WIDTH: 36162;
                            readonly RENDERBUFFER_HEIGHT: 36163;
                            readonly RENDERBUFFER_INTERNAL_FORMAT: 36164;
                            readonly RENDERBUFFER_RED_SIZE: 36176;
                            readonly RENDERBUFFER_GREEN_SIZE: 36177;
                            readonly RENDERBUFFER_BLUE_SIZE: 36178;
                            readonly RENDERBUFFER_ALPHA_SIZE: 36179;
                            readonly RENDERBUFFER_DEPTH_SIZE: 36180;
                            readonly RENDERBUFFER_STENCIL_SIZE: 36181;
                            readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048;
                            readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051;
                            readonly COLOR_ATTACHMENT0: 36064;
                            readonly DEPTH_ATTACHMENT: 36096;
                            readonly STENCIL_ATTACHMENT: 36128;
                            readonly DEPTH_STENCIL_ATTACHMENT: 33306;
                            readonly NONE: 0;
                            readonly FRAMEBUFFER_COMPLETE: 36053;
                            readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054;
                            readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055;
                            readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057;
                            readonly FRAMEBUFFER_UNSUPPORTED: 36061;
                            readonly FRAMEBUFFER_BINDING: 36006;
                            readonly RENDERBUFFER_BINDING: 36007;
                            readonly MAX_RENDERBUFFER_SIZE: 34024;
                            readonly INVALID_FRAMEBUFFER_OPERATION: 1286;
                            readonly UNPACK_FLIP_Y_WEBGL: 37440;
                            readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441;
                            readonly CONTEXT_LOST_WEBGL: 37442;
                            readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443;
                            readonly BROWSER_DEFAULT_WEBGL: 37444;
                        };
                        WebGLSampler: {
                            prototype: WebGLSampler;
                            new (): WebGLSampler;
                        };
                        WebGLShader: {
                            prototype: WebGLShader;
                            new (): WebGLShader;
                        };
                        WebGLShaderPrecisionFormat: {
                            prototype: WebGLShaderPrecisionFormat;
                            new (): WebGLShaderPrecisionFormat;
                        };
                        WebGLSync: {
                            prototype: WebGLSync;
                            new (): WebGLSync;
                        };
                        WebGLTexture: {
                            prototype: WebGLTexture;
                            new (): WebGLTexture;
                        };
                        WebGLTransformFeedback: {
                            prototype: WebGLTransformFeedback;
                            new (): WebGLTransformFeedback;
                        };
                        WebGLUniformLocation: {
                            prototype: WebGLUniformLocation;
                            new (): WebGLUniformLocation;
                        };
                        WebGLVertexArrayObject: {
                            prototype: WebGLVertexArrayObject;
                            new (): WebGLVertexArrayObject;
                        };
                        WebSocket: {
                            prototype: WebSocket;
                            new (url: string | URL, protocols?: string | string[]): WebSocket;
                            readonly CONNECTING: 0;
                            readonly OPEN: 1;
                            readonly CLOSING: 2;
                            readonly CLOSED: 3;
                        };
                        WebTransport: {
                            prototype: WebTransport;
                            new (url: string | URL, options?: WebTransportOptions): WebTransport;
                        };
                        WebTransportBidirectionalStream: {
                            prototype: WebTransportBidirectionalStream;
                            new (): WebTransportBidirectionalStream;
                        };
                        WebTransportDatagramDuplexStream: {
                            prototype: WebTransportDatagramDuplexStream;
                            new (): WebTransportDatagramDuplexStream;
                        };
                        WebTransportError: {
                            prototype: WebTransportError;
                            new (message?: string, options?: WebTransportErrorOptions): WebTransportError;
                        };
                        WheelEvent: {
                            prototype: WheelEvent;
                            new (type: string, eventInitDict?: WheelEventInit): WheelEvent;
                            readonly DOM_DELTA_PIXEL: 0;
                            readonly DOM_DELTA_LINE: 1;
                            readonly DOM_DELTA_PAGE: 2;
                        };
                        Window: {
                            prototype: Window;
                            new (): Window;
                        };
                        Worker: {
                            prototype: Worker;
                            new (scriptURL: string | URL, options?: WorkerOptions): Worker;
                        };
                        Worklet: {
                            prototype: Worklet;
                            new (): Worklet;
                        };
                        WritableStream: {
                            prototype: WritableStream;
                            new <W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
                        };
                        WritableStreamDefaultController: {
                            prototype: WritableStreamDefaultController;
                            new (): WritableStreamDefaultController;
                        };
                        WritableStreamDefaultWriter: {
                            prototype: WritableStreamDefaultWriter;
                            new <W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
                        };
                        XMLDocument: {
                            prototype: XMLDocument;
                            new (): XMLDocument;
                        };
                        XMLHttpRequest: {
                            prototype: XMLHttpRequest;
                            new (): XMLHttpRequest;
                            readonly UNSENT: 0;
                            readonly OPENED: 1;
                            readonly HEADERS_RECEIVED: 2;
                            readonly LOADING: 3;
                            readonly DONE: 4;
                        };
                        XMLHttpRequestEventTarget: {
                            prototype: XMLHttpRequestEventTarget;
                            new (): XMLHttpRequestEventTarget;
                        };
                        XMLHttpRequestUpload: {
                            prototype: XMLHttpRequestUpload;
                            new (): XMLHttpRequestUpload;
                        };
                        XMLSerializer: {
                            prototype: XMLSerializer;
                            new (): XMLSerializer;
                        };
                        XPathEvaluator: {
                            prototype: XPathEvaluator;
                            new (): XPathEvaluator;
                        };
                        XPathExpression: {
                            prototype: XPathExpression;
                            new (): XPathExpression;
                        };
                        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;
                        };
                        XSLTProcessor: {
                            prototype: XSLTProcessor;
                            new (): XSLTProcessor;
                        };
                        console: {
                            assert: (condition?: boolean, ...data: any[]) => void;
                            clear: () => void;
                            count: (label?: string) => void;
                            countReset: (label?: string) => void;
                            debug: (...data: any[]) => void;
                            dir: (item?: any, options?: any) => void;
                            dirxml: (...data: any[]) => void;
                            error: (...data: any[]) => void;
                            group: (...data: any[]) => void;
                            groupCollapsed: (...data: any[]) => void;
                            groupEnd: () => void;
                            info: (...data: any[]) => void;
                            log: (...data: any[]) => void;
                            table: (tabularData?: any, properties?: string[]) => void;
                            time: (label?: string) => void;
                            timeEnd: (label?: string) => void;
                            timeLog: (label?: string, ...data: any[]) => void;
                            timeStamp: (label?: string) => void;
                            trace: (...data: any[]) => void;
                            warn: (...data: any[]) => void;
                        };
                        CSS: {
                            Hz: typeof CSS.Hz;
                            Q: typeof CSS.Q;
                            cap: typeof CSS.cap;
                            ch: typeof CSS.ch;
                            cm: typeof CSS.cm;
                            cqb: typeof CSS.cqb;
                            cqh: typeof CSS.cqh;
                            cqi: typeof CSS.cqi;
                            cqmax: typeof CSS.cqmax;
                            cqmin: typeof CSS.cqmin;
                            cqw: typeof CSS.cqw;
                            deg: typeof CSS.deg;
                            dpcm: typeof CSS.dpcm;
                            dpi: typeof CSS.dpi;
                            dppx: typeof CSS.dppx;
                            dvb: typeof CSS.dvb;
                            dvh: typeof CSS.dvh;
                            dvi: typeof CSS.dvi;
                            dvmax: typeof CSS.dvmax;
                            dvmin: typeof CSS.dvmin;
                            dvw: typeof CSS.dvw;
                            em: typeof CSS.em;
                            escape: typeof CSS.escape;
                            ex: typeof CSS.ex;
                            fr: typeof CSS.fr;
                            grad: typeof CSS.grad;
                            ic: typeof CSS.ic;
                            kHz: typeof CSS.kHz;
                            lh: typeof CSS.lh;
                            lvb: typeof CSS.lvb;
                            lvh: typeof CSS.lvh;
                            lvi: typeof CSS.lvi;
                            lvmax: typeof CSS.lvmax;
                            lvmin: typeof CSS.lvmin;
                            lvw: typeof CSS.lvw;
                            mm: typeof CSS.mm;
                            ms: typeof CSS.ms;
                            number: typeof CSS.number;
                            pc: typeof CSS.pc;
                            percent: typeof CSS.percent;
                            pt: typeof CSS.pt;
                            px: typeof CSS.px;
                            rad: typeof CSS.rad;
                            rcap: typeof CSS.rcap;
                            rch: typeof CSS.rch;
                            registerProperty: typeof CSS.registerProperty;
                            rem: typeof CSS.rem;
                            rex: typeof CSS.rex;
                            ric: typeof CSS.ric;
                            rlh: typeof CSS.rlh;
                            s: typeof CSS.s;
                            supports: typeof CSS.supports;
                            svb: typeof CSS.svb;
                            svh: typeof CSS.svh;
                            svi: typeof CSS.svi;
                            svmax: typeof CSS.svmax;
                            svmin: typeof CSS.svmin;
                            svw: typeof CSS.svw;
                            turn: typeof CSS.turn;
                            vb: typeof CSS.vb;
                            vh: typeof CSS.vh;
                            vi: typeof CSS.vi;
                            vmax: typeof CSS.vmax;
                            vmin: typeof CSS.vmin;
                            vw: typeof CSS.vw;
                            highlights: {
                                forEach: (callbackfn: (value: Highlight, key: string, parent: HighlightRegistry) => void, thisArg?: any) => void;
                            };
                        };
                        WebAssembly: {
                            compile: typeof WebAssembly.compile;
                            compileStreaming: typeof WebAssembly.compileStreaming;
                            instantiate: typeof WebAssembly.instantiate;
                            instantiateStreaming: typeof WebAssembly.instantiateStreaming;
                            validate: typeof WebAssembly.validate;
                            CompileError: {
                                prototype: WebAssembly.CompileError;
                                new (message?: string): WebAssembly.CompileError;
                                (message?: string): WebAssembly.CompileError;
                            };
                            Global: {
                                prototype: WebAssembly.Global;
                                new <T extends WebAssembly.ValueType = WebAssembly.ValueType>(descriptor: WebAssembly.GlobalDescriptor<T>, v?: WebAssembly.ValueTypeMap[T]): WebAssembly.Global<T>;
                            };
                            Instance: {
                                prototype: WebAssembly.Instance;
                                new (module: WebAssembly.Module, importObject?: WebAssembly.Imports): WebAssembly.Instance;
                            };
                            LinkError: {
                                prototype: WebAssembly.LinkError;
                                new (message?: string): WebAssembly.LinkError;
                                (message?: string): WebAssembly.LinkError;
                            };
                            Memory: {
                                prototype: WebAssembly.Memory;
                                new (descriptor: WebAssembly.MemoryDescriptor): WebAssembly.Memory;
                            };
                            Module: {
                                prototype: WebAssembly.Module;
                                new (bytes: BufferSource): WebAssembly.Module;
                                customSections(moduleObject: WebAssembly.Module, sectionName: string): ArrayBuffer[];
                                exports(moduleObject: WebAssembly.Module): WebAssembly.ModuleExportDescriptor[];
                                imports(moduleObject: WebAssembly.Module): WebAssembly.ModuleImportDescriptor[];
                            };
                            RuntimeError: {
                                prototype: WebAssembly.RuntimeError;
                                new (message?: string): WebAssembly.RuntimeError;
                                (message?: string): WebAssembly.RuntimeError;
                            };
                            Table: {
                                prototype: WebAssembly.Table;
                                new (descriptor: WebAssembly.TableDescriptor, value?: any): WebAssembly.Table;
                            };
                        };
                        Audio: {
                            new (src?: string): HTMLAudioElement;
                        };
                        Image: {
                            new (width?: number, height?: number): HTMLImageElement;
                        };
                        Option: {
                            new (text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;
                        };
                        clientInformation: {
                            readonly clipboard: {
                                read: () => Promise<ClipboardItems>;
                                readText: () => Promise<string>;
                                write: (data: ClipboardItems) => Promise<void>;
                                writeText: (data: string) => Promise<void>;
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            };
                            readonly credentials: {
                                create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                                get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                                preventSilentAccess: () => Promise<void>;
                                store: (credential: Credential) => Promise<void>;
                            };
                            readonly doNotTrack: string | null;
                            readonly geolocation: {
                                clearWatch: (watchId: number) => void;
                                getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                                watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                            };
                            readonly maxTouchPoints: number;
                            readonly mediaCapabilities: {
                                decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                                encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                            };
                            readonly mediaDevices: {
                                ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                                enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                                getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                                getSupportedConstraints: () => MediaTrackSupportedConstraints;
                                getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                                addEventListener: {
                                    <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly mediaSession: {
                                metadata: {
                                    album: string;
                                    artist: string;
                                    artwork: readonly {
                                        sizes: string;
                                        src: string;
                                        type: string;
                                    }[];
                                    title: string;
                                } | null;
                                playbackState: MediaSessionPlaybackState;
                                setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                                setPositionState: (state?: MediaPositionState) => void;
                            };
                            readonly permissions: {
                                query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                            };
                            readonly serviceWorker: {
                                readonly controller: {
                                    onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                                    readonly scriptURL: string;
                                    readonly state: ServiceWorkerState;
                                    postMessage: {
                                        (message: any, transfer: Transferable[]): void;
                                        (message: any, options?: StructuredSerializeOptions): void;
                                    };
                                    addEventListener: {
                                        <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                        (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;
                                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                    };
                                    dispatchEvent: (event: Event) => boolean;
                                    onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                                } | null;
                                oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                                onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                                onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                                readonly ready: {
                                    then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                                    catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                                    finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                                    readonly [Symbol.toStringTag]: string;
                                };
                                getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                                getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                                register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                                startMessages: () => void;
                                addEventListener: {
                                    <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly userActivation: {
                                readonly hasBeenActive: boolean;
                                readonly isActive: boolean;
                            };
                            readonly wakeLock: {
                                request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                            };
                            canShare: (data?: ShareData) => boolean;
                            getGamepads: () => (Gamepad | null)[];
                            requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                            requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                            sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                            share: (data?: ShareData) => Promise<void>;
                            vibrate: (pattern: VibratePattern) => boolean;
                            readonly webdriver: boolean;
                            clearAppBadge: () => Promise<void>;
                            setAppBadge: (contents?: number) => Promise<void>;
                            readonly hardwareConcurrency: number;
                            registerProtocolHandler: (scheme: string, url: string | URL) => void;
                            readonly cookieEnabled: boolean;
                            readonly appCodeName: string;
                            readonly appName: string;
                            readonly appVersion: string;
                            readonly platform: string;
                            readonly product: string;
                            readonly productSub: string;
                            readonly userAgent: string;
                            readonly vendor: string;
                            readonly vendorSub: string;
                            readonly language: string;
                            readonly languages: ReadonlyArray<string>;
                            readonly locks: {
                                query: () => Promise<LockManagerSnapshot>;
                                request: {
                                    (name: string, callback: LockGrantedCallback): Promise<any>;
                                    (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                                };
                            };
                            readonly onLine: boolean;
                            readonly mimeTypes: {
                                [x: number]: {
                                    readonly description: string;
                                    readonly enabledPlugin: {
                                        [x: number]: /*elided*/ any;
                                        readonly description: string;
                                        readonly filename: string;
                                        readonly length: number;
                                        readonly name: string;
                                        item: (index: number) => MimeType | null;
                                        namedItem: (name: string) => MimeType | null;
                                    };
                                    readonly suffixes: string;
                                    readonly type: string;
                                };
                                readonly length: number;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly pdfViewerEnabled: boolean;
                            readonly plugins: {
                                [x: number]: {
                                    [x: number]: {
                                        readonly description: string;
                                        readonly enabledPlugin: /*elided*/ any;
                                        readonly suffixes: string;
                                        readonly type: string;
                                    };
                                    readonly description: string;
                                    readonly filename: string;
                                    readonly length: number;
                                    readonly name: string;
                                    item: (index: number) => MimeType | null;
                                    namedItem: (name: string) => MimeType | null;
                                };
                                readonly length: number;
                                item: (index: number) => Plugin | null;
                                namedItem: (name: string) => Plugin | null;
                                refresh: () => void;
                            };
                            javaEnabled: () => boolean;
                            readonly storage: {
                                estimate: () => Promise<StorageEstimate>;
                                getDirectory: () => Promise<FileSystemDirectoryHandle>;
                                persist: () => Promise<boolean>;
                                persisted: () => Promise<boolean>;
                            };
                        };
                        closed: boolean;
                        customElements: {
                            define: (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions) => void;
                            get: (name: string) => CustomElementConstructor | undefined;
                            getName: (constructor: CustomElementConstructor) => string | null;
                            upgrade: (root: Node) => void;
                            whenDefined: (name: string) => Promise<CustomElementConstructor>;
                        };
                        devicePixelRatio: number;
                        document: Document;
                        event: {
                            readonly bubbles: boolean;
                            cancelBubble: boolean;
                            readonly cancelable: boolean;
                            readonly composed: boolean;
                            readonly currentTarget: {
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            } | null;
                            readonly defaultPrevented: boolean;
                            readonly eventPhase: number;
                            readonly isTrusted: boolean;
                            returnValue: boolean;
                            readonly srcElement: {
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            } | null;
                            readonly target: {
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            } | null;
                            readonly timeStamp: DOMHighResTimeStamp;
                            readonly type: string;
                            composedPath: () => EventTarget[];
                            initEvent: (type: string, bubbles?: boolean, cancelable?: boolean) => void;
                            preventDefault: () => void;
                            stopImmediatePropagation: () => void;
                            stopPropagation: () => void;
                            readonly NONE: 0;
                            readonly CAPTURING_PHASE: 1;
                            readonly AT_TARGET: 2;
                            readonly BUBBLING_PHASE: 3;
                        } | undefined;
                        external: {
                            AddSearchProvider: () => void;
                            IsSearchProviderInstalled: () => void;
                        };
                        frameElement: Element | null;
                        frames: /*elided*/ any;
                        history: {
                            readonly length: number;
                            scrollRestoration: ScrollRestoration;
                            readonly state: any;
                            back: () => void;
                            forward: () => void;
                            go: (delta?: number) => void;
                            pushState: (data: any, unused: string, url?: string | URL | null) => void;
                            replaceState: (data: any, unused: string, url?: string | URL | null) => void;
                        };
                        innerHeight: number;
                        innerWidth: number;
                        length: number;
                        location: {
                            readonly ancestorOrigins: {
                                [x: number]: string;
                                readonly length: number;
                                contains: (string: string) => boolean;
                                item: (index: number) => string | null;
                            };
                            hash: string;
                            host: string;
                            hostname: string;
                            href: string;
                            toString: () => string;
                            readonly origin: string;
                            pathname: string;
                            port: string;
                            protocol: string;
                            search: string;
                            assign: (url: string | URL) => void;
                            reload: () => void;
                            replace: (url: string | URL) => void;
                        };
                        locationbar: {
                            readonly visible: boolean;
                        };
                        menubar: {
                            readonly visible: boolean;
                        };
                        navigator: {
                            readonly clipboard: {
                                read: () => Promise<ClipboardItems>;
                                readText: () => Promise<string>;
                                write: (data: ClipboardItems) => Promise<void>;
                                writeText: (data: string) => Promise<void>;
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            };
                            readonly credentials: {
                                create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                                get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                                preventSilentAccess: () => Promise<void>;
                                store: (credential: Credential) => Promise<void>;
                            };
                            readonly doNotTrack: string | null;
                            readonly geolocation: {
                                clearWatch: (watchId: number) => void;
                                getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                                watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                            };
                            readonly maxTouchPoints: number;
                            readonly mediaCapabilities: {
                                decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                                encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                            };
                            readonly mediaDevices: {
                                ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                                enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                                getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                                getSupportedConstraints: () => MediaTrackSupportedConstraints;
                                getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                                addEventListener: {
                                    <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly mediaSession: {
                                metadata: {
                                    album: string;
                                    artist: string;
                                    artwork: readonly {
                                        sizes: string;
                                        src: string;
                                        type: string;
                                    }[];
                                    title: string;
                                } | null;
                                playbackState: MediaSessionPlaybackState;
                                setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                                setPositionState: (state?: MediaPositionState) => void;
                            };
                            readonly permissions: {
                                query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                            };
                            readonly serviceWorker: {
                                readonly controller: {
                                    onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                                    readonly scriptURL: string;
                                    readonly state: ServiceWorkerState;
                                    postMessage: {
                                        (message: any, transfer: Transferable[]): void;
                                        (message: any, options?: StructuredSerializeOptions): void;
                                    };
                                    addEventListener: {
                                        <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                        (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;
                                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                    };
                                    dispatchEvent: (event: Event) => boolean;
                                    onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                                } | null;
                                oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                                onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                                onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                                readonly ready: {
                                    then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                                    catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                                    finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                                    readonly [Symbol.toStringTag]: string;
                                };
                                getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                                getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                                register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                                startMessages: () => void;
                                addEventListener: {
                                    <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly userActivation: {
                                readonly hasBeenActive: boolean;
                                readonly isActive: boolean;
                            };
                            readonly wakeLock: {
                                request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                            };
                            canShare: (data?: ShareData) => boolean;
                            getGamepads: () => (Gamepad | null)[];
                            requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                            requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                            sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                            share: (data?: ShareData) => Promise<void>;
                            vibrate: (pattern: VibratePattern) => boolean;
                            readonly webdriver: boolean;
                            clearAppBadge: () => Promise<void>;
                            setAppBadge: (contents?: number) => Promise<void>;
                            readonly hardwareConcurrency: number;
                            registerProtocolHandler: (scheme: string, url: string | URL) => void;
                            readonly cookieEnabled: boolean;
                            readonly appCodeName: string;
                            readonly appName: string;
                            readonly appVersion: string;
                            readonly platform: string;
                            readonly product: string;
                            readonly productSub: string;
                            readonly userAgent: string;
                            readonly vendor: string;
                            readonly vendorSub: string;
                            readonly language: string;
                            readonly languages: ReadonlyArray<string>;
                            readonly locks: {
                                query: () => Promise<LockManagerSnapshot>;
                                request: {
                                    (name: string, callback: LockGrantedCallback): Promise<any>;
                                    (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                                };
                            };
                            readonly onLine: boolean;
                            readonly mimeTypes: {
                                [x: number]: {
                                    readonly description: string;
                                    readonly enabledPlugin: {
                                        [x: number]: /*elided*/ any;
                                        readonly description: string;
                                        readonly filename: string;
                                        readonly length: number;
                                        readonly name: string;
                                        item: (index: number) => MimeType | null;
                                        namedItem: (name: string) => MimeType | null;
                                    };
                                    readonly suffixes: string;
                                    readonly type: string;
                                };
                                readonly length: number;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly pdfViewerEnabled: boolean;
                            readonly plugins: {
                                [x: number]: {
                                    [x: number]: {
                                        readonly description: string;
                                        readonly enabledPlugin: /*elided*/ any;
                                        readonly suffixes: string;
                                        readonly type: string;
                                    };
                                    readonly description: string;
                                    readonly filename: string;
                                    readonly length: number;
                                    readonly name: string;
                                    item: (index: number) => MimeType | null;
                                    namedItem: (name: string) => MimeType | null;
                                };
                                readonly length: number;
                                item: (index: number) => Plugin | null;
                                namedItem: (name: string) => Plugin | null;
                                refresh: () => void;
                            };
                            javaEnabled: () => boolean;
                            readonly storage: {
                                estimate: () => Promise<StorageEstimate>;
                                getDirectory: () => Promise<FileSystemDirectoryHandle>;
                                persist: () => Promise<boolean>;
                                persisted: () => Promise<boolean>;
                            };
                        };
                        ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;
                        ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
                        ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
                        onorientationchange: ((this: Window, ev: Event) => any) | null;
                        opener: any;
                        orientation: number;
                        outerHeight: number;
                        outerWidth: number;
                        pageXOffset: number;
                        pageYOffset: number;
                        parent: /*elided*/ any;
                        personalbar: {
                            readonly visible: boolean;
                        };
                        screen: {
                            readonly availHeight: number;
                            readonly availWidth: number;
                            readonly colorDepth: number;
                            readonly height: number;
                            readonly orientation: {
                                readonly angle: number;
                                onchange: ((this: ScreenOrientation, ev: Event) => any) | null;
                                readonly type: OrientationType;
                                unlock: () => void;
                                addEventListener: {
                                    <K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly pixelDepth: number;
                            readonly width: number;
                        };
                        screenLeft: number;
                        screenTop: number;
                        screenX: number;
                        screenY: number;
                        scrollX: number;
                        scrollY: number;
                        scrollbars: {
                            readonly visible: boolean;
                        };
                        self: /*elided*/ any;
                        speechSynthesis: {
                            onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;
                            readonly paused: boolean;
                            readonly pending: boolean;
                            readonly speaking: boolean;
                            cancel: () => void;
                            getVoices: () => SpeechSynthesisVoice[];
                            pause: () => void;
                            resume: () => void;
                            speak: (utterance: SpeechSynthesisUtterance) => void;
                            addEventListener: {
                                <K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        status: string;
                        statusbar: {
                            readonly visible: boolean;
                        };
                        toolbar: {
                            readonly visible: boolean;
                        };
                        top: /*elided*/ any | null;
                        visualViewport: {
                            readonly height: number;
                            readonly offsetLeft: number;
                            readonly offsetTop: number;
                            onresize: ((this: VisualViewport, ev: Event) => any) | null;
                            onscroll: ((this: VisualViewport, ev: Event) => any) | null;
                            readonly pageLeft: number;
                            readonly pageTop: number;
                            readonly scale: number;
                            readonly width: number;
                            addEventListener: {
                                <K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        } | null;
                        window: /*elided*/ any;
                        onabort: ((this: Window, ev: UIEvent) => any) | null;
                        onanimationcancel: ((this: Window, ev: AnimationEvent) => any) | null;
                        onanimationend: ((this: Window, ev: AnimationEvent) => any) | null;
                        onanimationiteration: ((this: Window, ev: AnimationEvent) => any) | null;
                        onanimationstart: ((this: Window, ev: AnimationEvent) => any) | null;
                        onauxclick: ((this: Window, ev: MouseEvent) => any) | null;
                        onbeforeinput: ((this: Window, ev: InputEvent) => any) | null;
                        onbeforetoggle: ((this: Window, ev: Event) => any) | null;
                        onblur: ((this: Window, ev: FocusEvent) => any) | null;
                        oncancel: ((this: Window, ev: Event) => any) | null;
                        oncanplay: ((this: Window, ev: Event) => any) | null;
                        oncanplaythrough: ((this: Window, ev: Event) => any) | null;
                        onchange: ((this: Window, ev: Event) => any) | null;
                        onclick: ((this: Window, ev: MouseEvent) => any) | null;
                        onclose: ((this: Window, ev: Event) => any) | null;
                        oncontextlost: ((this: Window, ev: Event) => any) | null;
                        oncontextmenu: ((this: Window, ev: MouseEvent) => any) | null;
                        oncontextrestored: ((this: Window, ev: Event) => any) | null;
                        oncopy: ((this: Window, ev: ClipboardEvent) => any) | null;
                        oncuechange: ((this: Window, ev: Event) => any) | null;
                        oncut: ((this: Window, ev: ClipboardEvent) => any) | null;
                        ondblclick: ((this: Window, ev: MouseEvent) => any) | null;
                        ondrag: ((this: Window, ev: DragEvent) => any) | null;
                        ondragend: ((this: Window, ev: DragEvent) => any) | null;
                        ondragenter: ((this: Window, ev: DragEvent) => any) | null;
                        ondragleave: ((this: Window, ev: DragEvent) => any) | null;
                        ondragover: ((this: Window, ev: DragEvent) => any) | null;
                        ondragstart: ((this: Window, ev: DragEvent) => any) | null;
                        ondrop: ((this: Window, ev: DragEvent) => any) | null;
                        ondurationchange: ((this: Window, ev: Event) => any) | null;
                        onemptied: ((this: Window, ev: Event) => any) | null;
                        onended: ((this: Window, ev: Event) => any) | null;
                        onerror: OnErrorEventHandler;
                        onfocus: ((this: Window, ev: FocusEvent) => any) | null;
                        onformdata: ((this: Window, ev: FormDataEvent) => any) | null;
                        ongotpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
                        oninput: ((this: Window, ev: Event) => any) | null;
                        oninvalid: ((this: Window, ev: Event) => any) | null;
                        onkeydown: ((this: Window, ev: KeyboardEvent) => any) | null;
                        onkeypress: ((this: Window, ev: KeyboardEvent) => any) | null;
                        onkeyup: ((this: Window, ev: KeyboardEvent) => any) | null;
                        onload: ((this: Window, ev: Event) => any) | null;
                        onloadeddata: ((this: Window, ev: Event) => any) | null;
                        onloadedmetadata: ((this: Window, ev: Event) => any) | null;
                        onloadstart: ((this: Window, ev: Event) => any) | null;
                        onlostpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
                        onmousedown: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseenter: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseleave: ((this: Window, ev: MouseEvent) => any) | null;
                        onmousemove: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseout: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseover: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseup: ((this: Window, ev: MouseEvent) => any) | null;
                        onpaste: ((this: Window, ev: ClipboardEvent) => any) | null;
                        onpause: ((this: Window, ev: Event) => any) | null;
                        onplay: ((this: Window, ev: Event) => any) | null;
                        onplaying: ((this: Window, ev: Event) => any) | null;
                        onpointercancel: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerdown: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerenter: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerleave: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointermove: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerout: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerover: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerup: ((this: Window, ev: PointerEvent) => any) | null;
                        onprogress: ((this: Window, ev: ProgressEvent) => any) | null;
                        onratechange: ((this: Window, ev: Event) => any) | null;
                        onreset: ((this: Window, ev: Event) => any) | null;
                        onresize: ((this: Window, ev: UIEvent) => any) | null;
                        onscroll: ((this: Window, ev: Event) => any) | null;
                        onscrollend: ((this: Window, ev: Event) => any) | null;
                        onsecuritypolicyviolation: ((this: Window, ev: SecurityPolicyViolationEvent) => any) | null;
                        onseeked: ((this: Window, ev: Event) => any) | null;
                        onseeking: ((this: Window, ev: Event) => any) | null;
                        onselect: ((this: Window, ev: Event) => any) | null;
                        onselectionchange: ((this: Window, ev: Event) => any) | null;
                        onselectstart: ((this: Window, ev: Event) => any) | null;
                        onslotchange: ((this: Window, ev: Event) => any) | null;
                        onstalled: ((this: Window, ev: Event) => any) | null;
                        onsubmit: ((this: Window, ev: SubmitEvent) => any) | null;
                        onsuspend: ((this: Window, ev: Event) => any) | null;
                        ontimeupdate: ((this: Window, ev: Event) => any) | null;
                        ontoggle: ((this: Window, ev: Event) => any) | null;
                        ontouchcancel: ((this: Window, ev: TouchEvent) => any) | null | undefined;
                        ontouchend: ((this: Window, ev: TouchEvent) => any) | null | undefined;
                        ontouchmove: ((this: Window, ev: TouchEvent) => any) | null | undefined;
                        ontouchstart: ((this: Window, ev: TouchEvent) => any) | null | undefined;
                        ontransitioncancel: ((this: Window, ev: TransitionEvent) => any) | null;
                        ontransitionend: ((this: Window, ev: TransitionEvent) => any) | null;
                        ontransitionrun: ((this: Window, ev: TransitionEvent) => any) | null;
                        ontransitionstart: ((this: Window, ev: TransitionEvent) => any) | null;
                        onvolumechange: ((this: Window, ev: Event) => any) | null;
                        onwaiting: ((this: Window, ev: Event) => any) | null;
                        onwebkitanimationend: ((this: Window, ev: Event) => any) | null;
                        onwebkitanimationiteration: ((this: Window, ev: Event) => any) | null;
                        onwebkitanimationstart: ((this: Window, ev: Event) => any) | null;
                        onwebkittransitionend: ((this: Window, ev: Event) => any) | null;
                        onwheel: ((this: Window, ev: WheelEvent) => any) | null;
                        onafterprint: ((this: Window, ev: Event) => any) | null;
                        onbeforeprint: ((this: Window, ev: Event) => any) | null;
                        onbeforeunload: ((this: Window, ev: BeforeUnloadEvent) => any) | null;
                        ongamepadconnected: ((this: Window, ev: GamepadEvent) => any) | null;
                        ongamepaddisconnected: ((this: Window, ev: GamepadEvent) => any) | null;
                        onhashchange: ((this: Window, ev: HashChangeEvent) => any) | null;
                        onlanguagechange: ((this: Window, ev: Event) => any) | null;
                        onmessage: ((this: Window, ev: MessageEvent) => any) | null;
                        onmessageerror: ((this: Window, ev: MessageEvent) => any) | null;
                        onoffline: ((this: Window, ev: Event) => any) | null;
                        ononline: ((this: Window, ev: Event) => any) | null;
                        onpagehide: ((this: Window, ev: PageTransitionEvent) => any) | null;
                        onpagereveal: ((this: Window, ev: Event) => any) | null;
                        onpageshow: ((this: Window, ev: PageTransitionEvent) => any) | null;
                        onpageswap: ((this: Window, ev: Event) => any) | null;
                        onpopstate: ((this: Window, ev: PopStateEvent) => any) | null;
                        onrejectionhandled: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
                        onstorage: ((this: Window, ev: StorageEvent) => any) | null;
                        onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
                        onunload: ((this: Window, ev: Event) => any) | null;
                        localStorage: {
                            [x: string]: any;
                            readonly length: number;
                            clear: () => void;
                            getItem: (key: string) => string | null;
                            key: (index: number) => string | null;
                            removeItem: (key: string) => void;
                            setItem: (key: string, value: string) => void;
                        };
                        caches: {
                            delete: (cacheName: string) => Promise<boolean>;
                            has: (cacheName: string) => Promise<boolean>;
                            keys: () => Promise<string[]>;
                            match: (request: RequestInfo | URL, options?: MultiCacheQueryOptions) => Promise<Response | undefined>;
                            open: (cacheName: string) => Promise<Cache>;
                        };
                        crossOriginIsolated: boolean;
                        crypto: {
                            readonly subtle: {
                                decrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                                deriveBits: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length?: number | null) => Promise<ArrayBuffer>;
                                deriveKey: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                                digest: (algorithm: AlgorithmIdentifier, data: BufferSource) => Promise<ArrayBuffer>;
                                encrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                                exportKey: {
                                    (format: "jwk", key: CryptoKey): Promise<JsonWebKey>;
                                    (format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;
                                    (format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer | JsonWebKey>;
                                };
                                generateKey: {
                                    (algorithm: "Ed25519" | {
                                        name: "Ed25519";
                                    }, extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;
                                    (algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
                                    (algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                                    (algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;
                                };
                                importKey: {
                                    (format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                                    (format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
                                };
                                sign: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                                unwrapKey: (format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                                verify: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource) => Promise<boolean>;
                                wrapKey: (format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams) => Promise<ArrayBuffer>;
                            };
                            getRandomValues: <T extends ArrayBufferView | null>(array: T) => T;
                            randomUUID: () => `${string}-${string}-${string}-${string}-${string}`;
                        };
                        indexedDB: {
                            cmp: (first: any, second: any) => number;
                            databases: () => Promise<IDBDatabaseInfo[]>;
                            deleteDatabase: (name: string) => IDBOpenDBRequest;
                            open: (name: string, version?: number) => IDBOpenDBRequest;
                        };
                        isSecureContext: boolean;
                        origin: string;
                        performance: {
                            readonly eventCounts: {
                                forEach: (callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any) => void;
                            };
                            readonly navigation: {
                                readonly redirectCount: number;
                                readonly type: number;
                                toJSON: () => any;
                                readonly TYPE_NAVIGATE: 0;
                                readonly TYPE_RELOAD: 1;
                                readonly TYPE_BACK_FORWARD: 2;
                                readonly TYPE_RESERVED: 255;
                            };
                            onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;
                            readonly timeOrigin: DOMHighResTimeStamp;
                            readonly timing: {
                                readonly connectEnd: number;
                                readonly connectStart: number;
                                readonly domComplete: number;
                                readonly domContentLoadedEventEnd: number;
                                readonly domContentLoadedEventStart: number;
                                readonly domInteractive: number;
                                readonly domLoading: number;
                                readonly domainLookupEnd: number;
                                readonly domainLookupStart: number;
                                readonly fetchStart: number;
                                readonly loadEventEnd: number;
                                readonly loadEventStart: number;
                                readonly navigationStart: number;
                                readonly redirectEnd: number;
                                readonly redirectStart: number;
                                readonly requestStart: number;
                                readonly responseEnd: number;
                                readonly responseStart: number;
                                readonly secureConnectionStart: number;
                                readonly unloadEventEnd: number;
                                readonly unloadEventStart: number;
                                toJSON: () => any;
                            };
                            clearMarks: (markName?: string) => void;
                            clearMeasures: (measureName?: string) => void;
                            clearResourceTimings: () => void;
                            getEntries: () => PerformanceEntryList;
                            getEntriesByName: (name: string, type?: string) => PerformanceEntryList;
                            getEntriesByType: (type: string) => PerformanceEntryList;
                            mark: (markName: string, markOptions?: PerformanceMarkOptions) => PerformanceMark;
                            measure: (measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string) => PerformanceMeasure;
                            now: () => DOMHighResTimeStamp;
                            setResourceTimingBufferSize: (maxSize: number) => void;
                            toJSON: () => any;
                            addEventListener: {
                                <K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        sessionStorage: {
                            [x: string]: any;
                            readonly length: number;
                            clear: () => void;
                            getItem: (key: string) => string | null;
                            key: (index: number) => string | null;
                            removeItem: (key: string) => void;
                            setItem: (key: string, value: string) => void;
                        };
                        Map: MapConstructor;
                        WeakMap: WeakMapConstructor;
                        Set: SetConstructor;
                        WeakSet: WeakSetConstructor;
                        Iterator: IteratorConstructor;
                        Proxy: ProxyConstructor;
                        Reflect: {
                            apply: typeof Reflect.apply;
                            construct: typeof Reflect.construct;
                            defineProperty: typeof Reflect.defineProperty;
                            deleteProperty: typeof Reflect.deleteProperty;
                            get: typeof Reflect.get;
                            getOwnPropertyDescriptor: typeof Reflect.getOwnPropertyDescriptor;
                            getPrototypeOf: typeof Reflect.getPrototypeOf;
                            has: typeof Reflect.has;
                            isExtensible: typeof Reflect.isExtensible;
                            ownKeys: typeof Reflect.ownKeys;
                            preventExtensions: typeof Reflect.preventExtensions;
                            set: typeof Reflect.set;
                            setPrototypeOf: typeof Reflect.setPrototypeOf;
                        };
                        SharedArrayBuffer: SharedArrayBufferConstructor;
                        Atomics: {
                            add: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            and: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            compareExchange: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, expectedValue: number, replacementValue: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, expectedValue: bigint, replacementValue: bigint): bigint;
                            };
                            exchange: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            isLockFree: (size: number) => boolean;
                            load: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number): bigint;
                            };
                            or: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            store: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            sub: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            wait: {
                                (typedArray: Int32Array<ArrayBufferLike>, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out";
                                (typedArray: BigInt64Array<ArrayBufferLike>, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out";
                            };
                            notify: {
                                (typedArray: Int32Array<ArrayBufferLike>, index: number, count?: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike>, index: number, count?: number): number;
                            };
                            xor: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            waitAsync: {
                                (typedArray: Int32Array, index: number, value: number, timeout?: number): {
                                    async: false;
                                    value: "not-equal" | "timed-out";
                                } | {
                                    async: true;
                                    value: Promise<"ok" | "timed-out">;
                                };
                                (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): {
                                    async: false;
                                    value: "not-equal" | "timed-out";
                                } | {
                                    async: true;
                                    value: Promise<"ok" | "timed-out">;
                                };
                            };
                            readonly [Symbol.toStringTag]: "Atomics";
                        };
                        BigInt: BigIntConstructor;
                        BigInt64Array: BigInt64ArrayConstructor;
                        BigUint64Array: BigUint64ArrayConstructor;
                        AggregateError: AggregateErrorConstructor;
                        WeakRef: WeakRefConstructor;
                        FinalizationRegistry: FinalizationRegistryConstructor;
                        SuppressedError: SuppressedErrorConstructor;
                        DisposableStack: DisposableStackConstructor;
                        AsyncDisposableStack: AsyncDisposableStackConstructor;
                        Float16Array: Float16ArrayConstructor;
                        unsafeWindow: /*elided*/ any;
                        undefined: undefined;
                    };
                    eval: typeof eval;
                    parseInt: typeof parseInt;
                    parseFloat: typeof parseFloat;
                    isNaN: typeof isNaN;
                    isFinite: typeof isFinite;
                    decodeURI: typeof decodeURI;
                    decodeURIComponent: typeof decodeURIComponent;
                    encodeURI: typeof encodeURI;
                    encodeURIComponent: typeof encodeURIComponent;
                    escape: typeof escape;
                    unescape: typeof unescape;
                    NaN: number;
                    Infinity: number;
                    Symbol: SymbolConstructor;
                    Object: ObjectConstructor;
                    Function: FunctionConstructor;
                    String: StringConstructor;
                    Boolean: BooleanConstructor;
                    Number: NumberConstructor;
                    Math: {
                        readonly E: number;
                        readonly LN10: number;
                        readonly LN2: number;
                        readonly LOG2E: number;
                        readonly LOG10E: number;
                        readonly PI: number;
                        readonly SQRT1_2: number;
                        readonly SQRT2: number;
                        abs: (x: number) => number;
                        acos: (x: number) => number;
                        asin: (x: number) => number;
                        atan: (x: number) => number;
                        atan2: (y: number, x: number) => number;
                        ceil: (x: number) => number;
                        cos: (x: number) => number;
                        exp: (x: number) => number;
                        floor: (x: number) => number;
                        log: (x: number) => number;
                        max: (...values: number[]) => number;
                        min: (...values: number[]) => number;
                        pow: (x: number, y: number) => number;
                        random: () => number;
                        round: (x: number) => number;
                        sin: (x: number) => number;
                        sqrt: (x: number) => number;
                        tan: (x: number) => number;
                        clz32: (x: number) => number;
                        imul: (x: number, y: number) => number;
                        sign: (x: number) => number;
                        log10: (x: number) => number;
                        log2: (x: number) => number;
                        log1p: (x: number) => number;
                        expm1: (x: number) => number;
                        cosh: (x: number) => number;
                        sinh: (x: number) => number;
                        tanh: (x: number) => number;
                        acosh: (x: number) => number;
                        asinh: (x: number) => number;
                        atanh: (x: number) => number;
                        hypot: (...values: number[]) => number;
                        trunc: (x: number) => number;
                        fround: (x: number) => number;
                        cbrt: (x: number) => number;
                        f16round: (x: number) => number;
                        readonly [Symbol.toStringTag]: string;
                    };
                    Date: DateConstructor;
                    RegExp: RegExpConstructor;
                    Error: ErrorConstructor;
                    EvalError: EvalErrorConstructor;
                    RangeError: RangeErrorConstructor;
                    ReferenceError: ReferenceErrorConstructor;
                    SyntaxError: SyntaxErrorConstructor;
                    TypeError: TypeErrorConstructor;
                    URIError: URIErrorConstructor;
                    JSON: {
                        parse: (text: string, reviver?: (this: any, key: string, value: any) => any) => any;
                        stringify: {
                            (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
                            (value: any, replacer?: (number | string)[] | null, space?: string | number): string;
                        };
                        readonly [Symbol.toStringTag]: string;
                    };
                    Array: ArrayConstructor;
                    Promise: PromiseConstructor;
                    ArrayBuffer: ArrayBufferConstructor;
                    DataView: DataViewConstructor;
                    Int8Array: Int8ArrayConstructor;
                    Uint8Array: Uint8ArrayConstructor;
                    Uint8ClampedArray: Uint8ClampedArrayConstructor;
                    Int16Array: Int16ArrayConstructor;
                    Uint16Array: Uint16ArrayConstructor;
                    Int32Array: Int32ArrayConstructor;
                    Uint32Array: Uint32ArrayConstructor;
                    Float32Array: Float32ArrayConstructor;
                    Float64Array: Float64ArrayConstructor;
                    Intl: {
                        Collator: Intl.CollatorConstructor;
                        NumberFormat: Intl.NumberFormatConstructor;
                        DateTimeFormat: Intl.DateTimeFormatConstructor;
                        getCanonicalLocales: typeof Intl.getCanonicalLocales;
                        readonly PluralRules: Intl.PluralRulesConstructor;
                        readonly RelativeTimeFormat: {
                            new (locales?: Intl.LocalesArgument, options?: Intl.RelativeTimeFormatOptions): Intl.RelativeTimeFormat;
                            supportedLocalesOf(locales?: Intl.LocalesArgument, options?: Intl.RelativeTimeFormatOptions): Intl.UnicodeBCP47LocaleIdentifier[];
                        };
                        readonly Locale: {
                            new (tag: Intl.UnicodeBCP47LocaleIdentifier | Intl.Locale, options?: Intl.LocaleOptions): Intl.Locale;
                        };
                        readonly DisplayNames: {
                            prototype: Intl.DisplayNames;
                            new (locales: Intl.LocalesArgument, options: Intl.DisplayNamesOptions): Intl.DisplayNames;
                            supportedLocalesOf(locales?: Intl.LocalesArgument, options?: {
                                localeMatcher?: Intl.RelativeTimeFormatLocaleMatcher;
                            }): Intl.UnicodeBCP47LocaleIdentifier[];
                        };
                        readonly ListFormat: {
                            prototype: Intl.ListFormat;
                            new (locales?: Intl.LocalesArgument, options?: Intl.ListFormatOptions): Intl.ListFormat;
                            supportedLocalesOf(locales: Intl.LocalesArgument, options?: Pick<Intl.ListFormatOptions, "localeMatcher">): Intl.UnicodeBCP47LocaleIdentifier[];
                        };
                        supportedValuesOf: typeof Intl.supportedValuesOf;
                        readonly Segmenter: {
                            prototype: Intl.Segmenter;
                            new (locales?: Intl.LocalesArgument, options?: Intl.SegmenterOptions): Intl.Segmenter;
                            supportedLocalesOf(locales: Intl.LocalesArgument, options?: Pick<Intl.SegmenterOptions, "localeMatcher">): Intl.UnicodeBCP47LocaleIdentifier[];
                        };
                    };
                    toString: typeof toString;
                    NodeFilter: {
                        readonly FILTER_ACCEPT: 1;
                        readonly FILTER_REJECT: 2;
                        readonly FILTER_SKIP: 3;
                        readonly SHOW_ALL: 4294967295;
                        readonly SHOW_ELEMENT: 1;
                        readonly SHOW_ATTRIBUTE: 2;
                        readonly SHOW_TEXT: 4;
                        readonly SHOW_CDATA_SECTION: 8;
                        readonly SHOW_ENTITY_REFERENCE: 16;
                        readonly SHOW_ENTITY: 32;
                        readonly SHOW_PROCESSING_INSTRUCTION: 64;
                        readonly SHOW_COMMENT: 128;
                        readonly SHOW_DOCUMENT: 256;
                        readonly SHOW_DOCUMENT_TYPE: 512;
                        readonly SHOW_DOCUMENT_FRAGMENT: 1024;
                        readonly SHOW_NOTATION: 2048;
                    };
                    AbortController: {
                        prototype: AbortController;
                        new (): AbortController;
                    };
                    AbortSignal: {
                        prototype: AbortSignal;
                        new (): AbortSignal;
                        abort(reason?: any): AbortSignal;
                        any(signals: AbortSignal[]): AbortSignal;
                        timeout(milliseconds: number): AbortSignal;
                    };
                    AbstractRange: {
                        prototype: AbstractRange;
                        new (): AbstractRange;
                    };
                    AnalyserNode: {
                        prototype: AnalyserNode;
                        new (context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;
                    };
                    Animation: {
                        prototype: Animation;
                        new (effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;
                    };
                    AnimationEffect: {
                        prototype: AnimationEffect;
                        new (): AnimationEffect;
                    };
                    AnimationEvent: {
                        prototype: AnimationEvent;
                        new (type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;
                    };
                    AnimationPlaybackEvent: {
                        prototype: AnimationPlaybackEvent;
                        new (type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;
                    };
                    AnimationTimeline: {
                        prototype: AnimationTimeline;
                        new (): AnimationTimeline;
                    };
                    Attr: {
                        prototype: Attr;
                        new (): Attr;
                    };
                    AudioBuffer: {
                        prototype: AudioBuffer;
                        new (options: AudioBufferOptions): AudioBuffer;
                    };
                    AudioBufferSourceNode: {
                        prototype: AudioBufferSourceNode;
                        new (context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;
                    };
                    AudioContext: {
                        prototype: AudioContext;
                        new (contextOptions?: AudioContextOptions): AudioContext;
                    };
                    AudioData: {
                        prototype: AudioData;
                        new (init: AudioDataInit): AudioData;
                    };
                    AudioDecoder: {
                        prototype: AudioDecoder;
                        new (init: AudioDecoderInit): AudioDecoder;
                        isConfigSupported(config: AudioDecoderConfig): Promise<AudioDecoderSupport>;
                    };
                    AudioDestinationNode: {
                        prototype: AudioDestinationNode;
                        new (): AudioDestinationNode;
                    };
                    AudioEncoder: {
                        prototype: AudioEncoder;
                        new (init: AudioEncoderInit): AudioEncoder;
                        isConfigSupported(config: AudioEncoderConfig): Promise<AudioEncoderSupport>;
                    };
                    AudioListener: {
                        prototype: AudioListener;
                        new (): AudioListener;
                    };
                    AudioNode: {
                        prototype: AudioNode;
                        new (): AudioNode;
                    };
                    AudioParam: {
                        prototype: AudioParam;
                        new (): AudioParam;
                    };
                    AudioParamMap: {
                        prototype: AudioParamMap;
                        new (): AudioParamMap;
                    };
                    AudioProcessingEvent: {
                        prototype: AudioProcessingEvent;
                        new (type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;
                    };
                    AudioScheduledSourceNode: {
                        prototype: AudioScheduledSourceNode;
                        new (): AudioScheduledSourceNode;
                    };
                    AudioWorklet: {
                        prototype: AudioWorklet;
                        new (): AudioWorklet;
                    };
                    AudioWorkletNode: {
                        prototype: AudioWorkletNode;
                        new (context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;
                    };
                    AuthenticatorAssertionResponse: {
                        prototype: AuthenticatorAssertionResponse;
                        new (): AuthenticatorAssertionResponse;
                    };
                    AuthenticatorAttestationResponse: {
                        prototype: AuthenticatorAttestationResponse;
                        new (): AuthenticatorAttestationResponse;
                    };
                    AuthenticatorResponse: {
                        prototype: AuthenticatorResponse;
                        new (): AuthenticatorResponse;
                    };
                    BarProp: {
                        prototype: BarProp;
                        new (): BarProp;
                    };
                    BaseAudioContext: {
                        prototype: BaseAudioContext;
                        new (): BaseAudioContext;
                    };
                    BeforeUnloadEvent: {
                        prototype: BeforeUnloadEvent;
                        new (): BeforeUnloadEvent;
                    };
                    BiquadFilterNode: {
                        prototype: BiquadFilterNode;
                        new (context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;
                    };
                    Blob: {
                        prototype: Blob;
                        new (blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
                    };
                    BlobEvent: {
                        prototype: BlobEvent;
                        new (type: string, eventInitDict: BlobEventInit): BlobEvent;
                    };
                    BroadcastChannel: {
                        prototype: BroadcastChannel;
                        new (name: string): BroadcastChannel;
                    };
                    ByteLengthQueuingStrategy: {
                        prototype: ByteLengthQueuingStrategy;
                        new (init: QueuingStrategyInit): ByteLengthQueuingStrategy;
                    };
                    CDATASection: {
                        prototype: CDATASection;
                        new (): CDATASection;
                    };
                    CSSAnimation: {
                        prototype: CSSAnimation;
                        new (): CSSAnimation;
                    };
                    CSSConditionRule: {
                        prototype: CSSConditionRule;
                        new (): CSSConditionRule;
                    };
                    CSSContainerRule: {
                        prototype: CSSContainerRule;
                        new (): CSSContainerRule;
                    };
                    CSSCounterStyleRule: {
                        prototype: CSSCounterStyleRule;
                        new (): CSSCounterStyleRule;
                    };
                    CSSFontFaceRule: {
                        prototype: CSSFontFaceRule;
                        new (): CSSFontFaceRule;
                    };
                    CSSFontFeatureValuesRule: {
                        prototype: CSSFontFeatureValuesRule;
                        new (): CSSFontFeatureValuesRule;
                    };
                    CSSFontPaletteValuesRule: {
                        prototype: CSSFontPaletteValuesRule;
                        new (): CSSFontPaletteValuesRule;
                    };
                    CSSGroupingRule: {
                        prototype: CSSGroupingRule;
                        new (): CSSGroupingRule;
                    };
                    CSSImageValue: {
                        prototype: CSSImageValue;
                        new (): CSSImageValue;
                    };
                    CSSImportRule: {
                        prototype: CSSImportRule;
                        new (): CSSImportRule;
                    };
                    CSSKeyframeRule: {
                        prototype: CSSKeyframeRule;
                        new (): CSSKeyframeRule;
                    };
                    CSSKeyframesRule: {
                        prototype: CSSKeyframesRule;
                        new (): CSSKeyframesRule;
                    };
                    CSSKeywordValue: {
                        prototype: CSSKeywordValue;
                        new (value: string): CSSKeywordValue;
                    };
                    CSSLayerBlockRule: {
                        prototype: CSSLayerBlockRule;
                        new (): CSSLayerBlockRule;
                    };
                    CSSLayerStatementRule: {
                        prototype: CSSLayerStatementRule;
                        new (): CSSLayerStatementRule;
                    };
                    CSSMathClamp: {
                        prototype: CSSMathClamp;
                        new (lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;
                    };
                    CSSMathInvert: {
                        prototype: CSSMathInvert;
                        new (arg: CSSNumberish): CSSMathInvert;
                    };
                    CSSMathMax: {
                        prototype: CSSMathMax;
                        new (...args: CSSNumberish[]): CSSMathMax;
                    };
                    CSSMathMin: {
                        prototype: CSSMathMin;
                        new (...args: CSSNumberish[]): CSSMathMin;
                    };
                    CSSMathNegate: {
                        prototype: CSSMathNegate;
                        new (arg: CSSNumberish): CSSMathNegate;
                    };
                    CSSMathProduct: {
                        prototype: CSSMathProduct;
                        new (...args: CSSNumberish[]): CSSMathProduct;
                    };
                    CSSMathSum: {
                        prototype: CSSMathSum;
                        new (...args: CSSNumberish[]): CSSMathSum;
                    };
                    CSSMathValue: {
                        prototype: CSSMathValue;
                        new (): CSSMathValue;
                    };
                    CSSMatrixComponent: {
                        prototype: CSSMatrixComponent;
                        new (matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;
                    };
                    CSSMediaRule: {
                        prototype: CSSMediaRule;
                        new (): CSSMediaRule;
                    };
                    CSSNamespaceRule: {
                        prototype: CSSNamespaceRule;
                        new (): CSSNamespaceRule;
                    };
                    CSSNestedDeclarations: {
                        prototype: CSSNestedDeclarations;
                        new (): CSSNestedDeclarations;
                    };
                    CSSNumericArray: {
                        prototype: CSSNumericArray;
                        new (): CSSNumericArray;
                    };
                    CSSNumericValue: {
                        prototype: CSSNumericValue;
                        new (): CSSNumericValue;
                        parse(cssText: string): CSSNumericValue;
                    };
                    CSSPageRule: {
                        prototype: CSSPageRule;
                        new (): CSSPageRule;
                    };
                    CSSPerspective: {
                        prototype: CSSPerspective;
                        new (length: CSSPerspectiveValue): CSSPerspective;
                    };
                    CSSPropertyRule: {
                        prototype: CSSPropertyRule;
                        new (): CSSPropertyRule;
                    };
                    CSSRotate: {
                        prototype: CSSRotate;
                        new (angle: CSSNumericValue): CSSRotate;
                        new (x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;
                    };
                    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 SUPPORTS_RULE: 12;
                        readonly COUNTER_STYLE_RULE: 11;
                        readonly FONT_FEATURE_VALUES_RULE: 14;
                    };
                    CSSRuleList: {
                        prototype: CSSRuleList;
                        new (): CSSRuleList;
                    };
                    CSSScale: {
                        prototype: CSSScale;
                        new (x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;
                    };
                    CSSScopeRule: {
                        prototype: CSSScopeRule;
                        new (): CSSScopeRule;
                    };
                    CSSSkew: {
                        prototype: CSSSkew;
                        new (ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;
                    };
                    CSSSkewX: {
                        prototype: CSSSkewX;
                        new (ax: CSSNumericValue): CSSSkewX;
                    };
                    CSSSkewY: {
                        prototype: CSSSkewY;
                        new (ay: CSSNumericValue): CSSSkewY;
                    };
                    CSSStartingStyleRule: {
                        prototype: CSSStartingStyleRule;
                        new (): CSSStartingStyleRule;
                    };
                    CSSStyleDeclaration: {
                        prototype: CSSStyleDeclaration;
                        new (): CSSStyleDeclaration;
                    };
                    CSSStyleRule: {
                        prototype: CSSStyleRule;
                        new (): CSSStyleRule;
                    };
                    CSSStyleSheet: {
                        prototype: CSSStyleSheet;
                        new (options?: CSSStyleSheetInit): CSSStyleSheet;
                    };
                    CSSStyleValue: {
                        prototype: CSSStyleValue;
                        new (): CSSStyleValue;
                        parse(property: string, cssText: string): CSSStyleValue;
                        parseAll(property: string, cssText: string): CSSStyleValue[];
                    };
                    CSSSupportsRule: {
                        prototype: CSSSupportsRule;
                        new (): CSSSupportsRule;
                    };
                    CSSTransformComponent: {
                        prototype: CSSTransformComponent;
                        new (): CSSTransformComponent;
                    };
                    CSSTransformValue: {
                        prototype: CSSTransformValue;
                        new (transforms: CSSTransformComponent[]): CSSTransformValue;
                    };
                    CSSTransition: {
                        prototype: CSSTransition;
                        new (): CSSTransition;
                    };
                    CSSTranslate: {
                        prototype: CSSTranslate;
                        new (x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;
                    };
                    CSSUnitValue: {
                        prototype: CSSUnitValue;
                        new (value: number, unit: string): CSSUnitValue;
                    };
                    CSSUnparsedValue: {
                        prototype: CSSUnparsedValue;
                        new (members: CSSUnparsedSegment[]): CSSUnparsedValue;
                    };
                    CSSVariableReferenceValue: {
                        prototype: CSSVariableReferenceValue;
                        new (variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;
                    };
                    CSSViewTransitionRule: {
                        prototype: CSSViewTransitionRule;
                        new (): CSSViewTransitionRule;
                    };
                    Cache: {
                        prototype: Cache;
                        new (): Cache;
                    };
                    CacheStorage: {
                        prototype: CacheStorage;
                        new (): CacheStorage;
                    };
                    CanvasCaptureMediaStreamTrack: {
                        prototype: CanvasCaptureMediaStreamTrack;
                        new (): CanvasCaptureMediaStreamTrack;
                    };
                    CanvasGradient: {
                        prototype: CanvasGradient;
                        new (): CanvasGradient;
                    };
                    CanvasPattern: {
                        prototype: CanvasPattern;
                        new (): CanvasPattern;
                    };
                    CanvasRenderingContext2D: {
                        prototype: CanvasRenderingContext2D;
                        new (): CanvasRenderingContext2D;
                    };
                    CaretPosition: {
                        prototype: CaretPosition;
                        new (): CaretPosition;
                    };
                    ChannelMergerNode: {
                        prototype: ChannelMergerNode;
                        new (context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;
                    };
                    ChannelSplitterNode: {
                        prototype: ChannelSplitterNode;
                        new (context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;
                    };
                    CharacterData: {
                        prototype: CharacterData;
                        new (): CharacterData;
                    };
                    Clipboard: {
                        prototype: Clipboard;
                        new (): Clipboard;
                    };
                    ClipboardEvent: {
                        prototype: ClipboardEvent;
                        new (type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;
                    };
                    ClipboardItem: {
                        prototype: ClipboardItem;
                        new (items: Record<string, string | Blob | PromiseLike<string | Blob>>, options?: ClipboardItemOptions): ClipboardItem;
                        supports(type: string): boolean;
                    };
                    CloseEvent: {
                        prototype: CloseEvent;
                        new (type: string, eventInitDict?: CloseEventInit): CloseEvent;
                    };
                    Comment: {
                        prototype: Comment;
                        new (data?: string): Comment;
                    };
                    CompositionEvent: {
                        prototype: CompositionEvent;
                        new (type: string, eventInitDict?: CompositionEventInit): CompositionEvent;
                    };
                    CompressionStream: {
                        prototype: CompressionStream;
                        new (format: CompressionFormat): CompressionStream;
                    };
                    ConstantSourceNode: {
                        prototype: ConstantSourceNode;
                        new (context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;
                    };
                    ContentVisibilityAutoStateChangeEvent: {
                        prototype: ContentVisibilityAutoStateChangeEvent;
                        new (type: string, eventInitDict?: ContentVisibilityAutoStateChangeEventInit): ContentVisibilityAutoStateChangeEvent;
                    };
                    ConvolverNode: {
                        prototype: ConvolverNode;
                        new (context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;
                    };
                    CountQueuingStrategy: {
                        prototype: CountQueuingStrategy;
                        new (init: QueuingStrategyInit): CountQueuingStrategy;
                    };
                    Credential: {
                        prototype: Credential;
                        new (): Credential;
                    };
                    CredentialsContainer: {
                        prototype: CredentialsContainer;
                        new (): CredentialsContainer;
                    };
                    Crypto: {
                        prototype: Crypto;
                        new (): Crypto;
                    };
                    CryptoKey: {
                        prototype: CryptoKey;
                        new (): CryptoKey;
                    };
                    CustomElementRegistry: {
                        prototype: CustomElementRegistry;
                        new (): CustomElementRegistry;
                    };
                    CustomEvent: {
                        prototype: CustomEvent;
                        new <T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;
                    };
                    CustomStateSet: {
                        prototype: CustomStateSet;
                        new (): CustomStateSet;
                    };
                    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;
                    };
                    DOMImplementation: {
                        prototype: DOMImplementation;
                        new (): DOMImplementation;
                    };
                    DOMMatrix: {
                        prototype: DOMMatrix;
                        new (init?: string | number[]): DOMMatrix;
                        fromFloat32Array(array32: Float32Array): DOMMatrix;
                        fromFloat64Array(array64: Float64Array): DOMMatrix;
                        fromMatrix(other?: DOMMatrixInit): DOMMatrix;
                    };
                    SVGMatrix: typeof DOMMatrix;
                    WebKitCSSMatrix: typeof DOMMatrix;
                    DOMMatrixReadOnly: {
                        prototype: DOMMatrixReadOnly;
                        new (init?: string | number[]): DOMMatrixReadOnly;
                        fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;
                        fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;
                        fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;
                    };
                    DOMParser: {
                        prototype: DOMParser;
                        new (): DOMParser;
                    };
                    DOMPoint: {
                        prototype: DOMPoint;
                        new (x?: number, y?: number, z?: number, w?: number): DOMPoint;
                        fromPoint(other?: DOMPointInit): DOMPoint;
                    };
                    SVGPoint: typeof DOMPoint;
                    DOMPointReadOnly: {
                        prototype: DOMPointReadOnly;
                        new (x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;
                        fromPoint(other?: DOMPointInit): DOMPointReadOnly;
                    };
                    DOMQuad: {
                        prototype: DOMQuad;
                        new (p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;
                        fromQuad(other?: DOMQuadInit): DOMQuad;
                        fromRect(other?: DOMRectInit): DOMQuad;
                    };
                    DOMRect: {
                        prototype: DOMRect;
                        new (x?: number, y?: number, width?: number, height?: number): DOMRect;
                        fromRect(other?: DOMRectInit): DOMRect;
                    };
                    SVGRect: typeof DOMRect;
                    DOMRectList: {
                        prototype: DOMRectList;
                        new (): DOMRectList;
                    };
                    DOMRectReadOnly: {
                        prototype: DOMRectReadOnly;
                        new (x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;
                        fromRect(other?: DOMRectInit): DOMRectReadOnly;
                    };
                    DOMStringList: {
                        prototype: DOMStringList;
                        new (): DOMStringList;
                    };
                    DOMStringMap: {
                        prototype: DOMStringMap;
                        new (): DOMStringMap;
                    };
                    DOMTokenList: {
                        prototype: DOMTokenList;
                        new (): DOMTokenList;
                    };
                    DataTransfer: {
                        prototype: DataTransfer;
                        new (): DataTransfer;
                    };
                    DataTransferItem: {
                        prototype: DataTransferItem;
                        new (): DataTransferItem;
                    };
                    DataTransferItemList: {
                        prototype: DataTransferItemList;
                        new (): DataTransferItemList;
                    };
                    DecompressionStream: {
                        prototype: DecompressionStream;
                        new (format: CompressionFormat): DecompressionStream;
                    };
                    DelayNode: {
                        prototype: DelayNode;
                        new (context: BaseAudioContext, options?: DelayOptions): DelayNode;
                    };
                    DeviceMotionEvent: {
                        prototype: DeviceMotionEvent;
                        new (type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;
                    };
                    DeviceOrientationEvent: {
                        prototype: DeviceOrientationEvent;
                        new (type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;
                    };
                    Document: {
                        prototype: Document;
                        new (): Document;
                        parseHTMLUnsafe(html: string): Document;
                    };
                    DocumentFragment: {
                        prototype: DocumentFragment;
                        new (): DocumentFragment;
                    };
                    DocumentTimeline: {
                        prototype: DocumentTimeline;
                        new (options?: DocumentTimelineOptions): DocumentTimeline;
                    };
                    DocumentType: {
                        prototype: DocumentType;
                        new (): DocumentType;
                    };
                    DragEvent: {
                        prototype: DragEvent;
                        new (type: string, eventInitDict?: DragEventInit): DragEvent;
                    };
                    DynamicsCompressorNode: {
                        prototype: DynamicsCompressorNode;
                        new (context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;
                    };
                    Element: {
                        prototype: Element;
                        new (): Element;
                    };
                    ElementInternals: {
                        prototype: ElementInternals;
                        new (): ElementInternals;
                    };
                    EncodedAudioChunk: {
                        prototype: EncodedAudioChunk;
                        new (init: EncodedAudioChunkInit): EncodedAudioChunk;
                    };
                    EncodedVideoChunk: {
                        prototype: EncodedVideoChunk;
                        new (init: EncodedVideoChunkInit): EncodedVideoChunk;
                    };
                    ErrorEvent: {
                        prototype: ErrorEvent;
                        new (type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
                    };
                    Event: {
                        prototype: Event;
                        new (type: string, eventInitDict?: EventInit): Event;
                        readonly NONE: 0;
                        readonly CAPTURING_PHASE: 1;
                        readonly AT_TARGET: 2;
                        readonly BUBBLING_PHASE: 3;
                    };
                    EventCounts: {
                        prototype: EventCounts;
                        new (): EventCounts;
                    };
                    EventSource: {
                        prototype: EventSource;
                        new (url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;
                        readonly CONNECTING: 0;
                        readonly OPEN: 1;
                        readonly CLOSED: 2;
                    };
                    EventTarget: {
                        prototype: EventTarget;
                        new (): EventTarget;
                    };
                    External: {
                        prototype: External;
                        new (): External;
                    };
                    File: {
                        prototype: File;
                        new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
                    };
                    FileList: {
                        prototype: FileList;
                        new (): FileList;
                    };
                    FileReader: {
                        prototype: FileReader;
                        new (): FileReader;
                        readonly EMPTY: 0;
                        readonly LOADING: 1;
                        readonly DONE: 2;
                    };
                    FileSystem: {
                        prototype: FileSystem;
                        new (): FileSystem;
                    };
                    FileSystemDirectoryEntry: {
                        prototype: FileSystemDirectoryEntry;
                        new (): FileSystemDirectoryEntry;
                    };
                    FileSystemDirectoryHandle: {
                        prototype: FileSystemDirectoryHandle;
                        new (): FileSystemDirectoryHandle;
                    };
                    FileSystemDirectoryReader: {
                        prototype: FileSystemDirectoryReader;
                        new (): FileSystemDirectoryReader;
                    };
                    FileSystemEntry: {
                        prototype: FileSystemEntry;
                        new (): FileSystemEntry;
                    };
                    FileSystemFileEntry: {
                        prototype: FileSystemFileEntry;
                        new (): FileSystemFileEntry;
                    };
                    FileSystemFileHandle: {
                        prototype: FileSystemFileHandle;
                        new (): FileSystemFileHandle;
                    };
                    FileSystemHandle: {
                        prototype: FileSystemHandle;
                        new (): FileSystemHandle;
                    };
                    FileSystemWritableFileStream: {
                        prototype: FileSystemWritableFileStream;
                        new (): FileSystemWritableFileStream;
                    };
                    FocusEvent: {
                        prototype: FocusEvent;
                        new (type: string, eventInitDict?: FocusEventInit): FocusEvent;
                    };
                    FontFace: {
                        prototype: FontFace;
                        new (family: string, source: string | BufferSource, descriptors?: FontFaceDescriptors): FontFace;
                    };
                    FontFaceSet: {
                        prototype: FontFaceSet;
                        new (): FontFaceSet;
                    };
                    FontFaceSetLoadEvent: {
                        prototype: FontFaceSetLoadEvent;
                        new (type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;
                    };
                    FormData: {
                        prototype: FormData;
                        new (form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;
                    };
                    FormDataEvent: {
                        prototype: FormDataEvent;
                        new (type: string, eventInitDict: FormDataEventInit): FormDataEvent;
                    };
                    FragmentDirective: {
                        prototype: FragmentDirective;
                        new (): FragmentDirective;
                    };
                    GainNode: {
                        prototype: GainNode;
                        new (context: BaseAudioContext, options?: GainOptions): GainNode;
                    };
                    Gamepad: {
                        prototype: Gamepad;
                        new (): Gamepad;
                    };
                    GamepadButton: {
                        prototype: GamepadButton;
                        new (): GamepadButton;
                    };
                    GamepadEvent: {
                        prototype: GamepadEvent;
                        new (type: string, eventInitDict: GamepadEventInit): GamepadEvent;
                    };
                    GamepadHapticActuator: {
                        prototype: GamepadHapticActuator;
                        new (): GamepadHapticActuator;
                    };
                    Geolocation: {
                        prototype: Geolocation;
                        new (): Geolocation;
                    };
                    GeolocationCoordinates: {
                        prototype: GeolocationCoordinates;
                        new (): GeolocationCoordinates;
                    };
                    GeolocationPosition: {
                        prototype: GeolocationPosition;
                        new (): GeolocationPosition;
                    };
                    GeolocationPositionError: {
                        prototype: GeolocationPositionError;
                        new (): GeolocationPositionError;
                        readonly PERMISSION_DENIED: 1;
                        readonly POSITION_UNAVAILABLE: 2;
                        readonly TIMEOUT: 3;
                    };
                    HTMLAllCollection: {
                        prototype: HTMLAllCollection;
                        new (): HTMLAllCollection;
                    };
                    HTMLAnchorElement: {
                        prototype: HTMLAnchorElement;
                        new (): HTMLAnchorElement;
                    };
                    HTMLAreaElement: {
                        prototype: HTMLAreaElement;
                        new (): HTMLAreaElement;
                    };
                    HTMLAudioElement: {
                        prototype: HTMLAudioElement;
                        new (): HTMLAudioElement;
                    };
                    HTMLBRElement: {
                        prototype: HTMLBRElement;
                        new (): HTMLBRElement;
                    };
                    HTMLBaseElement: {
                        prototype: HTMLBaseElement;
                        new (): HTMLBaseElement;
                    };
                    HTMLBodyElement: {
                        prototype: HTMLBodyElement;
                        new (): HTMLBodyElement;
                    };
                    HTMLButtonElement: {
                        prototype: HTMLButtonElement;
                        new (): HTMLButtonElement;
                    };
                    HTMLCanvasElement: {
                        prototype: HTMLCanvasElement;
                        new (): HTMLCanvasElement;
                    };
                    HTMLCollection: {
                        prototype: HTMLCollection;
                        new (): HTMLCollection;
                    };
                    HTMLDListElement: {
                        prototype: HTMLDListElement;
                        new (): HTMLDListElement;
                    };
                    HTMLDataElement: {
                        prototype: HTMLDataElement;
                        new (): HTMLDataElement;
                    };
                    HTMLDataListElement: {
                        prototype: HTMLDataListElement;
                        new (): HTMLDataListElement;
                    };
                    HTMLDetailsElement: {
                        prototype: HTMLDetailsElement;
                        new (): HTMLDetailsElement;
                    };
                    HTMLDialogElement: {
                        prototype: HTMLDialogElement;
                        new (): HTMLDialogElement;
                    };
                    HTMLDirectoryElement: {
                        prototype: HTMLDirectoryElement;
                        new (): HTMLDirectoryElement;
                    };
                    HTMLDivElement: {
                        prototype: HTMLDivElement;
                        new (): HTMLDivElement;
                    };
                    HTMLDocument: {
                        prototype: HTMLDocument;
                        new (): HTMLDocument;
                    };
                    HTMLElement: {
                        prototype: HTMLElement;
                        new (): HTMLElement;
                    };
                    HTMLEmbedElement: {
                        prototype: HTMLEmbedElement;
                        new (): HTMLEmbedElement;
                    };
                    HTMLFieldSetElement: {
                        prototype: HTMLFieldSetElement;
                        new (): HTMLFieldSetElement;
                    };
                    HTMLFontElement: {
                        prototype: HTMLFontElement;
                        new (): HTMLFontElement;
                    };
                    HTMLFormControlsCollection: {
                        prototype: HTMLFormControlsCollection;
                        new (): HTMLFormControlsCollection;
                    };
                    HTMLFormElement: {
                        prototype: HTMLFormElement;
                        new (): HTMLFormElement;
                    };
                    HTMLFrameElement: {
                        prototype: HTMLFrameElement;
                        new (): HTMLFrameElement;
                    };
                    HTMLFrameSetElement: {
                        prototype: HTMLFrameSetElement;
                        new (): HTMLFrameSetElement;
                    };
                    HTMLHRElement: {
                        prototype: HTMLHRElement;
                        new (): HTMLHRElement;
                    };
                    HTMLHeadElement: {
                        prototype: HTMLHeadElement;
                        new (): HTMLHeadElement;
                    };
                    HTMLHeadingElement: {
                        prototype: HTMLHeadingElement;
                        new (): HTMLHeadingElement;
                    };
                    HTMLHtmlElement: {
                        prototype: HTMLHtmlElement;
                        new (): HTMLHtmlElement;
                    };
                    HTMLIFrameElement: {
                        prototype: HTMLIFrameElement;
                        new (): HTMLIFrameElement;
                    };
                    HTMLImageElement: {
                        prototype: HTMLImageElement;
                        new (): HTMLImageElement;
                    };
                    HTMLInputElement: {
                        prototype: HTMLInputElement;
                        new (): HTMLInputElement;
                    };
                    HTMLLIElement: {
                        prototype: HTMLLIElement;
                        new (): HTMLLIElement;
                    };
                    HTMLLabelElement: {
                        prototype: HTMLLabelElement;
                        new (): HTMLLabelElement;
                    };
                    HTMLLegendElement: {
                        prototype: HTMLLegendElement;
                        new (): HTMLLegendElement;
                    };
                    HTMLLinkElement: {
                        prototype: HTMLLinkElement;
                        new (): HTMLLinkElement;
                    };
                    HTMLMapElement: {
                        prototype: HTMLMapElement;
                        new (): HTMLMapElement;
                    };
                    HTMLMarqueeElement: {
                        prototype: HTMLMarqueeElement;
                        new (): HTMLMarqueeElement;
                    };
                    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;
                    };
                    HTMLMenuElement: {
                        prototype: HTMLMenuElement;
                        new (): HTMLMenuElement;
                    };
                    HTMLMetaElement: {
                        prototype: HTMLMetaElement;
                        new (): HTMLMetaElement;
                    };
                    HTMLMeterElement: {
                        prototype: HTMLMeterElement;
                        new (): HTMLMeterElement;
                    };
                    HTMLModElement: {
                        prototype: HTMLModElement;
                        new (): HTMLModElement;
                    };
                    HTMLOListElement: {
                        prototype: HTMLOListElement;
                        new (): HTMLOListElement;
                    };
                    HTMLObjectElement: {
                        prototype: HTMLObjectElement;
                        new (): HTMLObjectElement;
                    };
                    HTMLOptGroupElement: {
                        prototype: HTMLOptGroupElement;
                        new (): HTMLOptGroupElement;
                    };
                    HTMLOptionElement: {
                        prototype: HTMLOptionElement;
                        new (): HTMLOptionElement;
                    };
                    HTMLOptionsCollection: {
                        prototype: HTMLOptionsCollection;
                        new (): HTMLOptionsCollection;
                    };
                    HTMLOutputElement: {
                        prototype: HTMLOutputElement;
                        new (): HTMLOutputElement;
                    };
                    HTMLParagraphElement: {
                        prototype: HTMLParagraphElement;
                        new (): HTMLParagraphElement;
                    };
                    HTMLParamElement: {
                        prototype: HTMLParamElement;
                        new (): HTMLParamElement;
                    };
                    HTMLPictureElement: {
                        prototype: HTMLPictureElement;
                        new (): HTMLPictureElement;
                    };
                    HTMLPreElement: {
                        prototype: HTMLPreElement;
                        new (): HTMLPreElement;
                    };
                    HTMLProgressElement: {
                        prototype: HTMLProgressElement;
                        new (): HTMLProgressElement;
                    };
                    HTMLQuoteElement: {
                        prototype: HTMLQuoteElement;
                        new (): HTMLQuoteElement;
                    };
                    HTMLScriptElement: {
                        prototype: HTMLScriptElement;
                        new (): HTMLScriptElement;
                        supports(type: string): boolean;
                    };
                    HTMLSelectElement: {
                        prototype: HTMLSelectElement;
                        new (): HTMLSelectElement;
                    };
                    HTMLSlotElement: {
                        prototype: HTMLSlotElement;
                        new (): HTMLSlotElement;
                    };
                    HTMLSourceElement: {
                        prototype: HTMLSourceElement;
                        new (): HTMLSourceElement;
                    };
                    HTMLSpanElement: {
                        prototype: HTMLSpanElement;
                        new (): HTMLSpanElement;
                    };
                    HTMLStyleElement: {
                        prototype: HTMLStyleElement;
                        new (): HTMLStyleElement;
                    };
                    HTMLTableCaptionElement: {
                        prototype: HTMLTableCaptionElement;
                        new (): HTMLTableCaptionElement;
                    };
                    HTMLTableCellElement: {
                        prototype: HTMLTableCellElement;
                        new (): HTMLTableCellElement;
                    };
                    HTMLTableColElement: {
                        prototype: HTMLTableColElement;
                        new (): HTMLTableColElement;
                    };
                    HTMLTableElement: {
                        prototype: HTMLTableElement;
                        new (): HTMLTableElement;
                    };
                    HTMLTableRowElement: {
                        prototype: HTMLTableRowElement;
                        new (): HTMLTableRowElement;
                    };
                    HTMLTableSectionElement: {
                        prototype: HTMLTableSectionElement;
                        new (): HTMLTableSectionElement;
                    };
                    HTMLTemplateElement: {
                        prototype: HTMLTemplateElement;
                        new (): HTMLTemplateElement;
                    };
                    HTMLTextAreaElement: {
                        prototype: HTMLTextAreaElement;
                        new (): HTMLTextAreaElement;
                    };
                    HTMLTimeElement: {
                        prototype: HTMLTimeElement;
                        new (): HTMLTimeElement;
                    };
                    HTMLTitleElement: {
                        prototype: HTMLTitleElement;
                        new (): HTMLTitleElement;
                    };
                    HTMLTrackElement: {
                        prototype: HTMLTrackElement;
                        new (): HTMLTrackElement;
                        readonly NONE: 0;
                        readonly LOADING: 1;
                        readonly LOADED: 2;
                        readonly ERROR: 3;
                    };
                    HTMLUListElement: {
                        prototype: HTMLUListElement;
                        new (): HTMLUListElement;
                    };
                    HTMLUnknownElement: {
                        prototype: HTMLUnknownElement;
                        new (): HTMLUnknownElement;
                    };
                    HTMLVideoElement: {
                        prototype: HTMLVideoElement;
                        new (): HTMLVideoElement;
                    };
                    HashChangeEvent: {
                        prototype: HashChangeEvent;
                        new (type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;
                    };
                    Headers: {
                        prototype: Headers;
                        new (init?: HeadersInit): Headers;
                    };
                    Highlight: {
                        prototype: Highlight;
                        new (...initialRanges: AbstractRange[]): Highlight;
                    };
                    HighlightRegistry: {
                        prototype: HighlightRegistry;
                        new (): HighlightRegistry;
                    };
                    History: {
                        prototype: History;
                        new (): History;
                    };
                    IDBCursor: {
                        prototype: IDBCursor;
                        new (): IDBCursor;
                    };
                    IDBCursorWithValue: {
                        prototype: IDBCursorWithValue;
                        new (): IDBCursorWithValue;
                    };
                    IDBDatabase: {
                        prototype: IDBDatabase;
                        new (): IDBDatabase;
                    };
                    IDBFactory: {
                        prototype: IDBFactory;
                        new (): IDBFactory;
                    };
                    IDBIndex: {
                        prototype: IDBIndex;
                        new (): IDBIndex;
                    };
                    IDBKeyRange: {
                        prototype: IDBKeyRange;
                        new (): IDBKeyRange;
                        bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;
                        lowerBound(lower: any, open?: boolean): IDBKeyRange;
                        only(value: any): IDBKeyRange;
                        upperBound(upper: any, open?: boolean): IDBKeyRange;
                    };
                    IDBObjectStore: {
                        prototype: IDBObjectStore;
                        new (): IDBObjectStore;
                    };
                    IDBOpenDBRequest: {
                        prototype: IDBOpenDBRequest;
                        new (): IDBOpenDBRequest;
                    };
                    IDBRequest: {
                        prototype: IDBRequest;
                        new (): IDBRequest;
                    };
                    IDBTransaction: {
                        prototype: IDBTransaction;
                        new (): IDBTransaction;
                    };
                    IDBVersionChangeEvent: {
                        prototype: IDBVersionChangeEvent;
                        new (type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;
                    };
                    IIRFilterNode: {
                        prototype: IIRFilterNode;
                        new (context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;
                    };
                    IdleDeadline: {
                        prototype: IdleDeadline;
                        new (): IdleDeadline;
                    };
                    ImageBitmap: {
                        prototype: ImageBitmap;
                        new (): ImageBitmap;
                    };
                    ImageBitmapRenderingContext: {
                        prototype: ImageBitmapRenderingContext;
                        new (): ImageBitmapRenderingContext;
                    };
                    ImageData: {
                        prototype: ImageData;
                        new (sw: number, sh: number, settings?: ImageDataSettings): ImageData;
                        new (data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;
                    };
                    ImageDecoder: {
                        prototype: ImageDecoder;
                        new (init: ImageDecoderInit): ImageDecoder;
                        isTypeSupported(type: string): Promise<boolean>;
                    };
                    ImageTrack: {
                        prototype: ImageTrack;
                        new (): ImageTrack;
                    };
                    ImageTrackList: {
                        prototype: ImageTrackList;
                        new (): ImageTrackList;
                    };
                    InputDeviceInfo: {
                        prototype: InputDeviceInfo;
                        new (): InputDeviceInfo;
                    };
                    InputEvent: {
                        prototype: InputEvent;
                        new (type: string, eventInitDict?: InputEventInit): InputEvent;
                    };
                    IntersectionObserver: {
                        prototype: IntersectionObserver;
                        new (callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;
                    };
                    IntersectionObserverEntry: {
                        prototype: IntersectionObserverEntry;
                        new (): IntersectionObserverEntry;
                    };
                    KeyboardEvent: {
                        prototype: KeyboardEvent;
                        new (type: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;
                        readonly DOM_KEY_LOCATION_STANDARD: 0;
                        readonly DOM_KEY_LOCATION_LEFT: 1;
                        readonly DOM_KEY_LOCATION_RIGHT: 2;
                        readonly DOM_KEY_LOCATION_NUMPAD: 3;
                    };
                    KeyframeEffect: {
                        prototype: KeyframeEffect;
                        new (target: Element | null, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeEffectOptions): KeyframeEffect;
                        new (source: KeyframeEffect): KeyframeEffect;
                    };
                    LargestContentfulPaint: {
                        prototype: LargestContentfulPaint;
                        new (): LargestContentfulPaint;
                    };
                    Location: {
                        prototype: Location;
                        new (): Location;
                    };
                    Lock: {
                        prototype: Lock;
                        new (): Lock;
                    };
                    LockManager: {
                        prototype: LockManager;
                        new (): LockManager;
                    };
                    MIDIAccess: {
                        prototype: MIDIAccess;
                        new (): MIDIAccess;
                    };
                    MIDIConnectionEvent: {
                        prototype: MIDIConnectionEvent;
                        new (type: string, eventInitDict?: MIDIConnectionEventInit): MIDIConnectionEvent;
                    };
                    MIDIInput: {
                        prototype: MIDIInput;
                        new (): MIDIInput;
                    };
                    MIDIInputMap: {
                        prototype: MIDIInputMap;
                        new (): MIDIInputMap;
                    };
                    MIDIMessageEvent: {
                        prototype: MIDIMessageEvent;
                        new (type: string, eventInitDict?: MIDIMessageEventInit): MIDIMessageEvent;
                    };
                    MIDIOutput: {
                        prototype: MIDIOutput;
                        new (): MIDIOutput;
                    };
                    MIDIOutputMap: {
                        prototype: MIDIOutputMap;
                        new (): MIDIOutputMap;
                    };
                    MIDIPort: {
                        prototype: MIDIPort;
                        new (): MIDIPort;
                    };
                    MathMLElement: {
                        prototype: MathMLElement;
                        new (): MathMLElement;
                    };
                    MediaCapabilities: {
                        prototype: MediaCapabilities;
                        new (): MediaCapabilities;
                    };
                    MediaDeviceInfo: {
                        prototype: MediaDeviceInfo;
                        new (): MediaDeviceInfo;
                    };
                    MediaDevices: {
                        prototype: MediaDevices;
                        new (): MediaDevices;
                    };
                    MediaElementAudioSourceNode: {
                        prototype: MediaElementAudioSourceNode;
                        new (context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;
                    };
                    MediaEncryptedEvent: {
                        prototype: MediaEncryptedEvent;
                        new (type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;
                    };
                    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;
                    };
                    MediaKeyMessageEvent: {
                        prototype: MediaKeyMessageEvent;
                        new (type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;
                    };
                    MediaKeySession: {
                        prototype: MediaKeySession;
                        new (): MediaKeySession;
                    };
                    MediaKeyStatusMap: {
                        prototype: MediaKeyStatusMap;
                        new (): MediaKeyStatusMap;
                    };
                    MediaKeySystemAccess: {
                        prototype: MediaKeySystemAccess;
                        new (): MediaKeySystemAccess;
                    };
                    MediaKeys: {
                        prototype: MediaKeys;
                        new (): MediaKeys;
                    };
                    MediaList: {
                        prototype: MediaList;
                        new (): MediaList;
                    };
                    MediaMetadata: {
                        prototype: MediaMetadata;
                        new (init?: MediaMetadataInit): MediaMetadata;
                    };
                    MediaQueryList: {
                        prototype: MediaQueryList;
                        new (): MediaQueryList;
                    };
                    MediaQueryListEvent: {
                        prototype: MediaQueryListEvent;
                        new (type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;
                    };
                    MediaRecorder: {
                        prototype: MediaRecorder;
                        new (stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;
                        isTypeSupported(type: string): boolean;
                    };
                    MediaSession: {
                        prototype: MediaSession;
                        new (): MediaSession;
                    };
                    MediaSource: {
                        prototype: MediaSource;
                        new (): MediaSource;
                        readonly canConstructInDedicatedWorker: boolean;
                        isTypeSupported(type: string): boolean;
                    };
                    MediaSourceHandle: {
                        prototype: MediaSourceHandle;
                        new (): MediaSourceHandle;
                    };
                    MediaStream: {
                        prototype: MediaStream;
                        new (): MediaStream;
                        new (stream: MediaStream): MediaStream;
                        new (tracks: MediaStreamTrack[]): MediaStream;
                    };
                    MediaStreamAudioDestinationNode: {
                        prototype: MediaStreamAudioDestinationNode;
                        new (context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;
                    };
                    MediaStreamAudioSourceNode: {
                        prototype: MediaStreamAudioSourceNode;
                        new (context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;
                    };
                    MediaStreamTrack: {
                        prototype: MediaStreamTrack;
                        new (): MediaStreamTrack;
                    };
                    MediaStreamTrackEvent: {
                        prototype: MediaStreamTrackEvent;
                        new (type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;
                    };
                    MessageChannel: {
                        prototype: MessageChannel;
                        new (): MessageChannel;
                    };
                    MessageEvent: {
                        prototype: MessageEvent;
                        new <T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;
                    };
                    MessagePort: {
                        prototype: MessagePort;
                        new (): MessagePort;
                    };
                    MimeType: {
                        prototype: MimeType;
                        new (): MimeType;
                    };
                    MimeTypeArray: {
                        prototype: MimeTypeArray;
                        new (): MimeTypeArray;
                    };
                    MouseEvent: {
                        prototype: MouseEvent;
                        new (type: string, eventInitDict?: MouseEventInit): MouseEvent;
                    };
                    MutationObserver: {
                        prototype: MutationObserver;
                        new (callback: MutationCallback): MutationObserver;
                    };
                    MutationRecord: {
                        prototype: MutationRecord;
                        new (): MutationRecord;
                    };
                    NamedNodeMap: {
                        prototype: NamedNodeMap;
                        new (): NamedNodeMap;
                    };
                    NavigationActivation: {
                        prototype: NavigationActivation;
                        new (): NavigationActivation;
                    };
                    NavigationHistoryEntry: {
                        prototype: NavigationHistoryEntry;
                        new (): NavigationHistoryEntry;
                    };
                    NavigationPreloadManager: {
                        prototype: NavigationPreloadManager;
                        new (): NavigationPreloadManager;
                    };
                    Navigator: {
                        prototype: Navigator;
                        new (): Navigator;
                    };
                    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: 1;
                        readonly DOCUMENT_POSITION_PRECEDING: 2;
                        readonly DOCUMENT_POSITION_FOLLOWING: 4;
                        readonly DOCUMENT_POSITION_CONTAINS: 8;
                        readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
                        readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
                    };
                    NodeIterator: {
                        prototype: NodeIterator;
                        new (): NodeIterator;
                    };
                    NodeList: {
                        prototype: NodeList;
                        new (): NodeList;
                    };
                    Notification: {
                        prototype: Notification;
                        new (title: string, options?: NotificationOptions): Notification;
                        readonly permission: NotificationPermission;
                        requestPermission(deprecatedCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;
                    };
                    OfflineAudioCompletionEvent: {
                        prototype: OfflineAudioCompletionEvent;
                        new (type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;
                    };
                    OfflineAudioContext: {
                        prototype: OfflineAudioContext;
                        new (contextOptions: OfflineAudioContextOptions): OfflineAudioContext;
                        new (numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;
                    };
                    OffscreenCanvas: {
                        prototype: OffscreenCanvas;
                        new (width: number, height: number): OffscreenCanvas;
                    };
                    OffscreenCanvasRenderingContext2D: {
                        prototype: OffscreenCanvasRenderingContext2D;
                        new (): OffscreenCanvasRenderingContext2D;
                    };
                    OscillatorNode: {
                        prototype: OscillatorNode;
                        new (context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;
                    };
                    OverconstrainedError: {
                        prototype: OverconstrainedError;
                        new (constraint: string, message?: string): OverconstrainedError;
                    };
                    PageRevealEvent: {
                        prototype: PageRevealEvent;
                        new (type: string, eventInitDict?: PageRevealEventInit): PageRevealEvent;
                    };
                    PageSwapEvent: {
                        prototype: PageSwapEvent;
                        new (type: string, eventInitDict?: PageSwapEventInit): PageSwapEvent;
                    };
                    PageTransitionEvent: {
                        prototype: PageTransitionEvent;
                        new (type: string, eventInitDict?: PageTransitionEventInit): PageTransitionEvent;
                    };
                    PannerNode: {
                        prototype: PannerNode;
                        new (context: BaseAudioContext, options?: PannerOptions): PannerNode;
                    };
                    Path2D: {
                        prototype: Path2D;
                        new (path?: Path2D | string): Path2D;
                    };
                    PaymentAddress: {
                        prototype: PaymentAddress;
                        new (): PaymentAddress;
                    };
                    PaymentMethodChangeEvent: {
                        prototype: PaymentMethodChangeEvent;
                        new (type: string, eventInitDict?: PaymentMethodChangeEventInit): PaymentMethodChangeEvent;
                    };
                    PaymentRequest: {
                        prototype: PaymentRequest;
                        new (methodData: PaymentMethodData[], details: PaymentDetailsInit, options?: PaymentOptions): PaymentRequest;
                    };
                    PaymentRequestUpdateEvent: {
                        prototype: PaymentRequestUpdateEvent;
                        new (type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;
                    };
                    PaymentResponse: {
                        prototype: PaymentResponse;
                        new (): PaymentResponse;
                    };
                    Performance: {
                        prototype: Performance;
                        new (): Performance;
                    };
                    PerformanceEntry: {
                        prototype: PerformanceEntry;
                        new (): PerformanceEntry;
                    };
                    PerformanceEventTiming: {
                        prototype: PerformanceEventTiming;
                        new (): PerformanceEventTiming;
                    };
                    PerformanceMark: {
                        prototype: PerformanceMark;
                        new (markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
                    };
                    PerformanceMeasure: {
                        prototype: PerformanceMeasure;
                        new (): PerformanceMeasure;
                    };
                    PerformanceNavigation: {
                        prototype: PerformanceNavigation;
                        new (): PerformanceNavigation;
                        readonly TYPE_NAVIGATE: 0;
                        readonly TYPE_RELOAD: 1;
                        readonly TYPE_BACK_FORWARD: 2;
                        readonly TYPE_RESERVED: 255;
                    };
                    PerformanceNavigationTiming: {
                        prototype: PerformanceNavigationTiming;
                        new (): PerformanceNavigationTiming;
                    };
                    PerformanceObserver: {
                        prototype: PerformanceObserver;
                        new (callback: PerformanceObserverCallback): PerformanceObserver;
                        readonly supportedEntryTypes: ReadonlyArray<string>;
                    };
                    PerformanceObserverEntryList: {
                        prototype: PerformanceObserverEntryList;
                        new (): PerformanceObserverEntryList;
                    };
                    PerformancePaintTiming: {
                        prototype: PerformancePaintTiming;
                        new (): PerformancePaintTiming;
                    };
                    PerformanceResourceTiming: {
                        prototype: PerformanceResourceTiming;
                        new (): PerformanceResourceTiming;
                    };
                    PerformanceServerTiming: {
                        prototype: PerformanceServerTiming;
                        new (): PerformanceServerTiming;
                    };
                    PerformanceTiming: {
                        prototype: PerformanceTiming;
                        new (): PerformanceTiming;
                    };
                    PeriodicWave: {
                        prototype: PeriodicWave;
                        new (context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;
                    };
                    PermissionStatus: {
                        prototype: PermissionStatus;
                        new (): PermissionStatus;
                    };
                    Permissions: {
                        prototype: Permissions;
                        new (): Permissions;
                    };
                    PictureInPictureEvent: {
                        prototype: PictureInPictureEvent;
                        new (type: string, eventInitDict: PictureInPictureEventInit): PictureInPictureEvent;
                    };
                    PictureInPictureWindow: {
                        prototype: PictureInPictureWindow;
                        new (): PictureInPictureWindow;
                    };
                    Plugin: {
                        prototype: Plugin;
                        new (): Plugin;
                    };
                    PluginArray: {
                        prototype: PluginArray;
                        new (): PluginArray;
                    };
                    PointerEvent: {
                        prototype: PointerEvent;
                        new (type: string, eventInitDict?: PointerEventInit): PointerEvent;
                    };
                    PopStateEvent: {
                        prototype: PopStateEvent;
                        new (type: string, eventInitDict?: PopStateEventInit): PopStateEvent;
                    };
                    ProcessingInstruction: {
                        prototype: ProcessingInstruction;
                        new (): ProcessingInstruction;
                    };
                    ProgressEvent: {
                        prototype: ProgressEvent;
                        new (type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
                    };
                    PromiseRejectionEvent: {
                        prototype: PromiseRejectionEvent;
                        new (type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;
                    };
                    PublicKeyCredential: {
                        prototype: PublicKeyCredential;
                        new (): PublicKeyCredential;
                        getClientCapabilities(): Promise<PublicKeyCredentialClientCapabilities>;
                        isConditionalMediationAvailable(): Promise<boolean>;
                        isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;
                        parseCreationOptionsFromJSON(options: PublicKeyCredentialCreationOptionsJSON): PublicKeyCredentialCreationOptions;
                        parseRequestOptionsFromJSON(options: PublicKeyCredentialRequestOptionsJSON): PublicKeyCredentialRequestOptions;
                    };
                    PushManager: {
                        prototype: PushManager;
                        new (): PushManager;
                        readonly supportedContentEncodings: ReadonlyArray<string>;
                    };
                    PushSubscription: {
                        prototype: PushSubscription;
                        new (): PushSubscription;
                    };
                    PushSubscriptionOptions: {
                        prototype: PushSubscriptionOptions;
                        new (): PushSubscriptionOptions;
                    };
                    RTCCertificate: {
                        prototype: RTCCertificate;
                        new (): RTCCertificate;
                    };
                    RTCDTMFSender: {
                        prototype: RTCDTMFSender;
                        new (): RTCDTMFSender;
                    };
                    RTCDTMFToneChangeEvent: {
                        prototype: RTCDTMFToneChangeEvent;
                        new (type: string, eventInitDict?: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;
                    };
                    RTCDataChannel: {
                        prototype: RTCDataChannel;
                        new (): RTCDataChannel;
                    };
                    RTCDataChannelEvent: {
                        prototype: RTCDataChannelEvent;
                        new (type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;
                    };
                    RTCDtlsTransport: {
                        prototype: RTCDtlsTransport;
                        new (): RTCDtlsTransport;
                    };
                    RTCEncodedAudioFrame: {
                        prototype: RTCEncodedAudioFrame;
                        new (): RTCEncodedAudioFrame;
                    };
                    RTCEncodedVideoFrame: {
                        prototype: RTCEncodedVideoFrame;
                        new (): RTCEncodedVideoFrame;
                    };
                    RTCError: {
                        prototype: RTCError;
                        new (init: RTCErrorInit, message?: string): RTCError;
                    };
                    RTCErrorEvent: {
                        prototype: RTCErrorEvent;
                        new (type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent;
                    };
                    RTCIceCandidate: {
                        prototype: RTCIceCandidate;
                        new (candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;
                    };
                    RTCIceTransport: {
                        prototype: RTCIceTransport;
                        new (): RTCIceTransport;
                    };
                    RTCPeerConnection: {
                        prototype: RTCPeerConnection;
                        new (configuration?: RTCConfiguration): RTCPeerConnection;
                        generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;
                    };
                    RTCPeerConnectionIceErrorEvent: {
                        prototype: RTCPeerConnectionIceErrorEvent;
                        new (type: string, eventInitDict: RTCPeerConnectionIceErrorEventInit): RTCPeerConnectionIceErrorEvent;
                    };
                    RTCPeerConnectionIceEvent: {
                        prototype: RTCPeerConnectionIceEvent;
                        new (type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;
                    };
                    RTCRtpReceiver: {
                        prototype: RTCRtpReceiver;
                        new (): RTCRtpReceiver;
                        getCapabilities(kind: string): RTCRtpCapabilities | null;
                    };
                    RTCRtpScriptTransform: {
                        prototype: RTCRtpScriptTransform;
                        new (worker: Worker, options?: any, transfer?: any[]): RTCRtpScriptTransform;
                    };
                    RTCRtpSender: {
                        prototype: RTCRtpSender;
                        new (): RTCRtpSender;
                        getCapabilities(kind: string): RTCRtpCapabilities | null;
                    };
                    RTCRtpTransceiver: {
                        prototype: RTCRtpTransceiver;
                        new (): RTCRtpTransceiver;
                    };
                    RTCSctpTransport: {
                        prototype: RTCSctpTransport;
                        new (): RTCSctpTransport;
                    };
                    RTCSessionDescription: {
                        prototype: RTCSessionDescription;
                        new (descriptionInitDict: RTCSessionDescriptionInit): RTCSessionDescription;
                    };
                    RTCStatsReport: {
                        prototype: RTCStatsReport;
                        new (): RTCStatsReport;
                    };
                    RTCTrackEvent: {
                        prototype: RTCTrackEvent;
                        new (type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;
                    };
                    RadioNodeList: {
                        prototype: RadioNodeList;
                        new (): RadioNodeList;
                    };
                    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;
                    };
                    ReadableByteStreamController: {
                        prototype: ReadableByteStreamController;
                        new (): ReadableByteStreamController;
                    };
                    ReadableStream: {
                        prototype: ReadableStream;
                        new (underlyingSource: UnderlyingByteSource, strategy?: {
                            highWaterMark?: number;
                        }): ReadableStream<Uint8Array>;
                        new <R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
                        new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
                    };
                    ReadableStreamBYOBReader: {
                        prototype: ReadableStreamBYOBReader;
                        new (stream: ReadableStream<Uint8Array>): ReadableStreamBYOBReader;
                    };
                    ReadableStreamBYOBRequest: {
                        prototype: ReadableStreamBYOBRequest;
                        new (): ReadableStreamBYOBRequest;
                    };
                    ReadableStreamDefaultController: {
                        prototype: ReadableStreamDefaultController;
                        new (): ReadableStreamDefaultController;
                    };
                    ReadableStreamDefaultReader: {
                        prototype: ReadableStreamDefaultReader;
                        new <R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
                    };
                    RemotePlayback: {
                        prototype: RemotePlayback;
                        new (): RemotePlayback;
                    };
                    Report: {
                        prototype: Report;
                        new (): Report;
                    };
                    ReportBody: {
                        prototype: ReportBody;
                        new (): ReportBody;
                    };
                    ReportingObserver: {
                        prototype: ReportingObserver;
                        new (callback: ReportingObserverCallback, options?: ReportingObserverOptions): ReportingObserver;
                    };
                    Request: {
                        prototype: Request;
                        new (input: RequestInfo | URL, init?: RequestInit): Request;
                    };
                    ResizeObserver: {
                        prototype: ResizeObserver;
                        new (callback: ResizeObserverCallback): ResizeObserver;
                    };
                    ResizeObserverEntry: {
                        prototype: ResizeObserverEntry;
                        new (): ResizeObserverEntry;
                    };
                    ResizeObserverSize: {
                        prototype: ResizeObserverSize;
                        new (): ResizeObserverSize;
                    };
                    Response: {
                        prototype: Response;
                        new (body?: BodyInit | null, init?: ResponseInit): Response;
                        error(): Response;
                        json(data: any, init?: ResponseInit): Response;
                        redirect(url: string | URL, status?: number): Response;
                    };
                    SVGAElement: {
                        prototype: SVGAElement;
                        new (): SVGAElement;
                    };
                    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;
                    };
                    SVGAnimateElement: {
                        prototype: SVGAnimateElement;
                        new (): SVGAnimateElement;
                    };
                    SVGAnimateMotionElement: {
                        prototype: SVGAnimateMotionElement;
                        new (): SVGAnimateMotionElement;
                    };
                    SVGAnimateTransformElement: {
                        prototype: SVGAnimateTransformElement;
                        new (): SVGAnimateTransformElement;
                    };
                    SVGAnimatedAngle: {
                        prototype: SVGAnimatedAngle;
                        new (): SVGAnimatedAngle;
                    };
                    SVGAnimatedBoolean: {
                        prototype: SVGAnimatedBoolean;
                        new (): SVGAnimatedBoolean;
                    };
                    SVGAnimatedEnumeration: {
                        prototype: SVGAnimatedEnumeration;
                        new (): SVGAnimatedEnumeration;
                    };
                    SVGAnimatedInteger: {
                        prototype: SVGAnimatedInteger;
                        new (): SVGAnimatedInteger;
                    };
                    SVGAnimatedLength: {
                        prototype: SVGAnimatedLength;
                        new (): SVGAnimatedLength;
                    };
                    SVGAnimatedLengthList: {
                        prototype: SVGAnimatedLengthList;
                        new (): SVGAnimatedLengthList;
                    };
                    SVGAnimatedNumber: {
                        prototype: SVGAnimatedNumber;
                        new (): SVGAnimatedNumber;
                    };
                    SVGAnimatedNumberList: {
                        prototype: SVGAnimatedNumberList;
                        new (): SVGAnimatedNumberList;
                    };
                    SVGAnimatedPreserveAspectRatio: {
                        prototype: SVGAnimatedPreserveAspectRatio;
                        new (): SVGAnimatedPreserveAspectRatio;
                    };
                    SVGAnimatedRect: {
                        prototype: SVGAnimatedRect;
                        new (): SVGAnimatedRect;
                    };
                    SVGAnimatedString: {
                        prototype: SVGAnimatedString;
                        new (): SVGAnimatedString;
                    };
                    SVGAnimatedTransformList: {
                        prototype: SVGAnimatedTransformList;
                        new (): SVGAnimatedTransformList;
                    };
                    SVGAnimationElement: {
                        prototype: SVGAnimationElement;
                        new (): SVGAnimationElement;
                    };
                    SVGCircleElement: {
                        prototype: SVGCircleElement;
                        new (): SVGCircleElement;
                    };
                    SVGClipPathElement: {
                        prototype: SVGClipPathElement;
                        new (): SVGClipPathElement;
                    };
                    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;
                    };
                    SVGDefsElement: {
                        prototype: SVGDefsElement;
                        new (): SVGDefsElement;
                    };
                    SVGDescElement: {
                        prototype: SVGDescElement;
                        new (): SVGDescElement;
                    };
                    SVGElement: {
                        prototype: SVGElement;
                        new (): SVGElement;
                    };
                    SVGEllipseElement: {
                        prototype: SVGEllipseElement;
                        new (): SVGEllipseElement;
                    };
                    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;
                    };
                    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;
                    };
                    SVGFEComponentTransferElement: {
                        prototype: SVGFEComponentTransferElement;
                        new (): SVGFEComponentTransferElement;
                    };
                    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;
                    };
                    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;
                    };
                    SVGFEDiffuseLightingElement: {
                        prototype: SVGFEDiffuseLightingElement;
                        new (): SVGFEDiffuseLightingElement;
                    };
                    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;
                    };
                    SVGFEDistantLightElement: {
                        prototype: SVGFEDistantLightElement;
                        new (): SVGFEDistantLightElement;
                    };
                    SVGFEDropShadowElement: {
                        prototype: SVGFEDropShadowElement;
                        new (): SVGFEDropShadowElement;
                    };
                    SVGFEFloodElement: {
                        prototype: SVGFEFloodElement;
                        new (): SVGFEFloodElement;
                    };
                    SVGFEFuncAElement: {
                        prototype: SVGFEFuncAElement;
                        new (): SVGFEFuncAElement;
                    };
                    SVGFEFuncBElement: {
                        prototype: SVGFEFuncBElement;
                        new (): SVGFEFuncBElement;
                    };
                    SVGFEFuncGElement: {
                        prototype: SVGFEFuncGElement;
                        new (): SVGFEFuncGElement;
                    };
                    SVGFEFuncRElement: {
                        prototype: SVGFEFuncRElement;
                        new (): SVGFEFuncRElement;
                    };
                    SVGFEGaussianBlurElement: {
                        prototype: SVGFEGaussianBlurElement;
                        new (): SVGFEGaussianBlurElement;
                    };
                    SVGFEImageElement: {
                        prototype: SVGFEImageElement;
                        new (): SVGFEImageElement;
                    };
                    SVGFEMergeElement: {
                        prototype: SVGFEMergeElement;
                        new (): SVGFEMergeElement;
                    };
                    SVGFEMergeNodeElement: {
                        prototype: SVGFEMergeNodeElement;
                        new (): SVGFEMergeNodeElement;
                    };
                    SVGFEMorphologyElement: {
                        prototype: SVGFEMorphologyElement;
                        new (): SVGFEMorphologyElement;
                        readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
                        readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
                        readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
                    };
                    SVGFEOffsetElement: {
                        prototype: SVGFEOffsetElement;
                        new (): SVGFEOffsetElement;
                    };
                    SVGFEPointLightElement: {
                        prototype: SVGFEPointLightElement;
                        new (): SVGFEPointLightElement;
                    };
                    SVGFESpecularLightingElement: {
                        prototype: SVGFESpecularLightingElement;
                        new (): SVGFESpecularLightingElement;
                    };
                    SVGFESpotLightElement: {
                        prototype: SVGFESpotLightElement;
                        new (): SVGFESpotLightElement;
                    };
                    SVGFETileElement: {
                        prototype: SVGFETileElement;
                        new (): SVGFETileElement;
                    };
                    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;
                    };
                    SVGFilterElement: {
                        prototype: SVGFilterElement;
                        new (): SVGFilterElement;
                    };
                    SVGForeignObjectElement: {
                        prototype: SVGForeignObjectElement;
                        new (): SVGForeignObjectElement;
                    };
                    SVGGElement: {
                        prototype: SVGGElement;
                        new (): SVGGElement;
                    };
                    SVGGeometryElement: {
                        prototype: SVGGeometryElement;
                        new (): SVGGeometryElement;
                    };
                    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;
                    };
                    SVGGraphicsElement: {
                        prototype: SVGGraphicsElement;
                        new (): SVGGraphicsElement;
                    };
                    SVGImageElement: {
                        prototype: SVGImageElement;
                        new (): SVGImageElement;
                    };
                    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;
                    };
                    SVGLengthList: {
                        prototype: SVGLengthList;
                        new (): SVGLengthList;
                    };
                    SVGLineElement: {
                        prototype: SVGLineElement;
                        new (): SVGLineElement;
                    };
                    SVGLinearGradientElement: {
                        prototype: SVGLinearGradientElement;
                        new (): SVGLinearGradientElement;
                    };
                    SVGMPathElement: {
                        prototype: SVGMPathElement;
                        new (): SVGMPathElement;
                    };
                    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;
                    };
                    SVGMaskElement: {
                        prototype: SVGMaskElement;
                        new (): SVGMaskElement;
                    };
                    SVGMetadataElement: {
                        prototype: SVGMetadataElement;
                        new (): SVGMetadataElement;
                    };
                    SVGNumber: {
                        prototype: SVGNumber;
                        new (): SVGNumber;
                    };
                    SVGNumberList: {
                        prototype: SVGNumberList;
                        new (): SVGNumberList;
                    };
                    SVGPathElement: {
                        prototype: SVGPathElement;
                        new (): SVGPathElement;
                    };
                    SVGPatternElement: {
                        prototype: SVGPatternElement;
                        new (): SVGPatternElement;
                    };
                    SVGPointList: {
                        prototype: SVGPointList;
                        new (): SVGPointList;
                    };
                    SVGPolygonElement: {
                        prototype: SVGPolygonElement;
                        new (): SVGPolygonElement;
                    };
                    SVGPolylineElement: {
                        prototype: SVGPolylineElement;
                        new (): SVGPolylineElement;
                    };
                    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;
                    };
                    SVGRadialGradientElement: {
                        prototype: SVGRadialGradientElement;
                        new (): SVGRadialGradientElement;
                    };
                    SVGRectElement: {
                        prototype: SVGRectElement;
                        new (): SVGRectElement;
                    };
                    SVGSVGElement: {
                        prototype: SVGSVGElement;
                        new (): SVGSVGElement;
                    };
                    SVGScriptElement: {
                        prototype: SVGScriptElement;
                        new (): SVGScriptElement;
                    };
                    SVGSetElement: {
                        prototype: SVGSetElement;
                        new (): SVGSetElement;
                    };
                    SVGStopElement: {
                        prototype: SVGStopElement;
                        new (): SVGStopElement;
                    };
                    SVGStringList: {
                        prototype: SVGStringList;
                        new (): SVGStringList;
                    };
                    SVGStyleElement: {
                        prototype: SVGStyleElement;
                        new (): SVGStyleElement;
                    };
                    SVGSwitchElement: {
                        prototype: SVGSwitchElement;
                        new (): SVGSwitchElement;
                    };
                    SVGSymbolElement: {
                        prototype: SVGSymbolElement;
                        new (): SVGSymbolElement;
                    };
                    SVGTSpanElement: {
                        prototype: SVGTSpanElement;
                        new (): SVGTSpanElement;
                    };
                    SVGTextContentElement: {
                        prototype: SVGTextContentElement;
                        new (): SVGTextContentElement;
                        readonly LENGTHADJUST_UNKNOWN: 0;
                        readonly LENGTHADJUST_SPACING: 1;
                        readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
                    };
                    SVGTextElement: {
                        prototype: SVGTextElement;
                        new (): SVGTextElement;
                    };
                    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;
                    };
                    SVGTextPositioningElement: {
                        prototype: SVGTextPositioningElement;
                        new (): SVGTextPositioningElement;
                    };
                    SVGTitleElement: {
                        prototype: SVGTitleElement;
                        new (): SVGTitleElement;
                    };
                    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;
                    };
                    SVGTransformList: {
                        prototype: SVGTransformList;
                        new (): SVGTransformList;
                    };
                    SVGUnitTypes: {
                        prototype: SVGUnitTypes;
                        new (): SVGUnitTypes;
                        readonly SVG_UNIT_TYPE_UNKNOWN: 0;
                        readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
                        readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
                    };
                    SVGUseElement: {
                        prototype: SVGUseElement;
                        new (): SVGUseElement;
                    };
                    SVGViewElement: {
                        prototype: SVGViewElement;
                        new (): SVGViewElement;
                    };
                    Screen: {
                        prototype: Screen;
                        new (): Screen;
                    };
                    ScreenOrientation: {
                        prototype: ScreenOrientation;
                        new (): ScreenOrientation;
                    };
                    ScriptProcessorNode: {
                        prototype: ScriptProcessorNode;
                        new (): ScriptProcessorNode;
                    };
                    SecurityPolicyViolationEvent: {
                        prototype: SecurityPolicyViolationEvent;
                        new (type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;
                    };
                    Selection: {
                        prototype: Selection;
                        new (): Selection;
                    };
                    ServiceWorker: {
                        prototype: ServiceWorker;
                        new (): ServiceWorker;
                    };
                    ServiceWorkerContainer: {
                        prototype: ServiceWorkerContainer;
                        new (): ServiceWorkerContainer;
                    };
                    ServiceWorkerRegistration: {
                        prototype: ServiceWorkerRegistration;
                        new (): ServiceWorkerRegistration;
                    };
                    ShadowRoot: {
                        prototype: ShadowRoot;
                        new (): ShadowRoot;
                    };
                    SharedWorker: {
                        prototype: SharedWorker;
                        new (scriptURL: string | URL, options?: string | WorkerOptions): SharedWorker;
                    };
                    SourceBuffer: {
                        prototype: SourceBuffer;
                        new (): SourceBuffer;
                    };
                    SourceBufferList: {
                        prototype: SourceBufferList;
                        new (): SourceBufferList;
                    };
                    SpeechRecognitionAlternative: {
                        prototype: SpeechRecognitionAlternative;
                        new (): SpeechRecognitionAlternative;
                    };
                    SpeechRecognitionResult: {
                        prototype: SpeechRecognitionResult;
                        new (): SpeechRecognitionResult;
                    };
                    SpeechRecognitionResultList: {
                        prototype: SpeechRecognitionResultList;
                        new (): SpeechRecognitionResultList;
                    };
                    SpeechSynthesis: {
                        prototype: SpeechSynthesis;
                        new (): SpeechSynthesis;
                    };
                    SpeechSynthesisErrorEvent: {
                        prototype: SpeechSynthesisErrorEvent;
                        new (type: string, eventInitDict: SpeechSynthesisErrorEventInit): SpeechSynthesisErrorEvent;
                    };
                    SpeechSynthesisEvent: {
                        prototype: SpeechSynthesisEvent;
                        new (type: string, eventInitDict: SpeechSynthesisEventInit): SpeechSynthesisEvent;
                    };
                    SpeechSynthesisUtterance: {
                        prototype: SpeechSynthesisUtterance;
                        new (text?: string): SpeechSynthesisUtterance;
                    };
                    SpeechSynthesisVoice: {
                        prototype: SpeechSynthesisVoice;
                        new (): SpeechSynthesisVoice;
                    };
                    StaticRange: {
                        prototype: StaticRange;
                        new (init: StaticRangeInit): StaticRange;
                    };
                    StereoPannerNode: {
                        prototype: StereoPannerNode;
                        new (context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;
                    };
                    Storage: {
                        prototype: Storage;
                        new (): Storage;
                    };
                    StorageEvent: {
                        prototype: StorageEvent;
                        new (type: string, eventInitDict?: StorageEventInit): StorageEvent;
                    };
                    StorageManager: {
                        prototype: StorageManager;
                        new (): StorageManager;
                    };
                    StylePropertyMap: {
                        prototype: StylePropertyMap;
                        new (): StylePropertyMap;
                    };
                    StylePropertyMapReadOnly: {
                        prototype: StylePropertyMapReadOnly;
                        new (): StylePropertyMapReadOnly;
                    };
                    StyleSheet: {
                        prototype: StyleSheet;
                        new (): StyleSheet;
                    };
                    StyleSheetList: {
                        prototype: StyleSheetList;
                        new (): StyleSheetList;
                    };
                    SubmitEvent: {
                        prototype: SubmitEvent;
                        new (type: string, eventInitDict?: SubmitEventInit): SubmitEvent;
                    };
                    SubtleCrypto: {
                        prototype: SubtleCrypto;
                        new (): SubtleCrypto;
                    };
                    Text: {
                        prototype: Text;
                        new (data?: string): Text;
                    };
                    TextDecoder: {
                        prototype: TextDecoder;
                        new (label?: string, options?: TextDecoderOptions): TextDecoder;
                    };
                    TextDecoderStream: {
                        prototype: TextDecoderStream;
                        new (label?: string, options?: TextDecoderOptions): TextDecoderStream;
                    };
                    TextEncoder: {
                        prototype: TextEncoder;
                        new (): TextEncoder;
                    };
                    TextEncoderStream: {
                        prototype: TextEncoderStream;
                        new (): TextEncoderStream;
                    };
                    TextEvent: {
                        prototype: TextEvent;
                        new (): TextEvent;
                    };
                    TextMetrics: {
                        prototype: TextMetrics;
                        new (): TextMetrics;
                    };
                    TextTrack: {
                        prototype: TextTrack;
                        new (): TextTrack;
                    };
                    TextTrackCue: {
                        prototype: TextTrackCue;
                        new (): TextTrackCue;
                    };
                    TextTrackCueList: {
                        prototype: TextTrackCueList;
                        new (): TextTrackCueList;
                    };
                    TextTrackList: {
                        prototype: TextTrackList;
                        new (): TextTrackList;
                    };
                    TimeRanges: {
                        prototype: TimeRanges;
                        new (): TimeRanges;
                    };
                    ToggleEvent: {
                        prototype: ToggleEvent;
                        new (type: string, eventInitDict?: ToggleEventInit): ToggleEvent;
                    };
                    Touch: {
                        prototype: Touch;
                        new (touchInitDict: TouchInit): Touch;
                    };
                    TouchEvent: {
                        prototype: TouchEvent;
                        new (type: string, eventInitDict?: TouchEventInit): TouchEvent;
                    };
                    TouchList: {
                        prototype: TouchList;
                        new (): TouchList;
                    };
                    TrackEvent: {
                        prototype: TrackEvent;
                        new (type: string, eventInitDict?: TrackEventInit): TrackEvent;
                    };
                    TransformStream: {
                        prototype: TransformStream;
                        new <I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;
                    };
                    TransformStreamDefaultController: {
                        prototype: TransformStreamDefaultController;
                        new (): TransformStreamDefaultController;
                    };
                    TransitionEvent: {
                        prototype: TransitionEvent;
                        new (type: string, transitionEventInitDict?: TransitionEventInit): TransitionEvent;
                    };
                    TreeWalker: {
                        prototype: TreeWalker;
                        new (): TreeWalker;
                    };
                    UIEvent: {
                        prototype: UIEvent;
                        new (type: string, eventInitDict?: UIEventInit): UIEvent;
                    };
                    URL: {
                        prototype: URL;
                        new (url: string | URL, base?: string | URL): URL;
                        canParse(url: string | URL, base?: string | URL): boolean;
                        createObjectURL(obj: Blob | MediaSource): string;
                        parse(url: string | URL, base?: string | URL): URL | null;
                        revokeObjectURL(url: string): void;
                    };
                    webkitURL: typeof URL;
                    URLSearchParams: {
                        prototype: URLSearchParams;
                        new (init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;
                    };
                    UserActivation: {
                        prototype: UserActivation;
                        new (): UserActivation;
                    };
                    VTTCue: {
                        prototype: VTTCue;
                        new (startTime: number, endTime: number, text: string): VTTCue;
                    };
                    VTTRegion: {
                        prototype: VTTRegion;
                        new (): VTTRegion;
                    };
                    ValidityState: {
                        prototype: ValidityState;
                        new (): ValidityState;
                    };
                    VideoColorSpace: {
                        prototype: VideoColorSpace;
                        new (init?: VideoColorSpaceInit): VideoColorSpace;
                    };
                    VideoDecoder: {
                        prototype: VideoDecoder;
                        new (init: VideoDecoderInit): VideoDecoder;
                        isConfigSupported(config: VideoDecoderConfig): Promise<VideoDecoderSupport>;
                    };
                    VideoEncoder: {
                        prototype: VideoEncoder;
                        new (init: VideoEncoderInit): VideoEncoder;
                        isConfigSupported(config: VideoEncoderConfig): Promise<VideoEncoderSupport>;
                    };
                    VideoFrame: {
                        prototype: VideoFrame;
                        new (image: CanvasImageSource, init?: VideoFrameInit): VideoFrame;
                        new (data: AllowSharedBufferSource, init: VideoFrameBufferInit): VideoFrame;
                    };
                    VideoPlaybackQuality: {
                        prototype: VideoPlaybackQuality;
                        new (): VideoPlaybackQuality;
                    };
                    ViewTransition: {
                        prototype: ViewTransition;
                        new (): ViewTransition;
                    };
                    ViewTransitionTypeSet: {
                        prototype: ViewTransitionTypeSet;
                        new (): ViewTransitionTypeSet;
                    };
                    VisualViewport: {
                        prototype: VisualViewport;
                        new (): VisualViewport;
                    };
                    WakeLock: {
                        prototype: WakeLock;
                        new (): WakeLock;
                    };
                    WakeLockSentinel: {
                        prototype: WakeLockSentinel;
                        new (): WakeLockSentinel;
                    };
                    WaveShaperNode: {
                        prototype: WaveShaperNode;
                        new (context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;
                    };
                    WebGL2RenderingContext: {
                        prototype: WebGL2RenderingContext;
                        new (): WebGL2RenderingContext;
                        readonly READ_BUFFER: 3074;
                        readonly UNPACK_ROW_LENGTH: 3314;
                        readonly UNPACK_SKIP_ROWS: 3315;
                        readonly UNPACK_SKIP_PIXELS: 3316;
                        readonly PACK_ROW_LENGTH: 3330;
                        readonly PACK_SKIP_ROWS: 3331;
                        readonly PACK_SKIP_PIXELS: 3332;
                        readonly COLOR: 6144;
                        readonly DEPTH: 6145;
                        readonly STENCIL: 6146;
                        readonly RED: 6403;
                        readonly RGB8: 32849;
                        readonly RGB10_A2: 32857;
                        readonly TEXTURE_BINDING_3D: 32874;
                        readonly UNPACK_SKIP_IMAGES: 32877;
                        readonly UNPACK_IMAGE_HEIGHT: 32878;
                        readonly TEXTURE_3D: 32879;
                        readonly TEXTURE_WRAP_R: 32882;
                        readonly MAX_3D_TEXTURE_SIZE: 32883;
                        readonly UNSIGNED_INT_2_10_10_10_REV: 33640;
                        readonly MAX_ELEMENTS_VERTICES: 33000;
                        readonly MAX_ELEMENTS_INDICES: 33001;
                        readonly TEXTURE_MIN_LOD: 33082;
                        readonly TEXTURE_MAX_LOD: 33083;
                        readonly TEXTURE_BASE_LEVEL: 33084;
                        readonly TEXTURE_MAX_LEVEL: 33085;
                        readonly MIN: 32775;
                        readonly MAX: 32776;
                        readonly DEPTH_COMPONENT24: 33190;
                        readonly MAX_TEXTURE_LOD_BIAS: 34045;
                        readonly TEXTURE_COMPARE_MODE: 34892;
                        readonly TEXTURE_COMPARE_FUNC: 34893;
                        readonly CURRENT_QUERY: 34917;
                        readonly QUERY_RESULT: 34918;
                        readonly QUERY_RESULT_AVAILABLE: 34919;
                        readonly STREAM_READ: 35041;
                        readonly STREAM_COPY: 35042;
                        readonly STATIC_READ: 35045;
                        readonly STATIC_COPY: 35046;
                        readonly DYNAMIC_READ: 35049;
                        readonly DYNAMIC_COPY: 35050;
                        readonly MAX_DRAW_BUFFERS: 34852;
                        readonly DRAW_BUFFER0: 34853;
                        readonly DRAW_BUFFER1: 34854;
                        readonly DRAW_BUFFER2: 34855;
                        readonly DRAW_BUFFER3: 34856;
                        readonly DRAW_BUFFER4: 34857;
                        readonly DRAW_BUFFER5: 34858;
                        readonly DRAW_BUFFER6: 34859;
                        readonly DRAW_BUFFER7: 34860;
                        readonly DRAW_BUFFER8: 34861;
                        readonly DRAW_BUFFER9: 34862;
                        readonly DRAW_BUFFER10: 34863;
                        readonly DRAW_BUFFER11: 34864;
                        readonly DRAW_BUFFER12: 34865;
                        readonly DRAW_BUFFER13: 34866;
                        readonly DRAW_BUFFER14: 34867;
                        readonly DRAW_BUFFER15: 34868;
                        readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 35657;
                        readonly MAX_VERTEX_UNIFORM_COMPONENTS: 35658;
                        readonly SAMPLER_3D: 35679;
                        readonly SAMPLER_2D_SHADOW: 35682;
                        readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 35723;
                        readonly PIXEL_PACK_BUFFER: 35051;
                        readonly PIXEL_UNPACK_BUFFER: 35052;
                        readonly PIXEL_PACK_BUFFER_BINDING: 35053;
                        readonly PIXEL_UNPACK_BUFFER_BINDING: 35055;
                        readonly FLOAT_MAT2x3: 35685;
                        readonly FLOAT_MAT2x4: 35686;
                        readonly FLOAT_MAT3x2: 35687;
                        readonly FLOAT_MAT3x4: 35688;
                        readonly FLOAT_MAT4x2: 35689;
                        readonly FLOAT_MAT4x3: 35690;
                        readonly SRGB: 35904;
                        readonly SRGB8: 35905;
                        readonly SRGB8_ALPHA8: 35907;
                        readonly COMPARE_REF_TO_TEXTURE: 34894;
                        readonly RGBA32F: 34836;
                        readonly RGB32F: 34837;
                        readonly RGBA16F: 34842;
                        readonly RGB16F: 34843;
                        readonly VERTEX_ATTRIB_ARRAY_INTEGER: 35069;
                        readonly MAX_ARRAY_TEXTURE_LAYERS: 35071;
                        readonly MIN_PROGRAM_TEXEL_OFFSET: 35076;
                        readonly MAX_PROGRAM_TEXEL_OFFSET: 35077;
                        readonly MAX_VARYING_COMPONENTS: 35659;
                        readonly TEXTURE_2D_ARRAY: 35866;
                        readonly TEXTURE_BINDING_2D_ARRAY: 35869;
                        readonly R11F_G11F_B10F: 35898;
                        readonly UNSIGNED_INT_10F_11F_11F_REV: 35899;
                        readonly RGB9_E5: 35901;
                        readonly UNSIGNED_INT_5_9_9_9_REV: 35902;
                        readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 35967;
                        readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 35968;
                        readonly TRANSFORM_FEEDBACK_VARYINGS: 35971;
                        readonly TRANSFORM_FEEDBACK_BUFFER_START: 35972;
                        readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 35973;
                        readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 35976;
                        readonly RASTERIZER_DISCARD: 35977;
                        readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 35978;
                        readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 35979;
                        readonly INTERLEAVED_ATTRIBS: 35980;
                        readonly SEPARATE_ATTRIBS: 35981;
                        readonly TRANSFORM_FEEDBACK_BUFFER: 35982;
                        readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 35983;
                        readonly RGBA32UI: 36208;
                        readonly RGB32UI: 36209;
                        readonly RGBA16UI: 36214;
                        readonly RGB16UI: 36215;
                        readonly RGBA8UI: 36220;
                        readonly RGB8UI: 36221;
                        readonly RGBA32I: 36226;
                        readonly RGB32I: 36227;
                        readonly RGBA16I: 36232;
                        readonly RGB16I: 36233;
                        readonly RGBA8I: 36238;
                        readonly RGB8I: 36239;
                        readonly RED_INTEGER: 36244;
                        readonly RGB_INTEGER: 36248;
                        readonly RGBA_INTEGER: 36249;
                        readonly SAMPLER_2D_ARRAY: 36289;
                        readonly SAMPLER_2D_ARRAY_SHADOW: 36292;
                        readonly SAMPLER_CUBE_SHADOW: 36293;
                        readonly UNSIGNED_INT_VEC2: 36294;
                        readonly UNSIGNED_INT_VEC3: 36295;
                        readonly UNSIGNED_INT_VEC4: 36296;
                        readonly INT_SAMPLER_2D: 36298;
                        readonly INT_SAMPLER_3D: 36299;
                        readonly INT_SAMPLER_CUBE: 36300;
                        readonly INT_SAMPLER_2D_ARRAY: 36303;
                        readonly UNSIGNED_INT_SAMPLER_2D: 36306;
                        readonly UNSIGNED_INT_SAMPLER_3D: 36307;
                        readonly UNSIGNED_INT_SAMPLER_CUBE: 36308;
                        readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 36311;
                        readonly DEPTH_COMPONENT32F: 36012;
                        readonly DEPTH32F_STENCIL8: 36013;
                        readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 36269;
                        readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 33296;
                        readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 33297;
                        readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 33298;
                        readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 33299;
                        readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 33300;
                        readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 33301;
                        readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 33302;
                        readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 33303;
                        readonly FRAMEBUFFER_DEFAULT: 33304;
                        readonly UNSIGNED_INT_24_8: 34042;
                        readonly DEPTH24_STENCIL8: 35056;
                        readonly UNSIGNED_NORMALIZED: 35863;
                        readonly DRAW_FRAMEBUFFER_BINDING: 36006;
                        readonly READ_FRAMEBUFFER: 36008;
                        readonly DRAW_FRAMEBUFFER: 36009;
                        readonly READ_FRAMEBUFFER_BINDING: 36010;
                        readonly RENDERBUFFER_SAMPLES: 36011;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 36052;
                        readonly MAX_COLOR_ATTACHMENTS: 36063;
                        readonly COLOR_ATTACHMENT1: 36065;
                        readonly COLOR_ATTACHMENT2: 36066;
                        readonly COLOR_ATTACHMENT3: 36067;
                        readonly COLOR_ATTACHMENT4: 36068;
                        readonly COLOR_ATTACHMENT5: 36069;
                        readonly COLOR_ATTACHMENT6: 36070;
                        readonly COLOR_ATTACHMENT7: 36071;
                        readonly COLOR_ATTACHMENT8: 36072;
                        readonly COLOR_ATTACHMENT9: 36073;
                        readonly COLOR_ATTACHMENT10: 36074;
                        readonly COLOR_ATTACHMENT11: 36075;
                        readonly COLOR_ATTACHMENT12: 36076;
                        readonly COLOR_ATTACHMENT13: 36077;
                        readonly COLOR_ATTACHMENT14: 36078;
                        readonly COLOR_ATTACHMENT15: 36079;
                        readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 36182;
                        readonly MAX_SAMPLES: 36183;
                        readonly HALF_FLOAT: 5131;
                        readonly RG: 33319;
                        readonly RG_INTEGER: 33320;
                        readonly R8: 33321;
                        readonly RG8: 33323;
                        readonly R16F: 33325;
                        readonly R32F: 33326;
                        readonly RG16F: 33327;
                        readonly RG32F: 33328;
                        readonly R8I: 33329;
                        readonly R8UI: 33330;
                        readonly R16I: 33331;
                        readonly R16UI: 33332;
                        readonly R32I: 33333;
                        readonly R32UI: 33334;
                        readonly RG8I: 33335;
                        readonly RG8UI: 33336;
                        readonly RG16I: 33337;
                        readonly RG16UI: 33338;
                        readonly RG32I: 33339;
                        readonly RG32UI: 33340;
                        readonly VERTEX_ARRAY_BINDING: 34229;
                        readonly R8_SNORM: 36756;
                        readonly RG8_SNORM: 36757;
                        readonly RGB8_SNORM: 36758;
                        readonly RGBA8_SNORM: 36759;
                        readonly SIGNED_NORMALIZED: 36764;
                        readonly COPY_READ_BUFFER: 36662;
                        readonly COPY_WRITE_BUFFER: 36663;
                        readonly COPY_READ_BUFFER_BINDING: 36662;
                        readonly COPY_WRITE_BUFFER_BINDING: 36663;
                        readonly UNIFORM_BUFFER: 35345;
                        readonly UNIFORM_BUFFER_BINDING: 35368;
                        readonly UNIFORM_BUFFER_START: 35369;
                        readonly UNIFORM_BUFFER_SIZE: 35370;
                        readonly MAX_VERTEX_UNIFORM_BLOCKS: 35371;
                        readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 35373;
                        readonly MAX_COMBINED_UNIFORM_BLOCKS: 35374;
                        readonly MAX_UNIFORM_BUFFER_BINDINGS: 35375;
                        readonly MAX_UNIFORM_BLOCK_SIZE: 35376;
                        readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 35377;
                        readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 35379;
                        readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 35380;
                        readonly ACTIVE_UNIFORM_BLOCKS: 35382;
                        readonly UNIFORM_TYPE: 35383;
                        readonly UNIFORM_SIZE: 35384;
                        readonly UNIFORM_BLOCK_INDEX: 35386;
                        readonly UNIFORM_OFFSET: 35387;
                        readonly UNIFORM_ARRAY_STRIDE: 35388;
                        readonly UNIFORM_MATRIX_STRIDE: 35389;
                        readonly UNIFORM_IS_ROW_MAJOR: 35390;
                        readonly UNIFORM_BLOCK_BINDING: 35391;
                        readonly UNIFORM_BLOCK_DATA_SIZE: 35392;
                        readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 35394;
                        readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 35395;
                        readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 35396;
                        readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 35398;
                        readonly INVALID_INDEX: 4294967295;
                        readonly MAX_VERTEX_OUTPUT_COMPONENTS: 37154;
                        readonly MAX_FRAGMENT_INPUT_COMPONENTS: 37157;
                        readonly MAX_SERVER_WAIT_TIMEOUT: 37137;
                        readonly OBJECT_TYPE: 37138;
                        readonly SYNC_CONDITION: 37139;
                        readonly SYNC_STATUS: 37140;
                        readonly SYNC_FLAGS: 37141;
                        readonly SYNC_FENCE: 37142;
                        readonly SYNC_GPU_COMMANDS_COMPLETE: 37143;
                        readonly UNSIGNALED: 37144;
                        readonly SIGNALED: 37145;
                        readonly ALREADY_SIGNALED: 37146;
                        readonly TIMEOUT_EXPIRED: 37147;
                        readonly CONDITION_SATISFIED: 37148;
                        readonly WAIT_FAILED: 37149;
                        readonly SYNC_FLUSH_COMMANDS_BIT: 1;
                        readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 35070;
                        readonly ANY_SAMPLES_PASSED: 35887;
                        readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 36202;
                        readonly SAMPLER_BINDING: 35097;
                        readonly RGB10_A2UI: 36975;
                        readonly INT_2_10_10_10_REV: 36255;
                        readonly TRANSFORM_FEEDBACK: 36386;
                        readonly TRANSFORM_FEEDBACK_PAUSED: 36387;
                        readonly TRANSFORM_FEEDBACK_ACTIVE: 36388;
                        readonly TRANSFORM_FEEDBACK_BINDING: 36389;
                        readonly TEXTURE_IMMUTABLE_FORMAT: 37167;
                        readonly MAX_ELEMENT_INDEX: 36203;
                        readonly TEXTURE_IMMUTABLE_LEVELS: 33503;
                        readonly TIMEOUT_IGNORED: -1;
                        readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 37447;
                        readonly DEPTH_BUFFER_BIT: 256;
                        readonly STENCIL_BUFFER_BIT: 1024;
                        readonly COLOR_BUFFER_BIT: 16384;
                        readonly POINTS: 0;
                        readonly LINES: 1;
                        readonly LINE_LOOP: 2;
                        readonly LINE_STRIP: 3;
                        readonly TRIANGLES: 4;
                        readonly TRIANGLE_STRIP: 5;
                        readonly TRIANGLE_FAN: 6;
                        readonly ZERO: 0;
                        readonly ONE: 1;
                        readonly SRC_COLOR: 768;
                        readonly ONE_MINUS_SRC_COLOR: 769;
                        readonly SRC_ALPHA: 770;
                        readonly ONE_MINUS_SRC_ALPHA: 771;
                        readonly DST_ALPHA: 772;
                        readonly ONE_MINUS_DST_ALPHA: 773;
                        readonly DST_COLOR: 774;
                        readonly ONE_MINUS_DST_COLOR: 775;
                        readonly SRC_ALPHA_SATURATE: 776;
                        readonly FUNC_ADD: 32774;
                        readonly BLEND_EQUATION: 32777;
                        readonly BLEND_EQUATION_RGB: 32777;
                        readonly BLEND_EQUATION_ALPHA: 34877;
                        readonly FUNC_SUBTRACT: 32778;
                        readonly FUNC_REVERSE_SUBTRACT: 32779;
                        readonly BLEND_DST_RGB: 32968;
                        readonly BLEND_SRC_RGB: 32969;
                        readonly BLEND_DST_ALPHA: 32970;
                        readonly BLEND_SRC_ALPHA: 32971;
                        readonly CONSTANT_COLOR: 32769;
                        readonly ONE_MINUS_CONSTANT_COLOR: 32770;
                        readonly CONSTANT_ALPHA: 32771;
                        readonly ONE_MINUS_CONSTANT_ALPHA: 32772;
                        readonly BLEND_COLOR: 32773;
                        readonly ARRAY_BUFFER: 34962;
                        readonly ELEMENT_ARRAY_BUFFER: 34963;
                        readonly ARRAY_BUFFER_BINDING: 34964;
                        readonly ELEMENT_ARRAY_BUFFER_BINDING: 34965;
                        readonly STREAM_DRAW: 35040;
                        readonly STATIC_DRAW: 35044;
                        readonly DYNAMIC_DRAW: 35048;
                        readonly BUFFER_SIZE: 34660;
                        readonly BUFFER_USAGE: 34661;
                        readonly CURRENT_VERTEX_ATTRIB: 34342;
                        readonly FRONT: 1028;
                        readonly BACK: 1029;
                        readonly FRONT_AND_BACK: 1032;
                        readonly CULL_FACE: 2884;
                        readonly BLEND: 3042;
                        readonly DITHER: 3024;
                        readonly STENCIL_TEST: 2960;
                        readonly DEPTH_TEST: 2929;
                        readonly SCISSOR_TEST: 3089;
                        readonly POLYGON_OFFSET_FILL: 32823;
                        readonly SAMPLE_ALPHA_TO_COVERAGE: 32926;
                        readonly SAMPLE_COVERAGE: 32928;
                        readonly NO_ERROR: 0;
                        readonly INVALID_ENUM: 1280;
                        readonly INVALID_VALUE: 1281;
                        readonly INVALID_OPERATION: 1282;
                        readonly OUT_OF_MEMORY: 1285;
                        readonly CW: 2304;
                        readonly CCW: 2305;
                        readonly LINE_WIDTH: 2849;
                        readonly ALIASED_POINT_SIZE_RANGE: 33901;
                        readonly ALIASED_LINE_WIDTH_RANGE: 33902;
                        readonly CULL_FACE_MODE: 2885;
                        readonly FRONT_FACE: 2886;
                        readonly DEPTH_RANGE: 2928;
                        readonly DEPTH_WRITEMASK: 2930;
                        readonly DEPTH_CLEAR_VALUE: 2931;
                        readonly DEPTH_FUNC: 2932;
                        readonly STENCIL_CLEAR_VALUE: 2961;
                        readonly STENCIL_FUNC: 2962;
                        readonly STENCIL_FAIL: 2964;
                        readonly STENCIL_PASS_DEPTH_FAIL: 2965;
                        readonly STENCIL_PASS_DEPTH_PASS: 2966;
                        readonly STENCIL_REF: 2967;
                        readonly STENCIL_VALUE_MASK: 2963;
                        readonly STENCIL_WRITEMASK: 2968;
                        readonly STENCIL_BACK_FUNC: 34816;
                        readonly STENCIL_BACK_FAIL: 34817;
                        readonly STENCIL_BACK_PASS_DEPTH_FAIL: 34818;
                        readonly STENCIL_BACK_PASS_DEPTH_PASS: 34819;
                        readonly STENCIL_BACK_REF: 36003;
                        readonly STENCIL_BACK_VALUE_MASK: 36004;
                        readonly STENCIL_BACK_WRITEMASK: 36005;
                        readonly VIEWPORT: 2978;
                        readonly SCISSOR_BOX: 3088;
                        readonly COLOR_CLEAR_VALUE: 3106;
                        readonly COLOR_WRITEMASK: 3107;
                        readonly UNPACK_ALIGNMENT: 3317;
                        readonly PACK_ALIGNMENT: 3333;
                        readonly MAX_TEXTURE_SIZE: 3379;
                        readonly MAX_VIEWPORT_DIMS: 3386;
                        readonly SUBPIXEL_BITS: 3408;
                        readonly RED_BITS: 3410;
                        readonly GREEN_BITS: 3411;
                        readonly BLUE_BITS: 3412;
                        readonly ALPHA_BITS: 3413;
                        readonly DEPTH_BITS: 3414;
                        readonly STENCIL_BITS: 3415;
                        readonly POLYGON_OFFSET_UNITS: 10752;
                        readonly POLYGON_OFFSET_FACTOR: 32824;
                        readonly TEXTURE_BINDING_2D: 32873;
                        readonly SAMPLE_BUFFERS: 32936;
                        readonly SAMPLES: 32937;
                        readonly SAMPLE_COVERAGE_VALUE: 32938;
                        readonly SAMPLE_COVERAGE_INVERT: 32939;
                        readonly COMPRESSED_TEXTURE_FORMATS: 34467;
                        readonly DONT_CARE: 4352;
                        readonly FASTEST: 4353;
                        readonly NICEST: 4354;
                        readonly GENERATE_MIPMAP_HINT: 33170;
                        readonly BYTE: 5120;
                        readonly UNSIGNED_BYTE: 5121;
                        readonly SHORT: 5122;
                        readonly UNSIGNED_SHORT: 5123;
                        readonly INT: 5124;
                        readonly UNSIGNED_INT: 5125;
                        readonly FLOAT: 5126;
                        readonly DEPTH_COMPONENT: 6402;
                        readonly ALPHA: 6406;
                        readonly RGB: 6407;
                        readonly RGBA: 6408;
                        readonly LUMINANCE: 6409;
                        readonly LUMINANCE_ALPHA: 6410;
                        readonly UNSIGNED_SHORT_4_4_4_4: 32819;
                        readonly UNSIGNED_SHORT_5_5_5_1: 32820;
                        readonly UNSIGNED_SHORT_5_6_5: 33635;
                        readonly FRAGMENT_SHADER: 35632;
                        readonly VERTEX_SHADER: 35633;
                        readonly MAX_VERTEX_ATTRIBS: 34921;
                        readonly MAX_VERTEX_UNIFORM_VECTORS: 36347;
                        readonly MAX_VARYING_VECTORS: 36348;
                        readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661;
                        readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660;
                        readonly MAX_TEXTURE_IMAGE_UNITS: 34930;
                        readonly MAX_FRAGMENT_UNIFORM_VECTORS: 36349;
                        readonly SHADER_TYPE: 35663;
                        readonly DELETE_STATUS: 35712;
                        readonly LINK_STATUS: 35714;
                        readonly VALIDATE_STATUS: 35715;
                        readonly ATTACHED_SHADERS: 35717;
                        readonly ACTIVE_UNIFORMS: 35718;
                        readonly ACTIVE_ATTRIBUTES: 35721;
                        readonly SHADING_LANGUAGE_VERSION: 35724;
                        readonly CURRENT_PROGRAM: 35725;
                        readonly NEVER: 512;
                        readonly LESS: 513;
                        readonly EQUAL: 514;
                        readonly LEQUAL: 515;
                        readonly GREATER: 516;
                        readonly NOTEQUAL: 517;
                        readonly GEQUAL: 518;
                        readonly ALWAYS: 519;
                        readonly KEEP: 7680;
                        readonly REPLACE: 7681;
                        readonly INCR: 7682;
                        readonly DECR: 7683;
                        readonly INVERT: 5386;
                        readonly INCR_WRAP: 34055;
                        readonly DECR_WRAP: 34056;
                        readonly VENDOR: 7936;
                        readonly RENDERER: 7937;
                        readonly VERSION: 7938;
                        readonly NEAREST: 9728;
                        readonly LINEAR: 9729;
                        readonly NEAREST_MIPMAP_NEAREST: 9984;
                        readonly LINEAR_MIPMAP_NEAREST: 9985;
                        readonly NEAREST_MIPMAP_LINEAR: 9986;
                        readonly LINEAR_MIPMAP_LINEAR: 9987;
                        readonly TEXTURE_MAG_FILTER: 10240;
                        readonly TEXTURE_MIN_FILTER: 10241;
                        readonly TEXTURE_WRAP_S: 10242;
                        readonly TEXTURE_WRAP_T: 10243;
                        readonly TEXTURE_2D: 3553;
                        readonly TEXTURE: 5890;
                        readonly TEXTURE_CUBE_MAP: 34067;
                        readonly TEXTURE_BINDING_CUBE_MAP: 34068;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_X: 34069;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 34070;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 34071;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 34073;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074;
                        readonly MAX_CUBE_MAP_TEXTURE_SIZE: 34076;
                        readonly TEXTURE0: 33984;
                        readonly TEXTURE1: 33985;
                        readonly TEXTURE2: 33986;
                        readonly TEXTURE3: 33987;
                        readonly TEXTURE4: 33988;
                        readonly TEXTURE5: 33989;
                        readonly TEXTURE6: 33990;
                        readonly TEXTURE7: 33991;
                        readonly TEXTURE8: 33992;
                        readonly TEXTURE9: 33993;
                        readonly TEXTURE10: 33994;
                        readonly TEXTURE11: 33995;
                        readonly TEXTURE12: 33996;
                        readonly TEXTURE13: 33997;
                        readonly TEXTURE14: 33998;
                        readonly TEXTURE15: 33999;
                        readonly TEXTURE16: 34000;
                        readonly TEXTURE17: 34001;
                        readonly TEXTURE18: 34002;
                        readonly TEXTURE19: 34003;
                        readonly TEXTURE20: 34004;
                        readonly TEXTURE21: 34005;
                        readonly TEXTURE22: 34006;
                        readonly TEXTURE23: 34007;
                        readonly TEXTURE24: 34008;
                        readonly TEXTURE25: 34009;
                        readonly TEXTURE26: 34010;
                        readonly TEXTURE27: 34011;
                        readonly TEXTURE28: 34012;
                        readonly TEXTURE29: 34013;
                        readonly TEXTURE30: 34014;
                        readonly TEXTURE31: 34015;
                        readonly ACTIVE_TEXTURE: 34016;
                        readonly REPEAT: 10497;
                        readonly CLAMP_TO_EDGE: 33071;
                        readonly MIRRORED_REPEAT: 33648;
                        readonly FLOAT_VEC2: 35664;
                        readonly FLOAT_VEC3: 35665;
                        readonly FLOAT_VEC4: 35666;
                        readonly INT_VEC2: 35667;
                        readonly INT_VEC3: 35668;
                        readonly INT_VEC4: 35669;
                        readonly BOOL: 35670;
                        readonly BOOL_VEC2: 35671;
                        readonly BOOL_VEC3: 35672;
                        readonly BOOL_VEC4: 35673;
                        readonly FLOAT_MAT2: 35674;
                        readonly FLOAT_MAT3: 35675;
                        readonly FLOAT_MAT4: 35676;
                        readonly SAMPLER_2D: 35678;
                        readonly SAMPLER_CUBE: 35680;
                        readonly VERTEX_ATTRIB_ARRAY_ENABLED: 34338;
                        readonly VERTEX_ATTRIB_ARRAY_SIZE: 34339;
                        readonly VERTEX_ATTRIB_ARRAY_STRIDE: 34340;
                        readonly VERTEX_ATTRIB_ARRAY_TYPE: 34341;
                        readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922;
                        readonly VERTEX_ATTRIB_ARRAY_POINTER: 34373;
                        readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975;
                        readonly IMPLEMENTATION_COLOR_READ_TYPE: 35738;
                        readonly IMPLEMENTATION_COLOR_READ_FORMAT: 35739;
                        readonly COMPILE_STATUS: 35713;
                        readonly LOW_FLOAT: 36336;
                        readonly MEDIUM_FLOAT: 36337;
                        readonly HIGH_FLOAT: 36338;
                        readonly LOW_INT: 36339;
                        readonly MEDIUM_INT: 36340;
                        readonly HIGH_INT: 36341;
                        readonly FRAMEBUFFER: 36160;
                        readonly RENDERBUFFER: 36161;
                        readonly RGBA4: 32854;
                        readonly RGB5_A1: 32855;
                        readonly RGBA8: 32856;
                        readonly RGB565: 36194;
                        readonly DEPTH_COMPONENT16: 33189;
                        readonly STENCIL_INDEX8: 36168;
                        readonly DEPTH_STENCIL: 34041;
                        readonly RENDERBUFFER_WIDTH: 36162;
                        readonly RENDERBUFFER_HEIGHT: 36163;
                        readonly RENDERBUFFER_INTERNAL_FORMAT: 36164;
                        readonly RENDERBUFFER_RED_SIZE: 36176;
                        readonly RENDERBUFFER_GREEN_SIZE: 36177;
                        readonly RENDERBUFFER_BLUE_SIZE: 36178;
                        readonly RENDERBUFFER_ALPHA_SIZE: 36179;
                        readonly RENDERBUFFER_DEPTH_SIZE: 36180;
                        readonly RENDERBUFFER_STENCIL_SIZE: 36181;
                        readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048;
                        readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051;
                        readonly COLOR_ATTACHMENT0: 36064;
                        readonly DEPTH_ATTACHMENT: 36096;
                        readonly STENCIL_ATTACHMENT: 36128;
                        readonly DEPTH_STENCIL_ATTACHMENT: 33306;
                        readonly NONE: 0;
                        readonly FRAMEBUFFER_COMPLETE: 36053;
                        readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054;
                        readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055;
                        readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057;
                        readonly FRAMEBUFFER_UNSUPPORTED: 36061;
                        readonly FRAMEBUFFER_BINDING: 36006;
                        readonly RENDERBUFFER_BINDING: 36007;
                        readonly MAX_RENDERBUFFER_SIZE: 34024;
                        readonly INVALID_FRAMEBUFFER_OPERATION: 1286;
                        readonly UNPACK_FLIP_Y_WEBGL: 37440;
                        readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441;
                        readonly CONTEXT_LOST_WEBGL: 37442;
                        readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443;
                        readonly BROWSER_DEFAULT_WEBGL: 37444;
                    };
                    WebGLActiveInfo: {
                        prototype: WebGLActiveInfo;
                        new (): WebGLActiveInfo;
                    };
                    WebGLBuffer: {
                        prototype: WebGLBuffer;
                        new (): WebGLBuffer;
                    };
                    WebGLContextEvent: {
                        prototype: WebGLContextEvent;
                        new (type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;
                    };
                    WebGLFramebuffer: {
                        prototype: WebGLFramebuffer;
                        new (): WebGLFramebuffer;
                    };
                    WebGLProgram: {
                        prototype: WebGLProgram;
                        new (): WebGLProgram;
                    };
                    WebGLQuery: {
                        prototype: WebGLQuery;
                        new (): WebGLQuery;
                    };
                    WebGLRenderbuffer: {
                        prototype: WebGLRenderbuffer;
                        new (): WebGLRenderbuffer;
                    };
                    WebGLRenderingContext: {
                        prototype: WebGLRenderingContext;
                        new (): WebGLRenderingContext;
                        readonly DEPTH_BUFFER_BIT: 256;
                        readonly STENCIL_BUFFER_BIT: 1024;
                        readonly COLOR_BUFFER_BIT: 16384;
                        readonly POINTS: 0;
                        readonly LINES: 1;
                        readonly LINE_LOOP: 2;
                        readonly LINE_STRIP: 3;
                        readonly TRIANGLES: 4;
                        readonly TRIANGLE_STRIP: 5;
                        readonly TRIANGLE_FAN: 6;
                        readonly ZERO: 0;
                        readonly ONE: 1;
                        readonly SRC_COLOR: 768;
                        readonly ONE_MINUS_SRC_COLOR: 769;
                        readonly SRC_ALPHA: 770;
                        readonly ONE_MINUS_SRC_ALPHA: 771;
                        readonly DST_ALPHA: 772;
                        readonly ONE_MINUS_DST_ALPHA: 773;
                        readonly DST_COLOR: 774;
                        readonly ONE_MINUS_DST_COLOR: 775;
                        readonly SRC_ALPHA_SATURATE: 776;
                        readonly FUNC_ADD: 32774;
                        readonly BLEND_EQUATION: 32777;
                        readonly BLEND_EQUATION_RGB: 32777;
                        readonly BLEND_EQUATION_ALPHA: 34877;
                        readonly FUNC_SUBTRACT: 32778;
                        readonly FUNC_REVERSE_SUBTRACT: 32779;
                        readonly BLEND_DST_RGB: 32968;
                        readonly BLEND_SRC_RGB: 32969;
                        readonly BLEND_DST_ALPHA: 32970;
                        readonly BLEND_SRC_ALPHA: 32971;
                        readonly CONSTANT_COLOR: 32769;
                        readonly ONE_MINUS_CONSTANT_COLOR: 32770;
                        readonly CONSTANT_ALPHA: 32771;
                        readonly ONE_MINUS_CONSTANT_ALPHA: 32772;
                        readonly BLEND_COLOR: 32773;
                        readonly ARRAY_BUFFER: 34962;
                        readonly ELEMENT_ARRAY_BUFFER: 34963;
                        readonly ARRAY_BUFFER_BINDING: 34964;
                        readonly ELEMENT_ARRAY_BUFFER_BINDING: 34965;
                        readonly STREAM_DRAW: 35040;
                        readonly STATIC_DRAW: 35044;
                        readonly DYNAMIC_DRAW: 35048;
                        readonly BUFFER_SIZE: 34660;
                        readonly BUFFER_USAGE: 34661;
                        readonly CURRENT_VERTEX_ATTRIB: 34342;
                        readonly FRONT: 1028;
                        readonly BACK: 1029;
                        readonly FRONT_AND_BACK: 1032;
                        readonly CULL_FACE: 2884;
                        readonly BLEND: 3042;
                        readonly DITHER: 3024;
                        readonly STENCIL_TEST: 2960;
                        readonly DEPTH_TEST: 2929;
                        readonly SCISSOR_TEST: 3089;
                        readonly POLYGON_OFFSET_FILL: 32823;
                        readonly SAMPLE_ALPHA_TO_COVERAGE: 32926;
                        readonly SAMPLE_COVERAGE: 32928;
                        readonly NO_ERROR: 0;
                        readonly INVALID_ENUM: 1280;
                        readonly INVALID_VALUE: 1281;
                        readonly INVALID_OPERATION: 1282;
                        readonly OUT_OF_MEMORY: 1285;
                        readonly CW: 2304;
                        readonly CCW: 2305;
                        readonly LINE_WIDTH: 2849;
                        readonly ALIASED_POINT_SIZE_RANGE: 33901;
                        readonly ALIASED_LINE_WIDTH_RANGE: 33902;
                        readonly CULL_FACE_MODE: 2885;
                        readonly FRONT_FACE: 2886;
                        readonly DEPTH_RANGE: 2928;
                        readonly DEPTH_WRITEMASK: 2930;
                        readonly DEPTH_CLEAR_VALUE: 2931;
                        readonly DEPTH_FUNC: 2932;
                        readonly STENCIL_CLEAR_VALUE: 2961;
                        readonly STENCIL_FUNC: 2962;
                        readonly STENCIL_FAIL: 2964;
                        readonly STENCIL_PASS_DEPTH_FAIL: 2965;
                        readonly STENCIL_PASS_DEPTH_PASS: 2966;
                        readonly STENCIL_REF: 2967;
                        readonly STENCIL_VALUE_MASK: 2963;
                        readonly STENCIL_WRITEMASK: 2968;
                        readonly STENCIL_BACK_FUNC: 34816;
                        readonly STENCIL_BACK_FAIL: 34817;
                        readonly STENCIL_BACK_PASS_DEPTH_FAIL: 34818;
                        readonly STENCIL_BACK_PASS_DEPTH_PASS: 34819;
                        readonly STENCIL_BACK_REF: 36003;
                        readonly STENCIL_BACK_VALUE_MASK: 36004;
                        readonly STENCIL_BACK_WRITEMASK: 36005;
                        readonly VIEWPORT: 2978;
                        readonly SCISSOR_BOX: 3088;
                        readonly COLOR_CLEAR_VALUE: 3106;
                        readonly COLOR_WRITEMASK: 3107;
                        readonly UNPACK_ALIGNMENT: 3317;
                        readonly PACK_ALIGNMENT: 3333;
                        readonly MAX_TEXTURE_SIZE: 3379;
                        readonly MAX_VIEWPORT_DIMS: 3386;
                        readonly SUBPIXEL_BITS: 3408;
                        readonly RED_BITS: 3410;
                        readonly GREEN_BITS: 3411;
                        readonly BLUE_BITS: 3412;
                        readonly ALPHA_BITS: 3413;
                        readonly DEPTH_BITS: 3414;
                        readonly STENCIL_BITS: 3415;
                        readonly POLYGON_OFFSET_UNITS: 10752;
                        readonly POLYGON_OFFSET_FACTOR: 32824;
                        readonly TEXTURE_BINDING_2D: 32873;
                        readonly SAMPLE_BUFFERS: 32936;
                        readonly SAMPLES: 32937;
                        readonly SAMPLE_COVERAGE_VALUE: 32938;
                        readonly SAMPLE_COVERAGE_INVERT: 32939;
                        readonly COMPRESSED_TEXTURE_FORMATS: 34467;
                        readonly DONT_CARE: 4352;
                        readonly FASTEST: 4353;
                        readonly NICEST: 4354;
                        readonly GENERATE_MIPMAP_HINT: 33170;
                        readonly BYTE: 5120;
                        readonly UNSIGNED_BYTE: 5121;
                        readonly SHORT: 5122;
                        readonly UNSIGNED_SHORT: 5123;
                        readonly INT: 5124;
                        readonly UNSIGNED_INT: 5125;
                        readonly FLOAT: 5126;
                        readonly DEPTH_COMPONENT: 6402;
                        readonly ALPHA: 6406;
                        readonly RGB: 6407;
                        readonly RGBA: 6408;
                        readonly LUMINANCE: 6409;
                        readonly LUMINANCE_ALPHA: 6410;
                        readonly UNSIGNED_SHORT_4_4_4_4: 32819;
                        readonly UNSIGNED_SHORT_5_5_5_1: 32820;
                        readonly UNSIGNED_SHORT_5_6_5: 33635;
                        readonly FRAGMENT_SHADER: 35632;
                        readonly VERTEX_SHADER: 35633;
                        readonly MAX_VERTEX_ATTRIBS: 34921;
                        readonly MAX_VERTEX_UNIFORM_VECTORS: 36347;
                        readonly MAX_VARYING_VECTORS: 36348;
                        readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661;
                        readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660;
                        readonly MAX_TEXTURE_IMAGE_UNITS: 34930;
                        readonly MAX_FRAGMENT_UNIFORM_VECTORS: 36349;
                        readonly SHADER_TYPE: 35663;
                        readonly DELETE_STATUS: 35712;
                        readonly LINK_STATUS: 35714;
                        readonly VALIDATE_STATUS: 35715;
                        readonly ATTACHED_SHADERS: 35717;
                        readonly ACTIVE_UNIFORMS: 35718;
                        readonly ACTIVE_ATTRIBUTES: 35721;
                        readonly SHADING_LANGUAGE_VERSION: 35724;
                        readonly CURRENT_PROGRAM: 35725;
                        readonly NEVER: 512;
                        readonly LESS: 513;
                        readonly EQUAL: 514;
                        readonly LEQUAL: 515;
                        readonly GREATER: 516;
                        readonly NOTEQUAL: 517;
                        readonly GEQUAL: 518;
                        readonly ALWAYS: 519;
                        readonly KEEP: 7680;
                        readonly REPLACE: 7681;
                        readonly INCR: 7682;
                        readonly DECR: 7683;
                        readonly INVERT: 5386;
                        readonly INCR_WRAP: 34055;
                        readonly DECR_WRAP: 34056;
                        readonly VENDOR: 7936;
                        readonly RENDERER: 7937;
                        readonly VERSION: 7938;
                        readonly NEAREST: 9728;
                        readonly LINEAR: 9729;
                        readonly NEAREST_MIPMAP_NEAREST: 9984;
                        readonly LINEAR_MIPMAP_NEAREST: 9985;
                        readonly NEAREST_MIPMAP_LINEAR: 9986;
                        readonly LINEAR_MIPMAP_LINEAR: 9987;
                        readonly TEXTURE_MAG_FILTER: 10240;
                        readonly TEXTURE_MIN_FILTER: 10241;
                        readonly TEXTURE_WRAP_S: 10242;
                        readonly TEXTURE_WRAP_T: 10243;
                        readonly TEXTURE_2D: 3553;
                        readonly TEXTURE: 5890;
                        readonly TEXTURE_CUBE_MAP: 34067;
                        readonly TEXTURE_BINDING_CUBE_MAP: 34068;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_X: 34069;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 34070;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 34071;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 34073;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074;
                        readonly MAX_CUBE_MAP_TEXTURE_SIZE: 34076;
                        readonly TEXTURE0: 33984;
                        readonly TEXTURE1: 33985;
                        readonly TEXTURE2: 33986;
                        readonly TEXTURE3: 33987;
                        readonly TEXTURE4: 33988;
                        readonly TEXTURE5: 33989;
                        readonly TEXTURE6: 33990;
                        readonly TEXTURE7: 33991;
                        readonly TEXTURE8: 33992;
                        readonly TEXTURE9: 33993;
                        readonly TEXTURE10: 33994;
                        readonly TEXTURE11: 33995;
                        readonly TEXTURE12: 33996;
                        readonly TEXTURE13: 33997;
                        readonly TEXTURE14: 33998;
                        readonly TEXTURE15: 33999;
                        readonly TEXTURE16: 34000;
                        readonly TEXTURE17: 34001;
                        readonly TEXTURE18: 34002;
                        readonly TEXTURE19: 34003;
                        readonly TEXTURE20: 34004;
                        readonly TEXTURE21: 34005;
                        readonly TEXTURE22: 34006;
                        readonly TEXTURE23: 34007;
                        readonly TEXTURE24: 34008;
                        readonly TEXTURE25: 34009;
                        readonly TEXTURE26: 34010;
                        readonly TEXTURE27: 34011;
                        readonly TEXTURE28: 34012;
                        readonly TEXTURE29: 34013;
                        readonly TEXTURE30: 34014;
                        readonly TEXTURE31: 34015;
                        readonly ACTIVE_TEXTURE: 34016;
                        readonly REPEAT: 10497;
                        readonly CLAMP_TO_EDGE: 33071;
                        readonly MIRRORED_REPEAT: 33648;
                        readonly FLOAT_VEC2: 35664;
                        readonly FLOAT_VEC3: 35665;
                        readonly FLOAT_VEC4: 35666;
                        readonly INT_VEC2: 35667;
                        readonly INT_VEC3: 35668;
                        readonly INT_VEC4: 35669;
                        readonly BOOL: 35670;
                        readonly BOOL_VEC2: 35671;
                        readonly BOOL_VEC3: 35672;
                        readonly BOOL_VEC4: 35673;
                        readonly FLOAT_MAT2: 35674;
                        readonly FLOAT_MAT3: 35675;
                        readonly FLOAT_MAT4: 35676;
                        readonly SAMPLER_2D: 35678;
                        readonly SAMPLER_CUBE: 35680;
                        readonly VERTEX_ATTRIB_ARRAY_ENABLED: 34338;
                        readonly VERTEX_ATTRIB_ARRAY_SIZE: 34339;
                        readonly VERTEX_ATTRIB_ARRAY_STRIDE: 34340;
                        readonly VERTEX_ATTRIB_ARRAY_TYPE: 34341;
                        readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922;
                        readonly VERTEX_ATTRIB_ARRAY_POINTER: 34373;
                        readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975;
                        readonly IMPLEMENTATION_COLOR_READ_TYPE: 35738;
                        readonly IMPLEMENTATION_COLOR_READ_FORMAT: 35739;
                        readonly COMPILE_STATUS: 35713;
                        readonly LOW_FLOAT: 36336;
                        readonly MEDIUM_FLOAT: 36337;
                        readonly HIGH_FLOAT: 36338;
                        readonly LOW_INT: 36339;
                        readonly MEDIUM_INT: 36340;
                        readonly HIGH_INT: 36341;
                        readonly FRAMEBUFFER: 36160;
                        readonly RENDERBUFFER: 36161;
                        readonly RGBA4: 32854;
                        readonly RGB5_A1: 32855;
                        readonly RGBA8: 32856;
                        readonly RGB565: 36194;
                        readonly DEPTH_COMPONENT16: 33189;
                        readonly STENCIL_INDEX8: 36168;
                        readonly DEPTH_STENCIL: 34041;
                        readonly RENDERBUFFER_WIDTH: 36162;
                        readonly RENDERBUFFER_HEIGHT: 36163;
                        readonly RENDERBUFFER_INTERNAL_FORMAT: 36164;
                        readonly RENDERBUFFER_RED_SIZE: 36176;
                        readonly RENDERBUFFER_GREEN_SIZE: 36177;
                        readonly RENDERBUFFER_BLUE_SIZE: 36178;
                        readonly RENDERBUFFER_ALPHA_SIZE: 36179;
                        readonly RENDERBUFFER_DEPTH_SIZE: 36180;
                        readonly RENDERBUFFER_STENCIL_SIZE: 36181;
                        readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048;
                        readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051;
                        readonly COLOR_ATTACHMENT0: 36064;
                        readonly DEPTH_ATTACHMENT: 36096;
                        readonly STENCIL_ATTACHMENT: 36128;
                        readonly DEPTH_STENCIL_ATTACHMENT: 33306;
                        readonly NONE: 0;
                        readonly FRAMEBUFFER_COMPLETE: 36053;
                        readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054;
                        readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055;
                        readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057;
                        readonly FRAMEBUFFER_UNSUPPORTED: 36061;
                        readonly FRAMEBUFFER_BINDING: 36006;
                        readonly RENDERBUFFER_BINDING: 36007;
                        readonly MAX_RENDERBUFFER_SIZE: 34024;
                        readonly INVALID_FRAMEBUFFER_OPERATION: 1286;
                        readonly UNPACK_FLIP_Y_WEBGL: 37440;
                        readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441;
                        readonly CONTEXT_LOST_WEBGL: 37442;
                        readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443;
                        readonly BROWSER_DEFAULT_WEBGL: 37444;
                    };
                    WebGLSampler: {
                        prototype: WebGLSampler;
                        new (): WebGLSampler;
                    };
                    WebGLShader: {
                        prototype: WebGLShader;
                        new (): WebGLShader;
                    };
                    WebGLShaderPrecisionFormat: {
                        prototype: WebGLShaderPrecisionFormat;
                        new (): WebGLShaderPrecisionFormat;
                    };
                    WebGLSync: {
                        prototype: WebGLSync;
                        new (): WebGLSync;
                    };
                    WebGLTexture: {
                        prototype: WebGLTexture;
                        new (): WebGLTexture;
                    };
                    WebGLTransformFeedback: {
                        prototype: WebGLTransformFeedback;
                        new (): WebGLTransformFeedback;
                    };
                    WebGLUniformLocation: {
                        prototype: WebGLUniformLocation;
                        new (): WebGLUniformLocation;
                    };
                    WebGLVertexArrayObject: {
                        prototype: WebGLVertexArrayObject;
                        new (): WebGLVertexArrayObject;
                    };
                    WebSocket: {
                        prototype: WebSocket;
                        new (url: string | URL, protocols?: string | string[]): WebSocket;
                        readonly CONNECTING: 0;
                        readonly OPEN: 1;
                        readonly CLOSING: 2;
                        readonly CLOSED: 3;
                    };
                    WebTransport: {
                        prototype: WebTransport;
                        new (url: string | URL, options?: WebTransportOptions): WebTransport;
                    };
                    WebTransportBidirectionalStream: {
                        prototype: WebTransportBidirectionalStream;
                        new (): WebTransportBidirectionalStream;
                    };
                    WebTransportDatagramDuplexStream: {
                        prototype: WebTransportDatagramDuplexStream;
                        new (): WebTransportDatagramDuplexStream;
                    };
                    WebTransportError: {
                        prototype: WebTransportError;
                        new (message?: string, options?: WebTransportErrorOptions): WebTransportError;
                    };
                    WheelEvent: {
                        prototype: WheelEvent;
                        new (type: string, eventInitDict?: WheelEventInit): WheelEvent;
                        readonly DOM_DELTA_PIXEL: 0;
                        readonly DOM_DELTA_LINE: 1;
                        readonly DOM_DELTA_PAGE: 2;
                    };
                    Window: {
                        prototype: Window;
                        new (): Window;
                    };
                    Worker: {
                        prototype: Worker;
                        new (scriptURL: string | URL, options?: WorkerOptions): Worker;
                    };
                    Worklet: {
                        prototype: Worklet;
                        new (): Worklet;
                    };
                    WritableStream: {
                        prototype: WritableStream;
                        new <W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
                    };
                    WritableStreamDefaultController: {
                        prototype: WritableStreamDefaultController;
                        new (): WritableStreamDefaultController;
                    };
                    WritableStreamDefaultWriter: {
                        prototype: WritableStreamDefaultWriter;
                        new <W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
                    };
                    XMLDocument: {
                        prototype: XMLDocument;
                        new (): XMLDocument;
                    };
                    XMLHttpRequest: {
                        prototype: XMLHttpRequest;
                        new (): XMLHttpRequest;
                        readonly UNSENT: 0;
                        readonly OPENED: 1;
                        readonly HEADERS_RECEIVED: 2;
                        readonly LOADING: 3;
                        readonly DONE: 4;
                    };
                    XMLHttpRequestEventTarget: {
                        prototype: XMLHttpRequestEventTarget;
                        new (): XMLHttpRequestEventTarget;
                    };
                    XMLHttpRequestUpload: {
                        prototype: XMLHttpRequestUpload;
                        new (): XMLHttpRequestUpload;
                    };
                    XMLSerializer: {
                        prototype: XMLSerializer;
                        new (): XMLSerializer;
                    };
                    XPathEvaluator: {
                        prototype: XPathEvaluator;
                        new (): XPathEvaluator;
                    };
                    XPathExpression: {
                        prototype: XPathExpression;
                        new (): XPathExpression;
                    };
                    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;
                    };
                    XSLTProcessor: {
                        prototype: XSLTProcessor;
                        new (): XSLTProcessor;
                    };
                    console: {
                        assert: (condition?: boolean, ...data: any[]) => void;
                        clear: () => void;
                        count: (label?: string) => void;
                        countReset: (label?: string) => void;
                        debug: (...data: any[]) => void;
                        dir: (item?: any, options?: any) => void;
                        dirxml: (...data: any[]) => void;
                        error: (...data: any[]) => void;
                        group: (...data: any[]) => void;
                        groupCollapsed: (...data: any[]) => void;
                        groupEnd: () => void;
                        info: (...data: any[]) => void;
                        log: (...data: any[]) => void;
                        table: (tabularData?: any, properties?: string[]) => void;
                        time: (label?: string) => void;
                        timeEnd: (label?: string) => void;
                        timeLog: (label?: string, ...data: any[]) => void;
                        timeStamp: (label?: string) => void;
                        trace: (...data: any[]) => void;
                        warn: (...data: any[]) => void;
                    };
                    CSS: {
                        Hz: typeof CSS.Hz;
                        Q: typeof CSS.Q;
                        cap: typeof CSS.cap;
                        ch: typeof CSS.ch;
                        cm: typeof CSS.cm;
                        cqb: typeof CSS.cqb;
                        cqh: typeof CSS.cqh;
                        cqi: typeof CSS.cqi;
                        cqmax: typeof CSS.cqmax;
                        cqmin: typeof CSS.cqmin;
                        cqw: typeof CSS.cqw;
                        deg: typeof CSS.deg;
                        dpcm: typeof CSS.dpcm;
                        dpi: typeof CSS.dpi;
                        dppx: typeof CSS.dppx;
                        dvb: typeof CSS.dvb;
                        dvh: typeof CSS.dvh;
                        dvi: typeof CSS.dvi;
                        dvmax: typeof CSS.dvmax;
                        dvmin: typeof CSS.dvmin;
                        dvw: typeof CSS.dvw;
                        em: typeof CSS.em;
                        escape: typeof CSS.escape;
                        ex: typeof CSS.ex;
                        fr: typeof CSS.fr;
                        grad: typeof CSS.grad;
                        ic: typeof CSS.ic;
                        kHz: typeof CSS.kHz;
                        lh: typeof CSS.lh;
                        lvb: typeof CSS.lvb;
                        lvh: typeof CSS.lvh;
                        lvi: typeof CSS.lvi;
                        lvmax: typeof CSS.lvmax;
                        lvmin: typeof CSS.lvmin;
                        lvw: typeof CSS.lvw;
                        mm: typeof CSS.mm;
                        ms: typeof CSS.ms;
                        number: typeof CSS.number;
                        pc: typeof CSS.pc;
                        percent: typeof CSS.percent;
                        pt: typeof CSS.pt;
                        px: typeof CSS.px;
                        rad: typeof CSS.rad;
                        rcap: typeof CSS.rcap;
                        rch: typeof CSS.rch;
                        registerProperty: typeof CSS.registerProperty;
                        rem: typeof CSS.rem;
                        rex: typeof CSS.rex;
                        ric: typeof CSS.ric;
                        rlh: typeof CSS.rlh;
                        s: typeof CSS.s;
                        supports: typeof CSS.supports;
                        svb: typeof CSS.svb;
                        svh: typeof CSS.svh;
                        svi: typeof CSS.svi;
                        svmax: typeof CSS.svmax;
                        svmin: typeof CSS.svmin;
                        svw: typeof CSS.svw;
                        turn: typeof CSS.turn;
                        vb: typeof CSS.vb;
                        vh: typeof CSS.vh;
                        vi: typeof CSS.vi;
                        vmax: typeof CSS.vmax;
                        vmin: typeof CSS.vmin;
                        vw: typeof CSS.vw;
                        highlights: {
                            forEach: (callbackfn: (value: Highlight, key: string, parent: HighlightRegistry) => void, thisArg?: any) => void;
                        };
                    };
                    WebAssembly: {
                        compile: typeof WebAssembly.compile;
                        compileStreaming: typeof WebAssembly.compileStreaming;
                        instantiate: typeof WebAssembly.instantiate;
                        instantiateStreaming: typeof WebAssembly.instantiateStreaming;
                        validate: typeof WebAssembly.validate;
                        CompileError: {
                            prototype: WebAssembly.CompileError;
                            new (message?: string): WebAssembly.CompileError;
                            (message?: string): WebAssembly.CompileError;
                        };
                        Global: {
                            prototype: WebAssembly.Global;
                            new <T extends WebAssembly.ValueType = WebAssembly.ValueType>(descriptor: WebAssembly.GlobalDescriptor<T>, v?: WebAssembly.ValueTypeMap[T]): WebAssembly.Global<T>;
                        };
                        Instance: {
                            prototype: WebAssembly.Instance;
                            new (module: WebAssembly.Module, importObject?: WebAssembly.Imports): WebAssembly.Instance;
                        };
                        LinkError: {
                            prototype: WebAssembly.LinkError;
                            new (message?: string): WebAssembly.LinkError;
                            (message?: string): WebAssembly.LinkError;
                        };
                        Memory: {
                            prototype: WebAssembly.Memory;
                            new (descriptor: WebAssembly.MemoryDescriptor): WebAssembly.Memory;
                        };
                        Module: {
                            prototype: WebAssembly.Module;
                            new (bytes: BufferSource): WebAssembly.Module;
                            customSections(moduleObject: WebAssembly.Module, sectionName: string): ArrayBuffer[];
                            exports(moduleObject: WebAssembly.Module): WebAssembly.ModuleExportDescriptor[];
                            imports(moduleObject: WebAssembly.Module): WebAssembly.ModuleImportDescriptor[];
                        };
                        RuntimeError: {
                            prototype: WebAssembly.RuntimeError;
                            new (message?: string): WebAssembly.RuntimeError;
                            (message?: string): WebAssembly.RuntimeError;
                        };
                        Table: {
                            prototype: WebAssembly.Table;
                            new (descriptor: WebAssembly.TableDescriptor, value?: any): WebAssembly.Table;
                        };
                    };
                    Audio: {
                        new (src?: string): HTMLAudioElement;
                    };
                    Image: {
                        new (width?: number, height?: number): HTMLImageElement;
                    };
                    Option: {
                        new (text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;
                    };
                    Map: MapConstructor;
                    WeakMap: WeakMapConstructor;
                    Set: SetConstructor;
                    WeakSet: WeakSetConstructor;
                    Iterator: IteratorConstructor;
                    Proxy: ProxyConstructor;
                    Reflect: {
                        apply: typeof Reflect.apply;
                        construct: typeof Reflect.construct;
                        defineProperty: typeof Reflect.defineProperty;
                        deleteProperty: typeof Reflect.deleteProperty;
                        get: typeof Reflect.get;
                        getOwnPropertyDescriptor: typeof Reflect.getOwnPropertyDescriptor;
                        getPrototypeOf: typeof Reflect.getPrototypeOf;
                        has: typeof Reflect.has;
                        isExtensible: typeof Reflect.isExtensible;
                        ownKeys: typeof Reflect.ownKeys;
                        preventExtensions: typeof Reflect.preventExtensions;
                        set: typeof Reflect.set;
                        setPrototypeOf: typeof Reflect.setPrototypeOf;
                    };
                    SharedArrayBuffer: SharedArrayBufferConstructor;
                    Atomics: {
                        add: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        and: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        compareExchange: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, expectedValue: number, replacementValue: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, expectedValue: bigint, replacementValue: bigint): bigint;
                        };
                        exchange: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        isLockFree: (size: number) => boolean;
                        load: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number): bigint;
                        };
                        or: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        store: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        sub: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        wait: {
                            (typedArray: Int32Array<ArrayBufferLike>, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out";
                            (typedArray: BigInt64Array<ArrayBufferLike>, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out";
                        };
                        notify: {
                            (typedArray: Int32Array<ArrayBufferLike>, index: number, count?: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike>, index: number, count?: number): number;
                        };
                        xor: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        waitAsync: {
                            (typedArray: Int32Array, index: number, value: number, timeout?: number): {
                                async: false;
                                value: "not-equal" | "timed-out";
                            } | {
                                async: true;
                                value: Promise<"ok" | "timed-out">;
                            };
                            (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): {
                                async: false;
                                value: "not-equal" | "timed-out";
                            } | {
                                async: true;
                                value: Promise<"ok" | "timed-out">;
                            };
                        };
                        readonly [Symbol.toStringTag]: "Atomics";
                    };
                    BigInt: BigIntConstructor;
                    BigInt64Array: BigInt64ArrayConstructor;
                    BigUint64Array: BigUint64ArrayConstructor;
                    AggregateError: AggregateErrorConstructor;
                    WeakRef: WeakRefConstructor;
                    FinalizationRegistry: FinalizationRegistryConstructor;
                    SuppressedError: SuppressedErrorConstructor;
                    DisposableStack: DisposableStackConstructor;
                    AsyncDisposableStack: AsyncDisposableStackConstructor;
                    Float16Array: Float16ArrayConstructor;
                    unsafeWindow: /*elided*/ any;
                    undefined: undefined;
                };
                readonly speechSynthesis: {
                    onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;
                    readonly paused: boolean;
                    readonly pending: boolean;
                    readonly speaking: boolean;
                    cancel: () => void;
                    getVoices: () => SpeechSynthesisVoice[];
                    pause: () => void;
                    resume: () => void;
                    speak: (utterance: SpeechSynthesisUtterance) => void;
                    addEventListener: {
                        <K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                        (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;
                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                    };
                    dispatchEvent: (event: Event) => boolean;
                };
                status: string;
                readonly statusbar: {
                    readonly visible: boolean;
                };
                readonly toolbar: {
                    readonly visible: boolean;
                };
                readonly top: /*elided*/ any | null;
                readonly visualViewport: {
                    readonly height: number;
                    readonly offsetLeft: number;
                    readonly offsetTop: number;
                    onresize: ((this: VisualViewport, ev: Event) => any) | null;
                    onscroll: ((this: VisualViewport, ev: Event) => any) | null;
                    readonly pageLeft: number;
                    readonly pageTop: number;
                    readonly scale: number;
                    readonly width: number;
                    addEventListener: {
                        <K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                        (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;
                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                    };
                    dispatchEvent: (event: Event) => boolean;
                } | null;
                readonly window: {
                    [x: number]: /*elided*/ any;
                    clientInformation: {
                        readonly clipboard: {
                            read: () => Promise<ClipboardItems>;
                            readText: () => Promise<string>;
                            write: (data: ClipboardItems) => Promise<void>;
                            writeText: (data: string) => Promise<void>;
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        };
                        readonly credentials: {
                            create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                            get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                            preventSilentAccess: () => Promise<void>;
                            store: (credential: Credential) => Promise<void>;
                        };
                        readonly doNotTrack: string | null;
                        readonly geolocation: {
                            clearWatch: (watchId: number) => void;
                            getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                            watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                        };
                        readonly maxTouchPoints: number;
                        readonly mediaCapabilities: {
                            decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                            encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                        };
                        readonly mediaDevices: {
                            ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                            enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                            getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                            getSupportedConstraints: () => MediaTrackSupportedConstraints;
                            getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                            addEventListener: {
                                <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly mediaSession: {
                            metadata: {
                                album: string;
                                artist: string;
                                artwork: readonly {
                                    sizes: string;
                                    src: string;
                                    type: string;
                                }[];
                                title: string;
                            } | null;
                            playbackState: MediaSessionPlaybackState;
                            setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                            setPositionState: (state?: MediaPositionState) => void;
                        };
                        readonly permissions: {
                            query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                        };
                        readonly serviceWorker: {
                            readonly controller: {
                                onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                                readonly scriptURL: string;
                                readonly state: ServiceWorkerState;
                                postMessage: {
                                    (message: any, transfer: Transferable[]): void;
                                    (message: any, options?: StructuredSerializeOptions): void;
                                };
                                addEventListener: {
                                    <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                                onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                            } | null;
                            oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                            onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                            onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                            readonly ready: {
                                then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                                catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                                finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                                readonly [Symbol.toStringTag]: string;
                            };
                            getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                            getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                            register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                            startMessages: () => void;
                            addEventListener: {
                                <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly userActivation: {
                            readonly hasBeenActive: boolean;
                            readonly isActive: boolean;
                        };
                        readonly wakeLock: {
                            request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                        };
                        canShare: (data?: ShareData) => boolean;
                        getGamepads: () => (Gamepad | null)[];
                        requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                        requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                        sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                        share: (data?: ShareData) => Promise<void>;
                        vibrate: (pattern: VibratePattern) => boolean;
                        readonly webdriver: boolean;
                        clearAppBadge: () => Promise<void>;
                        setAppBadge: (contents?: number) => Promise<void>;
                        readonly hardwareConcurrency: number;
                        registerProtocolHandler: (scheme: string, url: string | URL) => void;
                        readonly cookieEnabled: boolean;
                        readonly appCodeName: string;
                        readonly appName: string;
                        readonly appVersion: string;
                        readonly platform: string;
                        readonly product: string;
                        readonly productSub: string;
                        readonly userAgent: string;
                        readonly vendor: string;
                        readonly vendorSub: string;
                        readonly language: string;
                        readonly languages: ReadonlyArray<string>;
                        readonly locks: {
                            query: () => Promise<LockManagerSnapshot>;
                            request: {
                                (name: string, callback: LockGrantedCallback): Promise<any>;
                                (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                            };
                        };
                        readonly onLine: boolean;
                        readonly mimeTypes: {
                            [x: number]: {
                                readonly description: string;
                                readonly enabledPlugin: {
                                    [x: number]: /*elided*/ any;
                                    readonly description: string;
                                    readonly filename: string;
                                    readonly length: number;
                                    readonly name: string;
                                    item: (index: number) => MimeType | null;
                                    namedItem: (name: string) => MimeType | null;
                                };
                                readonly suffixes: string;
                                readonly type: string;
                            };
                            readonly length: number;
                            item: (index: number) => MimeType | null;
                            namedItem: (name: string) => MimeType | null;
                        };
                        readonly pdfViewerEnabled: boolean;
                        readonly plugins: {
                            [x: number]: {
                                [x: number]: {
                                    readonly description: string;
                                    readonly enabledPlugin: /*elided*/ any;
                                    readonly suffixes: string;
                                    readonly type: string;
                                };
                                readonly description: string;
                                readonly filename: string;
                                readonly length: number;
                                readonly name: string;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly length: number;
                            item: (index: number) => Plugin | null;
                            namedItem: (name: string) => Plugin | null;
                            refresh: () => void;
                        };
                        javaEnabled: () => boolean;
                        readonly storage: {
                            estimate: () => Promise<StorageEstimate>;
                            getDirectory: () => Promise<FileSystemDirectoryHandle>;
                            persist: () => Promise<boolean>;
                            persisted: () => Promise<boolean>;
                        };
                    };
                    closed: boolean;
                    customElements: {
                        define: (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions) => void;
                        get: (name: string) => CustomElementConstructor | undefined;
                        getName: (constructor: CustomElementConstructor) => string | null;
                        upgrade: (root: Node) => void;
                        whenDefined: (name: string) => Promise<CustomElementConstructor>;
                    };
                    devicePixelRatio: number;
                    document: Document;
                    event: {
                        readonly bubbles: boolean;
                        cancelBubble: boolean;
                        readonly cancelable: boolean;
                        readonly composed: boolean;
                        readonly currentTarget: {
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        } | null;
                        readonly defaultPrevented: boolean;
                        readonly eventPhase: number;
                        readonly isTrusted: boolean;
                        returnValue: boolean;
                        readonly srcElement: {
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        } | null;
                        readonly target: {
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        } | null;
                        readonly timeStamp: DOMHighResTimeStamp;
                        readonly type: string;
                        composedPath: () => EventTarget[];
                        initEvent: (type: string, bubbles?: boolean, cancelable?: boolean) => void;
                        preventDefault: () => void;
                        stopImmediatePropagation: () => void;
                        stopPropagation: () => void;
                        readonly NONE: 0;
                        readonly CAPTURING_PHASE: 1;
                        readonly AT_TARGET: 2;
                        readonly BUBBLING_PHASE: 3;
                    } | undefined;
                    external: {
                        AddSearchProvider: () => void;
                        IsSearchProviderInstalled: () => void;
                    };
                    frameElement: Element | null;
                    frames: /*elided*/ any;
                    history: {
                        readonly length: number;
                        scrollRestoration: ScrollRestoration;
                        readonly state: any;
                        back: () => void;
                        forward: () => void;
                        go: (delta?: number) => void;
                        pushState: (data: any, unused: string, url?: string | URL | null) => void;
                        replaceState: (data: any, unused: string, url?: string | URL | null) => void;
                    };
                    innerHeight: number;
                    innerWidth: number;
                    length: number;
                    location: {
                        readonly ancestorOrigins: {
                            [x: number]: string;
                            readonly length: number;
                            contains: (string: string) => boolean;
                            item: (index: number) => string | null;
                        };
                        hash: string;
                        host: string;
                        hostname: string;
                        href: string;
                        toString: () => string;
                        readonly origin: string;
                        pathname: string;
                        port: string;
                        protocol: string;
                        search: string;
                        assign: (url: string | URL) => void;
                        reload: () => void;
                        replace: (url: string | URL) => void;
                    };
                    locationbar: {
                        readonly visible: boolean;
                    };
                    menubar: {
                        readonly visible: boolean;
                    };
                    name: string;
                    navigator: {
                        readonly clipboard: {
                            read: () => Promise<ClipboardItems>;
                            readText: () => Promise<string>;
                            write: (data: ClipboardItems) => Promise<void>;
                            writeText: (data: string) => Promise<void>;
                            addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                            dispatchEvent: (event: Event) => boolean;
                            removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                        };
                        readonly credentials: {
                            create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                            get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                            preventSilentAccess: () => Promise<void>;
                            store: (credential: Credential) => Promise<void>;
                        };
                        readonly doNotTrack: string | null;
                        readonly geolocation: {
                            clearWatch: (watchId: number) => void;
                            getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                            watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                        };
                        readonly maxTouchPoints: number;
                        readonly mediaCapabilities: {
                            decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                            encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                        };
                        readonly mediaDevices: {
                            ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                            enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                            getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                            getSupportedConstraints: () => MediaTrackSupportedConstraints;
                            getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                            addEventListener: {
                                <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly mediaSession: {
                            metadata: {
                                album: string;
                                artist: string;
                                artwork: readonly {
                                    sizes: string;
                                    src: string;
                                    type: string;
                                }[];
                                title: string;
                            } | null;
                            playbackState: MediaSessionPlaybackState;
                            setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                            setPositionState: (state?: MediaPositionState) => void;
                        };
                        readonly permissions: {
                            query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                        };
                        readonly serviceWorker: {
                            readonly controller: {
                                onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                                readonly scriptURL: string;
                                readonly state: ServiceWorkerState;
                                postMessage: {
                                    (message: any, transfer: Transferable[]): void;
                                    (message: any, options?: StructuredSerializeOptions): void;
                                };
                                addEventListener: {
                                    <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                                onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                            } | null;
                            oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                            onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                            onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                            readonly ready: {
                                then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                                catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                                finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                                readonly [Symbol.toStringTag]: string;
                            };
                            getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                            getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                            register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                            startMessages: () => void;
                            addEventListener: {
                                <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly userActivation: {
                            readonly hasBeenActive: boolean;
                            readonly isActive: boolean;
                        };
                        readonly wakeLock: {
                            request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                        };
                        canShare: (data?: ShareData) => boolean;
                        getGamepads: () => (Gamepad | null)[];
                        requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                        requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                        sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                        share: (data?: ShareData) => Promise<void>;
                        vibrate: (pattern: VibratePattern) => boolean;
                        readonly webdriver: boolean;
                        clearAppBadge: () => Promise<void>;
                        setAppBadge: (contents?: number) => Promise<void>;
                        readonly hardwareConcurrency: number;
                        registerProtocolHandler: (scheme: string, url: string | URL) => void;
                        readonly cookieEnabled: boolean;
                        readonly appCodeName: string;
                        readonly appName: string;
                        readonly appVersion: string;
                        readonly platform: string;
                        readonly product: string;
                        readonly productSub: string;
                        readonly userAgent: string;
                        readonly vendor: string;
                        readonly vendorSub: string;
                        readonly language: string;
                        readonly languages: ReadonlyArray<string>;
                        readonly locks: {
                            query: () => Promise<LockManagerSnapshot>;
                            request: {
                                (name: string, callback: LockGrantedCallback): Promise<any>;
                                (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                            };
                        };
                        readonly onLine: boolean;
                        readonly mimeTypes: {
                            [x: number]: {
                                readonly description: string;
                                readonly enabledPlugin: {
                                    [x: number]: /*elided*/ any;
                                    readonly description: string;
                                    readonly filename: string;
                                    readonly length: number;
                                    readonly name: string;
                                    item: (index: number) => MimeType | null;
                                    namedItem: (name: string) => MimeType | null;
                                };
                                readonly suffixes: string;
                                readonly type: string;
                            };
                            readonly length: number;
                            item: (index: number) => MimeType | null;
                            namedItem: (name: string) => MimeType | null;
                        };
                        readonly pdfViewerEnabled: boolean;
                        readonly plugins: {
                            [x: number]: {
                                [x: number]: {
                                    readonly description: string;
                                    readonly enabledPlugin: /*elided*/ any;
                                    readonly suffixes: string;
                                    readonly type: string;
                                };
                                readonly description: string;
                                readonly filename: string;
                                readonly length: number;
                                readonly name: string;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly length: number;
                            item: (index: number) => Plugin | null;
                            namedItem: (name: string) => Plugin | null;
                            refresh: () => void;
                        };
                        javaEnabled: () => boolean;
                        readonly storage: {
                            estimate: () => Promise<StorageEstimate>;
                            getDirectory: () => Promise<FileSystemDirectoryHandle>;
                            persist: () => Promise<boolean>;
                            persisted: () => Promise<boolean>;
                        };
                    };
                    ondevicemotion: (((this: Window, ev: DeviceMotionEvent) => any) & ((this: Window, ev: DeviceMotionEvent) => any)) | null;
                    ondeviceorientation: (((this: Window, ev: DeviceOrientationEvent) => any) & ((this: Window, ev: DeviceOrientationEvent) => any)) | null;
                    ondeviceorientationabsolute: (((this: Window, ev: DeviceOrientationEvent) => any) & ((this: Window, ev: DeviceOrientationEvent) => any)) | null;
                    onorientationchange: (((this: Window, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    opener: any;
                    orientation: number;
                    outerHeight: number;
                    outerWidth: number;
                    pageXOffset: number;
                    pageYOffset: number;
                    parent: /*elided*/ any;
                    personalbar: {
                        readonly visible: boolean;
                    };
                    screen: {
                        readonly availHeight: number;
                        readonly availWidth: number;
                        readonly colorDepth: number;
                        readonly height: number;
                        readonly orientation: {
                            readonly angle: number;
                            onchange: ((this: ScreenOrientation, ev: Event) => any) | null;
                            readonly type: OrientationType;
                            unlock: () => void;
                            addEventListener: {
                                <K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        readonly pixelDepth: number;
                        readonly width: number;
                    };
                    screenLeft: number;
                    screenTop: number;
                    screenX: number;
                    screenY: number;
                    scrollX: number;
                    scrollY: number;
                    scrollbars: {
                        readonly visible: boolean;
                    };
                    self: /*elided*/ any;
                    speechSynthesis: {
                        onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;
                        readonly paused: boolean;
                        readonly pending: boolean;
                        readonly speaking: boolean;
                        cancel: () => void;
                        getVoices: () => SpeechSynthesisVoice[];
                        pause: () => void;
                        resume: () => void;
                        speak: (utterance: SpeechSynthesisUtterance) => void;
                        addEventListener: {
                            <K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    };
                    status: string;
                    statusbar: {
                        readonly visible: boolean;
                    };
                    toolbar: {
                        readonly visible: boolean;
                    };
                    top: /*elided*/ any | null;
                    visualViewport: {
                        readonly height: number;
                        readonly offsetLeft: number;
                        readonly offsetTop: number;
                        onresize: ((this: VisualViewport, ev: Event) => any) | null;
                        onscroll: ((this: VisualViewport, ev: Event) => any) | null;
                        readonly pageLeft: number;
                        readonly pageTop: number;
                        readonly scale: number;
                        readonly width: number;
                        addEventListener: {
                            <K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    } | null;
                    window: /*elided*/ any;
                    alert: ((message?: any) => void) & typeof alert;
                    blur: (() => void) & typeof blur;
                    cancelIdleCallback: ((handle: number) => void) & typeof cancelIdleCallback;
                    captureEvents: (() => void) & typeof captureEvents;
                    close: (() => void) & typeof close;
                    confirm: ((message?: string) => boolean) & typeof confirm;
                    focus: (() => void) & typeof focus;
                    getComputedStyle: ((elt: Element, pseudoElt?: string | null) => CSSStyleDeclaration) & typeof getComputedStyle;
                    getSelection: (() => Selection | null) & typeof getSelection;
                    matchMedia: ((query: string) => MediaQueryList) & typeof matchMedia;
                    moveBy: ((x: number, y: number) => void) & typeof moveBy;
                    moveTo: ((x: number, y: number) => void) & typeof moveTo;
                    open: ((url?: string | URL, target?: string, features?: string) => WindowProxy | null) & typeof open;
                    postMessage: {
                        (message: any, targetOrigin: string, transfer?: Transferable[]): void;
                        (message: any, options?: WindowPostMessageOptions): void;
                    } & typeof postMessage;
                    print: (() => void) & typeof print;
                    prompt: ((message?: string, _default?: string) => string | null) & typeof prompt;
                    releaseEvents: (() => void) & typeof releaseEvents;
                    requestIdleCallback: ((callback: IdleRequestCallback, options?: IdleRequestOptions) => number) & typeof requestIdleCallback;
                    resizeBy: ((x: number, y: number) => void) & typeof resizeBy;
                    resizeTo: ((width: number, height: number) => void) & typeof resizeTo;
                    scroll: {
                        (options?: ScrollToOptions): void;
                        (x: number, y: number): void;
                    } & typeof scroll;
                    scrollBy: {
                        (options?: ScrollToOptions): void;
                        (x: number, y: number): void;
                    } & typeof scrollBy;
                    scrollTo: {
                        (options?: ScrollToOptions): void;
                        (x: number, y: number): void;
                    } & typeof scrollTo;
                    stop: (() => void) & typeof stop;
                    addEventListener: {
                        <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
                    } & typeof addEventListener;
                    removeEventListener: {
                        <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                    } & typeof removeEventListener;
                    dispatchEvent: ((event: Event) => boolean) & typeof dispatchEvent;
                    cancelAnimationFrame: ((handle: number) => void) & typeof cancelAnimationFrame;
                    requestAnimationFrame: ((callback: FrameRequestCallback) => number) & typeof requestAnimationFrame;
                    onabort: (((this: GlobalEventHandlers, ev: UIEvent) => any) & ((this: Window, ev: UIEvent) => any)) | null;
                    onanimationcancel: (((this: GlobalEventHandlers, ev: AnimationEvent) => any) & ((this: Window, ev: AnimationEvent) => any)) | null;
                    onanimationend: (((this: GlobalEventHandlers, ev: AnimationEvent) => any) & ((this: Window, ev: AnimationEvent) => any)) | null;
                    onanimationiteration: (((this: GlobalEventHandlers, ev: AnimationEvent) => any) & ((this: Window, ev: AnimationEvent) => any)) | null;
                    onanimationstart: (((this: GlobalEventHandlers, ev: AnimationEvent) => any) & ((this: Window, ev: AnimationEvent) => any)) | null;
                    onauxclick: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onbeforeinput: (((this: GlobalEventHandlers, ev: InputEvent) => any) & ((this: Window, ev: InputEvent) => any)) | null;
                    onbeforetoggle: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onblur: (((this: GlobalEventHandlers, ev: FocusEvent) => any) & ((this: Window, ev: FocusEvent) => any)) | null;
                    oncancel: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncanplay: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncanplaythrough: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onchange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onclick: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onclose: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncontextlost: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncontextmenu: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    oncontextrestored: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncopy: (((this: GlobalEventHandlers, ev: ClipboardEvent) => any) & ((this: Window, ev: ClipboardEvent) => any)) | null;
                    oncuechange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oncut: (((this: GlobalEventHandlers, ev: ClipboardEvent) => any) & ((this: Window, ev: ClipboardEvent) => any)) | null;
                    ondblclick: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    ondrag: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragend: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragenter: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragleave: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragover: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondragstart: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondrop: (((this: GlobalEventHandlers, ev: DragEvent) => any) & ((this: Window, ev: DragEvent) => any)) | null;
                    ondurationchange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onemptied: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onended: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onerror: OnErrorEventHandler;
                    onfocus: (((this: GlobalEventHandlers, ev: FocusEvent) => any) & ((this: Window, ev: FocusEvent) => any)) | null;
                    onformdata: (((this: GlobalEventHandlers, ev: FormDataEvent) => any) & ((this: Window, ev: FormDataEvent) => any)) | null;
                    ongotpointercapture: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    oninput: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    oninvalid: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onkeydown: (((this: GlobalEventHandlers, ev: KeyboardEvent) => any) & ((this: Window, ev: KeyboardEvent) => any)) | null;
                    onkeypress: (((this: GlobalEventHandlers, ev: KeyboardEvent) => any) & ((this: Window, ev: KeyboardEvent) => any)) | null;
                    onkeyup: (((this: GlobalEventHandlers, ev: KeyboardEvent) => any) & ((this: Window, ev: KeyboardEvent) => any)) | null;
                    onload: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onloadeddata: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onloadedmetadata: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onloadstart: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onlostpointercapture: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onmousedown: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseenter: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseleave: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmousemove: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseout: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseover: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onmouseup: (((this: GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)) | null;
                    onpaste: (((this: GlobalEventHandlers, ev: ClipboardEvent) => any) & ((this: Window, ev: ClipboardEvent) => any)) | null;
                    onpause: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onplay: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onplaying: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onpointercancel: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerdown: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerenter: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerleave: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointermove: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerout: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerover: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onpointerup: (((this: GlobalEventHandlers, ev: PointerEvent) => any) & ((this: Window, ev: PointerEvent) => any)) | null;
                    onprogress: (((this: GlobalEventHandlers, ev: ProgressEvent) => any) & ((this: Window, ev: ProgressEvent) => any)) | null;
                    onratechange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onreset: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onresize: (((this: GlobalEventHandlers, ev: UIEvent) => any) & ((this: Window, ev: UIEvent) => any)) | null;
                    onscroll: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onscrollend: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onsecuritypolicyviolation: (((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) & ((this: Window, ev: SecurityPolicyViolationEvent) => any)) | null;
                    onseeked: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onseeking: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onselect: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onselectionchange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onselectstart: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onslotchange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onstalled: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onsubmit: (((this: GlobalEventHandlers, ev: SubmitEvent) => any) & ((this: Window, ev: SubmitEvent) => any)) | null;
                    onsuspend: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    ontimeupdate: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    ontoggle: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    ontouchcancel: (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null;
                    ontouchend: (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null;
                    ontouchmove: (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null;
                    ontouchstart: (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null;
                    ontransitioncancel: (((this: GlobalEventHandlers, ev: TransitionEvent) => any) & ((this: Window, ev: TransitionEvent) => any)) | null;
                    ontransitionend: (((this: GlobalEventHandlers, ev: TransitionEvent) => any) & ((this: Window, ev: TransitionEvent) => any)) | null;
                    ontransitionrun: (((this: GlobalEventHandlers, ev: TransitionEvent) => any) & ((this: Window, ev: TransitionEvent) => any)) | null;
                    ontransitionstart: (((this: GlobalEventHandlers, ev: TransitionEvent) => any) & ((this: Window, ev: TransitionEvent) => any)) | null;
                    onvolumechange: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwaiting: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwebkitanimationend: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwebkitanimationiteration: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwebkitanimationstart: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwebkittransitionend: (((this: GlobalEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onwheel: (((this: GlobalEventHandlers, ev: WheelEvent) => any) & ((this: Window, ev: WheelEvent) => any)) | null;
                    onafterprint: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onbeforeprint: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onbeforeunload: (((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) & ((this: Window, ev: BeforeUnloadEvent) => any)) | null;
                    ongamepadconnected: (((this: WindowEventHandlers, ev: GamepadEvent) => any) & ((this: Window, ev: GamepadEvent) => any)) | null;
                    ongamepaddisconnected: (((this: WindowEventHandlers, ev: GamepadEvent) => any) & ((this: Window, ev: GamepadEvent) => any)) | null;
                    onhashchange: (((this: WindowEventHandlers, ev: HashChangeEvent) => any) & ((this: Window, ev: HashChangeEvent) => any)) | null;
                    onlanguagechange: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onmessage: (((this: WindowEventHandlers, ev: MessageEvent) => any) & ((this: Window, ev: MessageEvent) => any)) | null;
                    onmessageerror: (((this: WindowEventHandlers, ev: MessageEvent) => any) & ((this: Window, ev: MessageEvent) => any)) | null;
                    onoffline: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    ononline: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onpagehide: (((this: WindowEventHandlers, ev: PageTransitionEvent) => any) & ((this: Window, ev: PageTransitionEvent) => any)) | null;
                    onpagereveal: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onpageshow: (((this: WindowEventHandlers, ev: PageTransitionEvent) => any) & ((this: Window, ev: PageTransitionEvent) => any)) | null;
                    onpageswap: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    onpopstate: (((this: WindowEventHandlers, ev: PopStateEvent) => any) & ((this: Window, ev: PopStateEvent) => any)) | null;
                    onrejectionhandled: (((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) & ((this: Window, ev: PromiseRejectionEvent) => any)) | null;
                    onstorage: (((this: WindowEventHandlers, ev: StorageEvent) => any) & ((this: Window, ev: StorageEvent) => any)) | null;
                    onunhandledrejection: (((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) & ((this: Window, ev: PromiseRejectionEvent) => any)) | null;
                    onunload: (((this: WindowEventHandlers, ev: Event) => any) & ((this: Window, ev: Event) => any)) | null;
                    localStorage: {
                        [x: string]: any;
                        readonly length: number;
                        clear: () => void;
                        getItem: (key: string) => string | null;
                        key: (index: number) => string | null;
                        removeItem: (key: string) => void;
                        setItem: (key: string, value: string) => void;
                    };
                    caches: {
                        delete: (cacheName: string) => Promise<boolean>;
                        has: (cacheName: string) => Promise<boolean>;
                        keys: () => Promise<string[]>;
                        match: (request: RequestInfo | URL, options?: MultiCacheQueryOptions) => Promise<Response | undefined>;
                        open: (cacheName: string) => Promise<Cache>;
                    };
                    crossOriginIsolated: boolean;
                    crypto: {
                        readonly subtle: {
                            decrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                            deriveBits: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length?: number | null) => Promise<ArrayBuffer>;
                            deriveKey: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                            digest: (algorithm: AlgorithmIdentifier, data: BufferSource) => Promise<ArrayBuffer>;
                            encrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                            exportKey: {
                                (format: "jwk", key: CryptoKey): Promise<JsonWebKey>;
                                (format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;
                                (format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer | JsonWebKey>;
                            };
                            generateKey: {
                                (algorithm: "Ed25519" | {
                                    name: "Ed25519";
                                }, extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;
                                (algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
                                (algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                                (algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;
                            };
                            importKey: {
                                (format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                                (format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
                            };
                            sign: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                            unwrapKey: (format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                            verify: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource) => Promise<boolean>;
                            wrapKey: (format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams) => Promise<ArrayBuffer>;
                        };
                        getRandomValues: <T extends ArrayBufferView | null>(array: T) => T;
                        randomUUID: () => `${string}-${string}-${string}-${string}-${string}`;
                    };
                    indexedDB: {
                        cmp: (first: any, second: any) => number;
                        databases: () => Promise<IDBDatabaseInfo[]>;
                        deleteDatabase: (name: string) => IDBOpenDBRequest;
                        open: (name: string, version?: number) => IDBOpenDBRequest;
                    };
                    isSecureContext: boolean;
                    origin: string;
                    performance: {
                        readonly eventCounts: {
                            forEach: (callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any) => void;
                        };
                        readonly navigation: {
                            readonly redirectCount: number;
                            readonly type: number;
                            toJSON: () => any;
                            readonly TYPE_NAVIGATE: 0;
                            readonly TYPE_RELOAD: 1;
                            readonly TYPE_BACK_FORWARD: 2;
                            readonly TYPE_RESERVED: 255;
                        };
                        onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;
                        readonly timeOrigin: DOMHighResTimeStamp;
                        readonly timing: {
                            readonly connectEnd: number;
                            readonly connectStart: number;
                            readonly domComplete: number;
                            readonly domContentLoadedEventEnd: number;
                            readonly domContentLoadedEventStart: number;
                            readonly domInteractive: number;
                            readonly domLoading: number;
                            readonly domainLookupEnd: number;
                            readonly domainLookupStart: number;
                            readonly fetchStart: number;
                            readonly loadEventEnd: number;
                            readonly loadEventStart: number;
                            readonly navigationStart: number;
                            readonly redirectEnd: number;
                            readonly redirectStart: number;
                            readonly requestStart: number;
                            readonly responseEnd: number;
                            readonly responseStart: number;
                            readonly secureConnectionStart: number;
                            readonly unloadEventEnd: number;
                            readonly unloadEventStart: number;
                            toJSON: () => any;
                        };
                        clearMarks: (markName?: string) => void;
                        clearMeasures: (measureName?: string) => void;
                        clearResourceTimings: () => void;
                        getEntries: () => PerformanceEntryList;
                        getEntriesByName: (name: string, type?: string) => PerformanceEntryList;
                        getEntriesByType: (type: string) => PerformanceEntryList;
                        mark: (markName: string, markOptions?: PerformanceMarkOptions) => PerformanceMark;
                        measure: (measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string) => PerformanceMeasure;
                        now: () => DOMHighResTimeStamp;
                        setResourceTimingBufferSize: (maxSize: number) => void;
                        toJSON: () => any;
                        addEventListener: {
                            <K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                            (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;
                            (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                        };
                        dispatchEvent: (event: Event) => boolean;
                    };
                    atob: ((data: string) => string) & typeof atob;
                    btoa: ((data: string) => string) & typeof btoa;
                    clearInterval: ((id: number | undefined) => void) & typeof clearInterval;
                    clearTimeout: ((id: number | undefined) => void) & typeof clearTimeout;
                    createImageBitmap: {
                        (image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;
                        (image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
                    } & typeof createImageBitmap;
                    fetch: ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>) & typeof fetch;
                    queueMicrotask: ((callback: VoidFunction) => void) & typeof queueMicrotask;
                    reportError: ((e: any) => void) & typeof reportError;
                    setInterval: ((handler: TimerHandler, timeout?: number, ...arguments: any[]) => number) & typeof setInterval;
                    setTimeout: ((handler: TimerHandler, timeout?: number, ...arguments: any[]) => number) & typeof setTimeout;
                    structuredClone: (<T = any>(value: T, options?: StructuredSerializeOptions) => T) & typeof structuredClone;
                    sessionStorage: {
                        [x: string]: any;
                        readonly length: number;
                        clear: () => void;
                        getItem: (key: string) => string | null;
                        key: (index: number) => string | null;
                        removeItem: (key: string) => void;
                        setItem: (key: string, value: string) => void;
                    };
                    readonly globalThis: {
                        readonly globalThis: /*elided*/ any;
                        eval: typeof eval;
                        parseInt: typeof parseInt;
                        parseFloat: typeof parseFloat;
                        isNaN: typeof isNaN;
                        isFinite: typeof isFinite;
                        decodeURI: typeof decodeURI;
                        decodeURIComponent: typeof decodeURIComponent;
                        encodeURI: typeof encodeURI;
                        encodeURIComponent: typeof encodeURIComponent;
                        escape: typeof escape;
                        unescape: typeof unescape;
                        NaN: number;
                        Infinity: number;
                        Symbol: SymbolConstructor;
                        Object: ObjectConstructor;
                        Function: FunctionConstructor;
                        String: StringConstructor;
                        Boolean: BooleanConstructor;
                        Number: NumberConstructor;
                        Math: {
                            readonly E: number;
                            readonly LN10: number;
                            readonly LN2: number;
                            readonly LOG2E: number;
                            readonly LOG10E: number;
                            readonly PI: number;
                            readonly SQRT1_2: number;
                            readonly SQRT2: number;
                            abs: (x: number) => number;
                            acos: (x: number) => number;
                            asin: (x: number) => number;
                            atan: (x: number) => number;
                            atan2: (y: number, x: number) => number;
                            ceil: (x: number) => number;
                            cos: (x: number) => number;
                            exp: (x: number) => number;
                            floor: (x: number) => number;
                            log: (x: number) => number;
                            max: (...values: number[]) => number;
                            min: (...values: number[]) => number;
                            pow: (x: number, y: number) => number;
                            random: () => number;
                            round: (x: number) => number;
                            sin: (x: number) => number;
                            sqrt: (x: number) => number;
                            tan: (x: number) => number;
                            clz32: (x: number) => number;
                            imul: (x: number, y: number) => number;
                            sign: (x: number) => number;
                            log10: (x: number) => number;
                            log2: (x: number) => number;
                            log1p: (x: number) => number;
                            expm1: (x: number) => number;
                            cosh: (x: number) => number;
                            sinh: (x: number) => number;
                            tanh: (x: number) => number;
                            acosh: (x: number) => number;
                            asinh: (x: number) => number;
                            atanh: (x: number) => number;
                            hypot: (...values: number[]) => number;
                            trunc: (x: number) => number;
                            fround: (x: number) => number;
                            cbrt: (x: number) => number;
                            f16round: (x: number) => number;
                            readonly [Symbol.toStringTag]: string;
                        };
                        Date: DateConstructor;
                        RegExp: RegExpConstructor;
                        Error: ErrorConstructor;
                        EvalError: EvalErrorConstructor;
                        RangeError: RangeErrorConstructor;
                        ReferenceError: ReferenceErrorConstructor;
                        SyntaxError: SyntaxErrorConstructor;
                        TypeError: TypeErrorConstructor;
                        URIError: URIErrorConstructor;
                        JSON: {
                            parse: (text: string, reviver?: (this: any, key: string, value: any) => any) => any;
                            stringify: {
                                (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
                                (value: any, replacer?: (number | string)[] | null, space?: string | number): string;
                            };
                            readonly [Symbol.toStringTag]: string;
                        };
                        Array: ArrayConstructor;
                        Promise: PromiseConstructor;
                        ArrayBuffer: ArrayBufferConstructor;
                        DataView: DataViewConstructor;
                        Int8Array: Int8ArrayConstructor;
                        Uint8Array: Uint8ArrayConstructor;
                        Uint8ClampedArray: Uint8ClampedArrayConstructor;
                        Int16Array: Int16ArrayConstructor;
                        Uint16Array: Uint16ArrayConstructor;
                        Int32Array: Int32ArrayConstructor;
                        Uint32Array: Uint32ArrayConstructor;
                        Float32Array: Float32ArrayConstructor;
                        Float64Array: Float64ArrayConstructor;
                        Intl: {
                            Collator: Intl.CollatorConstructor;
                            NumberFormat: Intl.NumberFormatConstructor;
                            DateTimeFormat: Intl.DateTimeFormatConstructor;
                            getCanonicalLocales: typeof Intl.getCanonicalLocales;
                            readonly PluralRules: Intl.PluralRulesConstructor;
                            readonly RelativeTimeFormat: {
                                new (locales?: Intl.LocalesArgument, options?: Intl.RelativeTimeFormatOptions): Intl.RelativeTimeFormat;
                                supportedLocalesOf(locales?: Intl.LocalesArgument, options?: Intl.RelativeTimeFormatOptions): Intl.UnicodeBCP47LocaleIdentifier[];
                            };
                            readonly Locale: {
                                new (tag: Intl.UnicodeBCP47LocaleIdentifier | Intl.Locale, options?: Intl.LocaleOptions): Intl.Locale;
                            };
                            readonly DisplayNames: {
                                prototype: Intl.DisplayNames;
                                new (locales: Intl.LocalesArgument, options: Intl.DisplayNamesOptions): Intl.DisplayNames;
                                supportedLocalesOf(locales?: Intl.LocalesArgument, options?: {
                                    localeMatcher?: Intl.RelativeTimeFormatLocaleMatcher;
                                }): Intl.UnicodeBCP47LocaleIdentifier[];
                            };
                            readonly ListFormat: {
                                prototype: Intl.ListFormat;
                                new (locales?: Intl.LocalesArgument, options?: Intl.ListFormatOptions): Intl.ListFormat;
                                supportedLocalesOf(locales: Intl.LocalesArgument, options?: Pick<Intl.ListFormatOptions, "localeMatcher">): Intl.UnicodeBCP47LocaleIdentifier[];
                            };
                            supportedValuesOf: typeof Intl.supportedValuesOf;
                            readonly Segmenter: {
                                prototype: Intl.Segmenter;
                                new (locales?: Intl.LocalesArgument, options?: Intl.SegmenterOptions): Intl.Segmenter;
                                supportedLocalesOf(locales: Intl.LocalesArgument, options?: Pick<Intl.SegmenterOptions, "localeMatcher">): Intl.UnicodeBCP47LocaleIdentifier[];
                            };
                        };
                        alert: typeof alert;
                        blur: typeof blur;
                        cancelIdleCallback: typeof cancelIdleCallback;
                        captureEvents: typeof captureEvents;
                        close: typeof close;
                        confirm: typeof confirm;
                        focus: typeof focus;
                        getComputedStyle: typeof getComputedStyle;
                        getSelection: typeof getSelection;
                        matchMedia: typeof matchMedia;
                        moveBy: typeof moveBy;
                        moveTo: typeof moveTo;
                        open: typeof open;
                        postMessage: typeof postMessage;
                        print: typeof print;
                        prompt: typeof prompt;
                        releaseEvents: typeof releaseEvents;
                        requestIdleCallback: typeof requestIdleCallback;
                        resizeBy: typeof resizeBy;
                        resizeTo: typeof resizeTo;
                        scroll: typeof scroll;
                        scrollBy: typeof scrollBy;
                        scrollTo: typeof scrollTo;
                        stop: typeof stop;
                        toString: typeof toString;
                        dispatchEvent: typeof dispatchEvent;
                        cancelAnimationFrame: typeof cancelAnimationFrame;
                        requestAnimationFrame: typeof requestAnimationFrame;
                        atob: typeof atob;
                        btoa: typeof btoa;
                        clearInterval: typeof clearInterval;
                        clearTimeout: typeof clearTimeout;
                        createImageBitmap: typeof createImageBitmap;
                        fetch: typeof fetch;
                        queueMicrotask: typeof queueMicrotask;
                        reportError: typeof reportError;
                        setInterval: typeof setInterval;
                        setTimeout: typeof setTimeout;
                        structuredClone: typeof structuredClone;
                        addEventListener: typeof addEventListener;
                        removeEventListener: typeof removeEventListener;
                        NodeFilter: {
                            readonly FILTER_ACCEPT: 1;
                            readonly FILTER_REJECT: 2;
                            readonly FILTER_SKIP: 3;
                            readonly SHOW_ALL: 4294967295;
                            readonly SHOW_ELEMENT: 1;
                            readonly SHOW_ATTRIBUTE: 2;
                            readonly SHOW_TEXT: 4;
                            readonly SHOW_CDATA_SECTION: 8;
                            readonly SHOW_ENTITY_REFERENCE: 16;
                            readonly SHOW_ENTITY: 32;
                            readonly SHOW_PROCESSING_INSTRUCTION: 64;
                            readonly SHOW_COMMENT: 128;
                            readonly SHOW_DOCUMENT: 256;
                            readonly SHOW_DOCUMENT_TYPE: 512;
                            readonly SHOW_DOCUMENT_FRAGMENT: 1024;
                            readonly SHOW_NOTATION: 2048;
                        };
                        AbortController: {
                            prototype: AbortController;
                            new (): AbortController;
                        };
                        AbortSignal: {
                            prototype: AbortSignal;
                            new (): AbortSignal;
                            abort(reason?: any): AbortSignal;
                            any(signals: AbortSignal[]): AbortSignal;
                            timeout(milliseconds: number): AbortSignal;
                        };
                        AbstractRange: {
                            prototype: AbstractRange;
                            new (): AbstractRange;
                        };
                        AnalyserNode: {
                            prototype: AnalyserNode;
                            new (context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;
                        };
                        Animation: {
                            prototype: Animation;
                            new (effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;
                        };
                        AnimationEffect: {
                            prototype: AnimationEffect;
                            new (): AnimationEffect;
                        };
                        AnimationEvent: {
                            prototype: AnimationEvent;
                            new (type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;
                        };
                        AnimationPlaybackEvent: {
                            prototype: AnimationPlaybackEvent;
                            new (type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;
                        };
                        AnimationTimeline: {
                            prototype: AnimationTimeline;
                            new (): AnimationTimeline;
                        };
                        Attr: {
                            prototype: Attr;
                            new (): Attr;
                        };
                        AudioBuffer: {
                            prototype: AudioBuffer;
                            new (options: AudioBufferOptions): AudioBuffer;
                        };
                        AudioBufferSourceNode: {
                            prototype: AudioBufferSourceNode;
                            new (context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;
                        };
                        AudioContext: {
                            prototype: AudioContext;
                            new (contextOptions?: AudioContextOptions): AudioContext;
                        };
                        AudioData: {
                            prototype: AudioData;
                            new (init: AudioDataInit): AudioData;
                        };
                        AudioDecoder: {
                            prototype: AudioDecoder;
                            new (init: AudioDecoderInit): AudioDecoder;
                            isConfigSupported(config: AudioDecoderConfig): Promise<AudioDecoderSupport>;
                        };
                        AudioDestinationNode: {
                            prototype: AudioDestinationNode;
                            new (): AudioDestinationNode;
                        };
                        AudioEncoder: {
                            prototype: AudioEncoder;
                            new (init: AudioEncoderInit): AudioEncoder;
                            isConfigSupported(config: AudioEncoderConfig): Promise<AudioEncoderSupport>;
                        };
                        AudioListener: {
                            prototype: AudioListener;
                            new (): AudioListener;
                        };
                        AudioNode: {
                            prototype: AudioNode;
                            new (): AudioNode;
                        };
                        AudioParam: {
                            prototype: AudioParam;
                            new (): AudioParam;
                        };
                        AudioParamMap: {
                            prototype: AudioParamMap;
                            new (): AudioParamMap;
                        };
                        AudioProcessingEvent: {
                            prototype: AudioProcessingEvent;
                            new (type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;
                        };
                        AudioScheduledSourceNode: {
                            prototype: AudioScheduledSourceNode;
                            new (): AudioScheduledSourceNode;
                        };
                        AudioWorklet: {
                            prototype: AudioWorklet;
                            new (): AudioWorklet;
                        };
                        AudioWorkletNode: {
                            prototype: AudioWorkletNode;
                            new (context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;
                        };
                        AuthenticatorAssertionResponse: {
                            prototype: AuthenticatorAssertionResponse;
                            new (): AuthenticatorAssertionResponse;
                        };
                        AuthenticatorAttestationResponse: {
                            prototype: AuthenticatorAttestationResponse;
                            new (): AuthenticatorAttestationResponse;
                        };
                        AuthenticatorResponse: {
                            prototype: AuthenticatorResponse;
                            new (): AuthenticatorResponse;
                        };
                        BarProp: {
                            prototype: BarProp;
                            new (): BarProp;
                        };
                        BaseAudioContext: {
                            prototype: BaseAudioContext;
                            new (): BaseAudioContext;
                        };
                        BeforeUnloadEvent: {
                            prototype: BeforeUnloadEvent;
                            new (): BeforeUnloadEvent;
                        };
                        BiquadFilterNode: {
                            prototype: BiquadFilterNode;
                            new (context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;
                        };
                        Blob: {
                            prototype: Blob;
                            new (blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
                        };
                        BlobEvent: {
                            prototype: BlobEvent;
                            new (type: string, eventInitDict: BlobEventInit): BlobEvent;
                        };
                        BroadcastChannel: {
                            prototype: BroadcastChannel;
                            new (name: string): BroadcastChannel;
                        };
                        ByteLengthQueuingStrategy: {
                            prototype: ByteLengthQueuingStrategy;
                            new (init: QueuingStrategyInit): ByteLengthQueuingStrategy;
                        };
                        CDATASection: {
                            prototype: CDATASection;
                            new (): CDATASection;
                        };
                        CSSAnimation: {
                            prototype: CSSAnimation;
                            new (): CSSAnimation;
                        };
                        CSSConditionRule: {
                            prototype: CSSConditionRule;
                            new (): CSSConditionRule;
                        };
                        CSSContainerRule: {
                            prototype: CSSContainerRule;
                            new (): CSSContainerRule;
                        };
                        CSSCounterStyleRule: {
                            prototype: CSSCounterStyleRule;
                            new (): CSSCounterStyleRule;
                        };
                        CSSFontFaceRule: {
                            prototype: CSSFontFaceRule;
                            new (): CSSFontFaceRule;
                        };
                        CSSFontFeatureValuesRule: {
                            prototype: CSSFontFeatureValuesRule;
                            new (): CSSFontFeatureValuesRule;
                        };
                        CSSFontPaletteValuesRule: {
                            prototype: CSSFontPaletteValuesRule;
                            new (): CSSFontPaletteValuesRule;
                        };
                        CSSGroupingRule: {
                            prototype: CSSGroupingRule;
                            new (): CSSGroupingRule;
                        };
                        CSSImageValue: {
                            prototype: CSSImageValue;
                            new (): CSSImageValue;
                        };
                        CSSImportRule: {
                            prototype: CSSImportRule;
                            new (): CSSImportRule;
                        };
                        CSSKeyframeRule: {
                            prototype: CSSKeyframeRule;
                            new (): CSSKeyframeRule;
                        };
                        CSSKeyframesRule: {
                            prototype: CSSKeyframesRule;
                            new (): CSSKeyframesRule;
                        };
                        CSSKeywordValue: {
                            prototype: CSSKeywordValue;
                            new (value: string): CSSKeywordValue;
                        };
                        CSSLayerBlockRule: {
                            prototype: CSSLayerBlockRule;
                            new (): CSSLayerBlockRule;
                        };
                        CSSLayerStatementRule: {
                            prototype: CSSLayerStatementRule;
                            new (): CSSLayerStatementRule;
                        };
                        CSSMathClamp: {
                            prototype: CSSMathClamp;
                            new (lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;
                        };
                        CSSMathInvert: {
                            prototype: CSSMathInvert;
                            new (arg: CSSNumberish): CSSMathInvert;
                        };
                        CSSMathMax: {
                            prototype: CSSMathMax;
                            new (...args: CSSNumberish[]): CSSMathMax;
                        };
                        CSSMathMin: {
                            prototype: CSSMathMin;
                            new (...args: CSSNumberish[]): CSSMathMin;
                        };
                        CSSMathNegate: {
                            prototype: CSSMathNegate;
                            new (arg: CSSNumberish): CSSMathNegate;
                        };
                        CSSMathProduct: {
                            prototype: CSSMathProduct;
                            new (...args: CSSNumberish[]): CSSMathProduct;
                        };
                        CSSMathSum: {
                            prototype: CSSMathSum;
                            new (...args: CSSNumberish[]): CSSMathSum;
                        };
                        CSSMathValue: {
                            prototype: CSSMathValue;
                            new (): CSSMathValue;
                        };
                        CSSMatrixComponent: {
                            prototype: CSSMatrixComponent;
                            new (matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;
                        };
                        CSSMediaRule: {
                            prototype: CSSMediaRule;
                            new (): CSSMediaRule;
                        };
                        CSSNamespaceRule: {
                            prototype: CSSNamespaceRule;
                            new (): CSSNamespaceRule;
                        };
                        CSSNestedDeclarations: {
                            prototype: CSSNestedDeclarations;
                            new (): CSSNestedDeclarations;
                        };
                        CSSNumericArray: {
                            prototype: CSSNumericArray;
                            new (): CSSNumericArray;
                        };
                        CSSNumericValue: {
                            prototype: CSSNumericValue;
                            new (): CSSNumericValue;
                            parse(cssText: string): CSSNumericValue;
                        };
                        CSSPageRule: {
                            prototype: CSSPageRule;
                            new (): CSSPageRule;
                        };
                        CSSPerspective: {
                            prototype: CSSPerspective;
                            new (length: CSSPerspectiveValue): CSSPerspective;
                        };
                        CSSPropertyRule: {
                            prototype: CSSPropertyRule;
                            new (): CSSPropertyRule;
                        };
                        CSSRotate: {
                            prototype: CSSRotate;
                            new (angle: CSSNumericValue): CSSRotate;
                            new (x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;
                        };
                        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 SUPPORTS_RULE: 12;
                            readonly COUNTER_STYLE_RULE: 11;
                            readonly FONT_FEATURE_VALUES_RULE: 14;
                        };
                        CSSRuleList: {
                            prototype: CSSRuleList;
                            new (): CSSRuleList;
                        };
                        CSSScale: {
                            prototype: CSSScale;
                            new (x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;
                        };
                        CSSScopeRule: {
                            prototype: CSSScopeRule;
                            new (): CSSScopeRule;
                        };
                        CSSSkew: {
                            prototype: CSSSkew;
                            new (ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;
                        };
                        CSSSkewX: {
                            prototype: CSSSkewX;
                            new (ax: CSSNumericValue): CSSSkewX;
                        };
                        CSSSkewY: {
                            prototype: CSSSkewY;
                            new (ay: CSSNumericValue): CSSSkewY;
                        };
                        CSSStartingStyleRule: {
                            prototype: CSSStartingStyleRule;
                            new (): CSSStartingStyleRule;
                        };
                        CSSStyleDeclaration: {
                            prototype: CSSStyleDeclaration;
                            new (): CSSStyleDeclaration;
                        };
                        CSSStyleRule: {
                            prototype: CSSStyleRule;
                            new (): CSSStyleRule;
                        };
                        CSSStyleSheet: {
                            prototype: CSSStyleSheet;
                            new (options?: CSSStyleSheetInit): CSSStyleSheet;
                        };
                        CSSStyleValue: {
                            prototype: CSSStyleValue;
                            new (): CSSStyleValue;
                            parse(property: string, cssText: string): CSSStyleValue;
                            parseAll(property: string, cssText: string): CSSStyleValue[];
                        };
                        CSSSupportsRule: {
                            prototype: CSSSupportsRule;
                            new (): CSSSupportsRule;
                        };
                        CSSTransformComponent: {
                            prototype: CSSTransformComponent;
                            new (): CSSTransformComponent;
                        };
                        CSSTransformValue: {
                            prototype: CSSTransformValue;
                            new (transforms: CSSTransformComponent[]): CSSTransformValue;
                        };
                        CSSTransition: {
                            prototype: CSSTransition;
                            new (): CSSTransition;
                        };
                        CSSTranslate: {
                            prototype: CSSTranslate;
                            new (x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;
                        };
                        CSSUnitValue: {
                            prototype: CSSUnitValue;
                            new (value: number, unit: string): CSSUnitValue;
                        };
                        CSSUnparsedValue: {
                            prototype: CSSUnparsedValue;
                            new (members: CSSUnparsedSegment[]): CSSUnparsedValue;
                        };
                        CSSVariableReferenceValue: {
                            prototype: CSSVariableReferenceValue;
                            new (variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;
                        };
                        CSSViewTransitionRule: {
                            prototype: CSSViewTransitionRule;
                            new (): CSSViewTransitionRule;
                        };
                        Cache: {
                            prototype: Cache;
                            new (): Cache;
                        };
                        CacheStorage: {
                            prototype: CacheStorage;
                            new (): CacheStorage;
                        };
                        CanvasCaptureMediaStreamTrack: {
                            prototype: CanvasCaptureMediaStreamTrack;
                            new (): CanvasCaptureMediaStreamTrack;
                        };
                        CanvasGradient: {
                            prototype: CanvasGradient;
                            new (): CanvasGradient;
                        };
                        CanvasPattern: {
                            prototype: CanvasPattern;
                            new (): CanvasPattern;
                        };
                        CanvasRenderingContext2D: {
                            prototype: CanvasRenderingContext2D;
                            new (): CanvasRenderingContext2D;
                        };
                        CaretPosition: {
                            prototype: CaretPosition;
                            new (): CaretPosition;
                        };
                        ChannelMergerNode: {
                            prototype: ChannelMergerNode;
                            new (context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;
                        };
                        ChannelSplitterNode: {
                            prototype: ChannelSplitterNode;
                            new (context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;
                        };
                        CharacterData: {
                            prototype: CharacterData;
                            new (): CharacterData;
                        };
                        Clipboard: {
                            prototype: Clipboard;
                            new (): Clipboard;
                        };
                        ClipboardEvent: {
                            prototype: ClipboardEvent;
                            new (type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;
                        };
                        ClipboardItem: {
                            prototype: ClipboardItem;
                            new (items: Record<string, string | Blob | PromiseLike<string | Blob>>, options?: ClipboardItemOptions): ClipboardItem;
                            supports(type: string): boolean;
                        };
                        CloseEvent: {
                            prototype: CloseEvent;
                            new (type: string, eventInitDict?: CloseEventInit): CloseEvent;
                        };
                        Comment: {
                            prototype: Comment;
                            new (data?: string): Comment;
                        };
                        CompositionEvent: {
                            prototype: CompositionEvent;
                            new (type: string, eventInitDict?: CompositionEventInit): CompositionEvent;
                        };
                        CompressionStream: {
                            prototype: CompressionStream;
                            new (format: CompressionFormat): CompressionStream;
                        };
                        ConstantSourceNode: {
                            prototype: ConstantSourceNode;
                            new (context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;
                        };
                        ContentVisibilityAutoStateChangeEvent: {
                            prototype: ContentVisibilityAutoStateChangeEvent;
                            new (type: string, eventInitDict?: ContentVisibilityAutoStateChangeEventInit): ContentVisibilityAutoStateChangeEvent;
                        };
                        ConvolverNode: {
                            prototype: ConvolverNode;
                            new (context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;
                        };
                        CountQueuingStrategy: {
                            prototype: CountQueuingStrategy;
                            new (init: QueuingStrategyInit): CountQueuingStrategy;
                        };
                        Credential: {
                            prototype: Credential;
                            new (): Credential;
                        };
                        CredentialsContainer: {
                            prototype: CredentialsContainer;
                            new (): CredentialsContainer;
                        };
                        Crypto: {
                            prototype: Crypto;
                            new (): Crypto;
                        };
                        CryptoKey: {
                            prototype: CryptoKey;
                            new (): CryptoKey;
                        };
                        CustomElementRegistry: {
                            prototype: CustomElementRegistry;
                            new (): CustomElementRegistry;
                        };
                        CustomEvent: {
                            prototype: CustomEvent;
                            new <T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;
                        };
                        CustomStateSet: {
                            prototype: CustomStateSet;
                            new (): CustomStateSet;
                        };
                        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;
                        };
                        DOMImplementation: {
                            prototype: DOMImplementation;
                            new (): DOMImplementation;
                        };
                        DOMMatrix: {
                            prototype: DOMMatrix;
                            new (init?: string | number[]): DOMMatrix;
                            fromFloat32Array(array32: Float32Array): DOMMatrix;
                            fromFloat64Array(array64: Float64Array): DOMMatrix;
                            fromMatrix(other?: DOMMatrixInit): DOMMatrix;
                        };
                        SVGMatrix: typeof DOMMatrix;
                        WebKitCSSMatrix: typeof DOMMatrix;
                        DOMMatrixReadOnly: {
                            prototype: DOMMatrixReadOnly;
                            new (init?: string | number[]): DOMMatrixReadOnly;
                            fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;
                            fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;
                            fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;
                        };
                        DOMParser: {
                            prototype: DOMParser;
                            new (): DOMParser;
                        };
                        DOMPoint: {
                            prototype: DOMPoint;
                            new (x?: number, y?: number, z?: number, w?: number): DOMPoint;
                            fromPoint(other?: DOMPointInit): DOMPoint;
                        };
                        SVGPoint: typeof DOMPoint;
                        DOMPointReadOnly: {
                            prototype: DOMPointReadOnly;
                            new (x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;
                            fromPoint(other?: DOMPointInit): DOMPointReadOnly;
                        };
                        DOMQuad: {
                            prototype: DOMQuad;
                            new (p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;
                            fromQuad(other?: DOMQuadInit): DOMQuad;
                            fromRect(other?: DOMRectInit): DOMQuad;
                        };
                        DOMRect: {
                            prototype: DOMRect;
                            new (x?: number, y?: number, width?: number, height?: number): DOMRect;
                            fromRect(other?: DOMRectInit): DOMRect;
                        };
                        SVGRect: typeof DOMRect;
                        DOMRectList: {
                            prototype: DOMRectList;
                            new (): DOMRectList;
                        };
                        DOMRectReadOnly: {
                            prototype: DOMRectReadOnly;
                            new (x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;
                            fromRect(other?: DOMRectInit): DOMRectReadOnly;
                        };
                        DOMStringList: {
                            prototype: DOMStringList;
                            new (): DOMStringList;
                        };
                        DOMStringMap: {
                            prototype: DOMStringMap;
                            new (): DOMStringMap;
                        };
                        DOMTokenList: {
                            prototype: DOMTokenList;
                            new (): DOMTokenList;
                        };
                        DataTransfer: {
                            prototype: DataTransfer;
                            new (): DataTransfer;
                        };
                        DataTransferItem: {
                            prototype: DataTransferItem;
                            new (): DataTransferItem;
                        };
                        DataTransferItemList: {
                            prototype: DataTransferItemList;
                            new (): DataTransferItemList;
                        };
                        DecompressionStream: {
                            prototype: DecompressionStream;
                            new (format: CompressionFormat): DecompressionStream;
                        };
                        DelayNode: {
                            prototype: DelayNode;
                            new (context: BaseAudioContext, options?: DelayOptions): DelayNode;
                        };
                        DeviceMotionEvent: {
                            prototype: DeviceMotionEvent;
                            new (type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;
                        };
                        DeviceOrientationEvent: {
                            prototype: DeviceOrientationEvent;
                            new (type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;
                        };
                        Document: {
                            prototype: Document;
                            new (): Document;
                            parseHTMLUnsafe(html: string): Document;
                        };
                        DocumentFragment: {
                            prototype: DocumentFragment;
                            new (): DocumentFragment;
                        };
                        DocumentTimeline: {
                            prototype: DocumentTimeline;
                            new (options?: DocumentTimelineOptions): DocumentTimeline;
                        };
                        DocumentType: {
                            prototype: DocumentType;
                            new (): DocumentType;
                        };
                        DragEvent: {
                            prototype: DragEvent;
                            new (type: string, eventInitDict?: DragEventInit): DragEvent;
                        };
                        DynamicsCompressorNode: {
                            prototype: DynamicsCompressorNode;
                            new (context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;
                        };
                        Element: {
                            prototype: Element;
                            new (): Element;
                        };
                        ElementInternals: {
                            prototype: ElementInternals;
                            new (): ElementInternals;
                        };
                        EncodedAudioChunk: {
                            prototype: EncodedAudioChunk;
                            new (init: EncodedAudioChunkInit): EncodedAudioChunk;
                        };
                        EncodedVideoChunk: {
                            prototype: EncodedVideoChunk;
                            new (init: EncodedVideoChunkInit): EncodedVideoChunk;
                        };
                        ErrorEvent: {
                            prototype: ErrorEvent;
                            new (type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
                        };
                        Event: {
                            prototype: Event;
                            new (type: string, eventInitDict?: EventInit): Event;
                            readonly NONE: 0;
                            readonly CAPTURING_PHASE: 1;
                            readonly AT_TARGET: 2;
                            readonly BUBBLING_PHASE: 3;
                        };
                        EventCounts: {
                            prototype: EventCounts;
                            new (): EventCounts;
                        };
                        EventSource: {
                            prototype: EventSource;
                            new (url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;
                            readonly CONNECTING: 0;
                            readonly OPEN: 1;
                            readonly CLOSED: 2;
                        };
                        EventTarget: {
                            prototype: EventTarget;
                            new (): EventTarget;
                        };
                        External: {
                            prototype: External;
                            new (): External;
                        };
                        File: {
                            prototype: File;
                            new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
                        };
                        FileList: {
                            prototype: FileList;
                            new (): FileList;
                        };
                        FileReader: {
                            prototype: FileReader;
                            new (): FileReader;
                            readonly EMPTY: 0;
                            readonly LOADING: 1;
                            readonly DONE: 2;
                        };
                        FileSystem: {
                            prototype: FileSystem;
                            new (): FileSystem;
                        };
                        FileSystemDirectoryEntry: {
                            prototype: FileSystemDirectoryEntry;
                            new (): FileSystemDirectoryEntry;
                        };
                        FileSystemDirectoryHandle: {
                            prototype: FileSystemDirectoryHandle;
                            new (): FileSystemDirectoryHandle;
                        };
                        FileSystemDirectoryReader: {
                            prototype: FileSystemDirectoryReader;
                            new (): FileSystemDirectoryReader;
                        };
                        FileSystemEntry: {
                            prototype: FileSystemEntry;
                            new (): FileSystemEntry;
                        };
                        FileSystemFileEntry: {
                            prototype: FileSystemFileEntry;
                            new (): FileSystemFileEntry;
                        };
                        FileSystemFileHandle: {
                            prototype: FileSystemFileHandle;
                            new (): FileSystemFileHandle;
                        };
                        FileSystemHandle: {
                            prototype: FileSystemHandle;
                            new (): FileSystemHandle;
                        };
                        FileSystemWritableFileStream: {
                            prototype: FileSystemWritableFileStream;
                            new (): FileSystemWritableFileStream;
                        };
                        FocusEvent: {
                            prototype: FocusEvent;
                            new (type: string, eventInitDict?: FocusEventInit): FocusEvent;
                        };
                        FontFace: {
                            prototype: FontFace;
                            new (family: string, source: string | BufferSource, descriptors?: FontFaceDescriptors): FontFace;
                        };
                        FontFaceSet: {
                            prototype: FontFaceSet;
                            new (): FontFaceSet;
                        };
                        FontFaceSetLoadEvent: {
                            prototype: FontFaceSetLoadEvent;
                            new (type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;
                        };
                        FormData: {
                            prototype: FormData;
                            new (form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;
                        };
                        FormDataEvent: {
                            prototype: FormDataEvent;
                            new (type: string, eventInitDict: FormDataEventInit): FormDataEvent;
                        };
                        FragmentDirective: {
                            prototype: FragmentDirective;
                            new (): FragmentDirective;
                        };
                        GainNode: {
                            prototype: GainNode;
                            new (context: BaseAudioContext, options?: GainOptions): GainNode;
                        };
                        Gamepad: {
                            prototype: Gamepad;
                            new (): Gamepad;
                        };
                        GamepadButton: {
                            prototype: GamepadButton;
                            new (): GamepadButton;
                        };
                        GamepadEvent: {
                            prototype: GamepadEvent;
                            new (type: string, eventInitDict: GamepadEventInit): GamepadEvent;
                        };
                        GamepadHapticActuator: {
                            prototype: GamepadHapticActuator;
                            new (): GamepadHapticActuator;
                        };
                        Geolocation: {
                            prototype: Geolocation;
                            new (): Geolocation;
                        };
                        GeolocationCoordinates: {
                            prototype: GeolocationCoordinates;
                            new (): GeolocationCoordinates;
                        };
                        GeolocationPosition: {
                            prototype: GeolocationPosition;
                            new (): GeolocationPosition;
                        };
                        GeolocationPositionError: {
                            prototype: GeolocationPositionError;
                            new (): GeolocationPositionError;
                            readonly PERMISSION_DENIED: 1;
                            readonly POSITION_UNAVAILABLE: 2;
                            readonly TIMEOUT: 3;
                        };
                        HTMLAllCollection: {
                            prototype: HTMLAllCollection;
                            new (): HTMLAllCollection;
                        };
                        HTMLAnchorElement: {
                            prototype: HTMLAnchorElement;
                            new (): HTMLAnchorElement;
                        };
                        HTMLAreaElement: {
                            prototype: HTMLAreaElement;
                            new (): HTMLAreaElement;
                        };
                        HTMLAudioElement: {
                            prototype: HTMLAudioElement;
                            new (): HTMLAudioElement;
                        };
                        HTMLBRElement: {
                            prototype: HTMLBRElement;
                            new (): HTMLBRElement;
                        };
                        HTMLBaseElement: {
                            prototype: HTMLBaseElement;
                            new (): HTMLBaseElement;
                        };
                        HTMLBodyElement: {
                            prototype: HTMLBodyElement;
                            new (): HTMLBodyElement;
                        };
                        HTMLButtonElement: {
                            prototype: HTMLButtonElement;
                            new (): HTMLButtonElement;
                        };
                        HTMLCanvasElement: {
                            prototype: HTMLCanvasElement;
                            new (): HTMLCanvasElement;
                        };
                        HTMLCollection: {
                            prototype: HTMLCollection;
                            new (): HTMLCollection;
                        };
                        HTMLDListElement: {
                            prototype: HTMLDListElement;
                            new (): HTMLDListElement;
                        };
                        HTMLDataElement: {
                            prototype: HTMLDataElement;
                            new (): HTMLDataElement;
                        };
                        HTMLDataListElement: {
                            prototype: HTMLDataListElement;
                            new (): HTMLDataListElement;
                        };
                        HTMLDetailsElement: {
                            prototype: HTMLDetailsElement;
                            new (): HTMLDetailsElement;
                        };
                        HTMLDialogElement: {
                            prototype: HTMLDialogElement;
                            new (): HTMLDialogElement;
                        };
                        HTMLDirectoryElement: {
                            prototype: HTMLDirectoryElement;
                            new (): HTMLDirectoryElement;
                        };
                        HTMLDivElement: {
                            prototype: HTMLDivElement;
                            new (): HTMLDivElement;
                        };
                        HTMLDocument: {
                            prototype: HTMLDocument;
                            new (): HTMLDocument;
                        };
                        HTMLElement: {
                            prototype: HTMLElement;
                            new (): HTMLElement;
                        };
                        HTMLEmbedElement: {
                            prototype: HTMLEmbedElement;
                            new (): HTMLEmbedElement;
                        };
                        HTMLFieldSetElement: {
                            prototype: HTMLFieldSetElement;
                            new (): HTMLFieldSetElement;
                        };
                        HTMLFontElement: {
                            prototype: HTMLFontElement;
                            new (): HTMLFontElement;
                        };
                        HTMLFormControlsCollection: {
                            prototype: HTMLFormControlsCollection;
                            new (): HTMLFormControlsCollection;
                        };
                        HTMLFormElement: {
                            prototype: HTMLFormElement;
                            new (): HTMLFormElement;
                        };
                        HTMLFrameElement: {
                            prototype: HTMLFrameElement;
                            new (): HTMLFrameElement;
                        };
                        HTMLFrameSetElement: {
                            prototype: HTMLFrameSetElement;
                            new (): HTMLFrameSetElement;
                        };
                        HTMLHRElement: {
                            prototype: HTMLHRElement;
                            new (): HTMLHRElement;
                        };
                        HTMLHeadElement: {
                            prototype: HTMLHeadElement;
                            new (): HTMLHeadElement;
                        };
                        HTMLHeadingElement: {
                            prototype: HTMLHeadingElement;
                            new (): HTMLHeadingElement;
                        };
                        HTMLHtmlElement: {
                            prototype: HTMLHtmlElement;
                            new (): HTMLHtmlElement;
                        };
                        HTMLIFrameElement: {
                            prototype: HTMLIFrameElement;
                            new (): HTMLIFrameElement;
                        };
                        HTMLImageElement: {
                            prototype: HTMLImageElement;
                            new (): HTMLImageElement;
                        };
                        HTMLInputElement: {
                            prototype: HTMLInputElement;
                            new (): HTMLInputElement;
                        };
                        HTMLLIElement: {
                            prototype: HTMLLIElement;
                            new (): HTMLLIElement;
                        };
                        HTMLLabelElement: {
                            prototype: HTMLLabelElement;
                            new (): HTMLLabelElement;
                        };
                        HTMLLegendElement: {
                            prototype: HTMLLegendElement;
                            new (): HTMLLegendElement;
                        };
                        HTMLLinkElement: {
                            prototype: HTMLLinkElement;
                            new (): HTMLLinkElement;
                        };
                        HTMLMapElement: {
                            prototype: HTMLMapElement;
                            new (): HTMLMapElement;
                        };
                        HTMLMarqueeElement: {
                            prototype: HTMLMarqueeElement;
                            new (): HTMLMarqueeElement;
                        };
                        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;
                        };
                        HTMLMenuElement: {
                            prototype: HTMLMenuElement;
                            new (): HTMLMenuElement;
                        };
                        HTMLMetaElement: {
                            prototype: HTMLMetaElement;
                            new (): HTMLMetaElement;
                        };
                        HTMLMeterElement: {
                            prototype: HTMLMeterElement;
                            new (): HTMLMeterElement;
                        };
                        HTMLModElement: {
                            prototype: HTMLModElement;
                            new (): HTMLModElement;
                        };
                        HTMLOListElement: {
                            prototype: HTMLOListElement;
                            new (): HTMLOListElement;
                        };
                        HTMLObjectElement: {
                            prototype: HTMLObjectElement;
                            new (): HTMLObjectElement;
                        };
                        HTMLOptGroupElement: {
                            prototype: HTMLOptGroupElement;
                            new (): HTMLOptGroupElement;
                        };
                        HTMLOptionElement: {
                            prototype: HTMLOptionElement;
                            new (): HTMLOptionElement;
                        };
                        HTMLOptionsCollection: {
                            prototype: HTMLOptionsCollection;
                            new (): HTMLOptionsCollection;
                        };
                        HTMLOutputElement: {
                            prototype: HTMLOutputElement;
                            new (): HTMLOutputElement;
                        };
                        HTMLParagraphElement: {
                            prototype: HTMLParagraphElement;
                            new (): HTMLParagraphElement;
                        };
                        HTMLParamElement: {
                            prototype: HTMLParamElement;
                            new (): HTMLParamElement;
                        };
                        HTMLPictureElement: {
                            prototype: HTMLPictureElement;
                            new (): HTMLPictureElement;
                        };
                        HTMLPreElement: {
                            prototype: HTMLPreElement;
                            new (): HTMLPreElement;
                        };
                        HTMLProgressElement: {
                            prototype: HTMLProgressElement;
                            new (): HTMLProgressElement;
                        };
                        HTMLQuoteElement: {
                            prototype: HTMLQuoteElement;
                            new (): HTMLQuoteElement;
                        };
                        HTMLScriptElement: {
                            prototype: HTMLScriptElement;
                            new (): HTMLScriptElement;
                            supports(type: string): boolean;
                        };
                        HTMLSelectElement: {
                            prototype: HTMLSelectElement;
                            new (): HTMLSelectElement;
                        };
                        HTMLSlotElement: {
                            prototype: HTMLSlotElement;
                            new (): HTMLSlotElement;
                        };
                        HTMLSourceElement: {
                            prototype: HTMLSourceElement;
                            new (): HTMLSourceElement;
                        };
                        HTMLSpanElement: {
                            prototype: HTMLSpanElement;
                            new (): HTMLSpanElement;
                        };
                        HTMLStyleElement: {
                            prototype: HTMLStyleElement;
                            new (): HTMLStyleElement;
                        };
                        HTMLTableCaptionElement: {
                            prototype: HTMLTableCaptionElement;
                            new (): HTMLTableCaptionElement;
                        };
                        HTMLTableCellElement: {
                            prototype: HTMLTableCellElement;
                            new (): HTMLTableCellElement;
                        };
                        HTMLTableColElement: {
                            prototype: HTMLTableColElement;
                            new (): HTMLTableColElement;
                        };
                        HTMLTableElement: {
                            prototype: HTMLTableElement;
                            new (): HTMLTableElement;
                        };
                        HTMLTableRowElement: {
                            prototype: HTMLTableRowElement;
                            new (): HTMLTableRowElement;
                        };
                        HTMLTableSectionElement: {
                            prototype: HTMLTableSectionElement;
                            new (): HTMLTableSectionElement;
                        };
                        HTMLTemplateElement: {
                            prototype: HTMLTemplateElement;
                            new (): HTMLTemplateElement;
                        };
                        HTMLTextAreaElement: {
                            prototype: HTMLTextAreaElement;
                            new (): HTMLTextAreaElement;
                        };
                        HTMLTimeElement: {
                            prototype: HTMLTimeElement;
                            new (): HTMLTimeElement;
                        };
                        HTMLTitleElement: {
                            prototype: HTMLTitleElement;
                            new (): HTMLTitleElement;
                        };
                        HTMLTrackElement: {
                            prototype: HTMLTrackElement;
                            new (): HTMLTrackElement;
                            readonly NONE: 0;
                            readonly LOADING: 1;
                            readonly LOADED: 2;
                            readonly ERROR: 3;
                        };
                        HTMLUListElement: {
                            prototype: HTMLUListElement;
                            new (): HTMLUListElement;
                        };
                        HTMLUnknownElement: {
                            prototype: HTMLUnknownElement;
                            new (): HTMLUnknownElement;
                        };
                        HTMLVideoElement: {
                            prototype: HTMLVideoElement;
                            new (): HTMLVideoElement;
                        };
                        HashChangeEvent: {
                            prototype: HashChangeEvent;
                            new (type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;
                        };
                        Headers: {
                            prototype: Headers;
                            new (init?: HeadersInit): Headers;
                        };
                        Highlight: {
                            prototype: Highlight;
                            new (...initialRanges: AbstractRange[]): Highlight;
                        };
                        HighlightRegistry: {
                            prototype: HighlightRegistry;
                            new (): HighlightRegistry;
                        };
                        History: {
                            prototype: History;
                            new (): History;
                        };
                        IDBCursor: {
                            prototype: IDBCursor;
                            new (): IDBCursor;
                        };
                        IDBCursorWithValue: {
                            prototype: IDBCursorWithValue;
                            new (): IDBCursorWithValue;
                        };
                        IDBDatabase: {
                            prototype: IDBDatabase;
                            new (): IDBDatabase;
                        };
                        IDBFactory: {
                            prototype: IDBFactory;
                            new (): IDBFactory;
                        };
                        IDBIndex: {
                            prototype: IDBIndex;
                            new (): IDBIndex;
                        };
                        IDBKeyRange: {
                            prototype: IDBKeyRange;
                            new (): IDBKeyRange;
                            bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;
                            lowerBound(lower: any, open?: boolean): IDBKeyRange;
                            only(value: any): IDBKeyRange;
                            upperBound(upper: any, open?: boolean): IDBKeyRange;
                        };
                        IDBObjectStore: {
                            prototype: IDBObjectStore;
                            new (): IDBObjectStore;
                        };
                        IDBOpenDBRequest: {
                            prototype: IDBOpenDBRequest;
                            new (): IDBOpenDBRequest;
                        };
                        IDBRequest: {
                            prototype: IDBRequest;
                            new (): IDBRequest;
                        };
                        IDBTransaction: {
                            prototype: IDBTransaction;
                            new (): IDBTransaction;
                        };
                        IDBVersionChangeEvent: {
                            prototype: IDBVersionChangeEvent;
                            new (type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;
                        };
                        IIRFilterNode: {
                            prototype: IIRFilterNode;
                            new (context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;
                        };
                        IdleDeadline: {
                            prototype: IdleDeadline;
                            new (): IdleDeadline;
                        };
                        ImageBitmap: {
                            prototype: ImageBitmap;
                            new (): ImageBitmap;
                        };
                        ImageBitmapRenderingContext: {
                            prototype: ImageBitmapRenderingContext;
                            new (): ImageBitmapRenderingContext;
                        };
                        ImageData: {
                            prototype: ImageData;
                            new (sw: number, sh: number, settings?: ImageDataSettings): ImageData;
                            new (data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;
                        };
                        ImageDecoder: {
                            prototype: ImageDecoder;
                            new (init: ImageDecoderInit): ImageDecoder;
                            isTypeSupported(type: string): Promise<boolean>;
                        };
                        ImageTrack: {
                            prototype: ImageTrack;
                            new (): ImageTrack;
                        };
                        ImageTrackList: {
                            prototype: ImageTrackList;
                            new (): ImageTrackList;
                        };
                        InputDeviceInfo: {
                            prototype: InputDeviceInfo;
                            new (): InputDeviceInfo;
                        };
                        InputEvent: {
                            prototype: InputEvent;
                            new (type: string, eventInitDict?: InputEventInit): InputEvent;
                        };
                        IntersectionObserver: {
                            prototype: IntersectionObserver;
                            new (callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;
                        };
                        IntersectionObserverEntry: {
                            prototype: IntersectionObserverEntry;
                            new (): IntersectionObserverEntry;
                        };
                        KeyboardEvent: {
                            prototype: KeyboardEvent;
                            new (type: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;
                            readonly DOM_KEY_LOCATION_STANDARD: 0;
                            readonly DOM_KEY_LOCATION_LEFT: 1;
                            readonly DOM_KEY_LOCATION_RIGHT: 2;
                            readonly DOM_KEY_LOCATION_NUMPAD: 3;
                        };
                        KeyframeEffect: {
                            prototype: KeyframeEffect;
                            new (target: Element | null, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeEffectOptions): KeyframeEffect;
                            new (source: KeyframeEffect): KeyframeEffect;
                        };
                        LargestContentfulPaint: {
                            prototype: LargestContentfulPaint;
                            new (): LargestContentfulPaint;
                        };
                        Location: {
                            prototype: Location;
                            new (): Location;
                        };
                        Lock: {
                            prototype: Lock;
                            new (): Lock;
                        };
                        LockManager: {
                            prototype: LockManager;
                            new (): LockManager;
                        };
                        MIDIAccess: {
                            prototype: MIDIAccess;
                            new (): MIDIAccess;
                        };
                        MIDIConnectionEvent: {
                            prototype: MIDIConnectionEvent;
                            new (type: string, eventInitDict?: MIDIConnectionEventInit): MIDIConnectionEvent;
                        };
                        MIDIInput: {
                            prototype: MIDIInput;
                            new (): MIDIInput;
                        };
                        MIDIInputMap: {
                            prototype: MIDIInputMap;
                            new (): MIDIInputMap;
                        };
                        MIDIMessageEvent: {
                            prototype: MIDIMessageEvent;
                            new (type: string, eventInitDict?: MIDIMessageEventInit): MIDIMessageEvent;
                        };
                        MIDIOutput: {
                            prototype: MIDIOutput;
                            new (): MIDIOutput;
                        };
                        MIDIOutputMap: {
                            prototype: MIDIOutputMap;
                            new (): MIDIOutputMap;
                        };
                        MIDIPort: {
                            prototype: MIDIPort;
                            new (): MIDIPort;
                        };
                        MathMLElement: {
                            prototype: MathMLElement;
                            new (): MathMLElement;
                        };
                        MediaCapabilities: {
                            prototype: MediaCapabilities;
                            new (): MediaCapabilities;
                        };
                        MediaDeviceInfo: {
                            prototype: MediaDeviceInfo;
                            new (): MediaDeviceInfo;
                        };
                        MediaDevices: {
                            prototype: MediaDevices;
                            new (): MediaDevices;
                        };
                        MediaElementAudioSourceNode: {
                            prototype: MediaElementAudioSourceNode;
                            new (context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;
                        };
                        MediaEncryptedEvent: {
                            prototype: MediaEncryptedEvent;
                            new (type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;
                        };
                        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;
                        };
                        MediaKeyMessageEvent: {
                            prototype: MediaKeyMessageEvent;
                            new (type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;
                        };
                        MediaKeySession: {
                            prototype: MediaKeySession;
                            new (): MediaKeySession;
                        };
                        MediaKeyStatusMap: {
                            prototype: MediaKeyStatusMap;
                            new (): MediaKeyStatusMap;
                        };
                        MediaKeySystemAccess: {
                            prototype: MediaKeySystemAccess;
                            new (): MediaKeySystemAccess;
                        };
                        MediaKeys: {
                            prototype: MediaKeys;
                            new (): MediaKeys;
                        };
                        MediaList: {
                            prototype: MediaList;
                            new (): MediaList;
                        };
                        MediaMetadata: {
                            prototype: MediaMetadata;
                            new (init?: MediaMetadataInit): MediaMetadata;
                        };
                        MediaQueryList: {
                            prototype: MediaQueryList;
                            new (): MediaQueryList;
                        };
                        MediaQueryListEvent: {
                            prototype: MediaQueryListEvent;
                            new (type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;
                        };
                        MediaRecorder: {
                            prototype: MediaRecorder;
                            new (stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;
                            isTypeSupported(type: string): boolean;
                        };
                        MediaSession: {
                            prototype: MediaSession;
                            new (): MediaSession;
                        };
                        MediaSource: {
                            prototype: MediaSource;
                            new (): MediaSource;
                            readonly canConstructInDedicatedWorker: boolean;
                            isTypeSupported(type: string): boolean;
                        };
                        MediaSourceHandle: {
                            prototype: MediaSourceHandle;
                            new (): MediaSourceHandle;
                        };
                        MediaStream: {
                            prototype: MediaStream;
                            new (): MediaStream;
                            new (stream: MediaStream): MediaStream;
                            new (tracks: MediaStreamTrack[]): MediaStream;
                        };
                        MediaStreamAudioDestinationNode: {
                            prototype: MediaStreamAudioDestinationNode;
                            new (context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;
                        };
                        MediaStreamAudioSourceNode: {
                            prototype: MediaStreamAudioSourceNode;
                            new (context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;
                        };
                        MediaStreamTrack: {
                            prototype: MediaStreamTrack;
                            new (): MediaStreamTrack;
                        };
                        MediaStreamTrackEvent: {
                            prototype: MediaStreamTrackEvent;
                            new (type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;
                        };
                        MessageChannel: {
                            prototype: MessageChannel;
                            new (): MessageChannel;
                        };
                        MessageEvent: {
                            prototype: MessageEvent;
                            new <T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;
                        };
                        MessagePort: {
                            prototype: MessagePort;
                            new (): MessagePort;
                        };
                        MimeType: {
                            prototype: MimeType;
                            new (): MimeType;
                        };
                        MimeTypeArray: {
                            prototype: MimeTypeArray;
                            new (): MimeTypeArray;
                        };
                        MouseEvent: {
                            prototype: MouseEvent;
                            new (type: string, eventInitDict?: MouseEventInit): MouseEvent;
                        };
                        MutationObserver: {
                            prototype: MutationObserver;
                            new (callback: MutationCallback): MutationObserver;
                        };
                        MutationRecord: {
                            prototype: MutationRecord;
                            new (): MutationRecord;
                        };
                        NamedNodeMap: {
                            prototype: NamedNodeMap;
                            new (): NamedNodeMap;
                        };
                        NavigationActivation: {
                            prototype: NavigationActivation;
                            new (): NavigationActivation;
                        };
                        NavigationHistoryEntry: {
                            prototype: NavigationHistoryEntry;
                            new (): NavigationHistoryEntry;
                        };
                        NavigationPreloadManager: {
                            prototype: NavigationPreloadManager;
                            new (): NavigationPreloadManager;
                        };
                        Navigator: {
                            prototype: Navigator;
                            new (): Navigator;
                        };
                        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: 1;
                            readonly DOCUMENT_POSITION_PRECEDING: 2;
                            readonly DOCUMENT_POSITION_FOLLOWING: 4;
                            readonly DOCUMENT_POSITION_CONTAINS: 8;
                            readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
                            readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
                        };
                        NodeIterator: {
                            prototype: NodeIterator;
                            new (): NodeIterator;
                        };
                        NodeList: {
                            prototype: NodeList;
                            new (): NodeList;
                        };
                        Notification: {
                            prototype: Notification;
                            new (title: string, options?: NotificationOptions): Notification;
                            readonly permission: NotificationPermission;
                            requestPermission(deprecatedCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;
                        };
                        OfflineAudioCompletionEvent: {
                            prototype: OfflineAudioCompletionEvent;
                            new (type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;
                        };
                        OfflineAudioContext: {
                            prototype: OfflineAudioContext;
                            new (contextOptions: OfflineAudioContextOptions): OfflineAudioContext;
                            new (numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;
                        };
                        OffscreenCanvas: {
                            prototype: OffscreenCanvas;
                            new (width: number, height: number): OffscreenCanvas;
                        };
                        OffscreenCanvasRenderingContext2D: {
                            prototype: OffscreenCanvasRenderingContext2D;
                            new (): OffscreenCanvasRenderingContext2D;
                        };
                        OscillatorNode: {
                            prototype: OscillatorNode;
                            new (context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;
                        };
                        OverconstrainedError: {
                            prototype: OverconstrainedError;
                            new (constraint: string, message?: string): OverconstrainedError;
                        };
                        PageRevealEvent: {
                            prototype: PageRevealEvent;
                            new (type: string, eventInitDict?: PageRevealEventInit): PageRevealEvent;
                        };
                        PageSwapEvent: {
                            prototype: PageSwapEvent;
                            new (type: string, eventInitDict?: PageSwapEventInit): PageSwapEvent;
                        };
                        PageTransitionEvent: {
                            prototype: PageTransitionEvent;
                            new (type: string, eventInitDict?: PageTransitionEventInit): PageTransitionEvent;
                        };
                        PannerNode: {
                            prototype: PannerNode;
                            new (context: BaseAudioContext, options?: PannerOptions): PannerNode;
                        };
                        Path2D: {
                            prototype: Path2D;
                            new (path?: Path2D | string): Path2D;
                        };
                        PaymentAddress: {
                            prototype: PaymentAddress;
                            new (): PaymentAddress;
                        };
                        PaymentMethodChangeEvent: {
                            prototype: PaymentMethodChangeEvent;
                            new (type: string, eventInitDict?: PaymentMethodChangeEventInit): PaymentMethodChangeEvent;
                        };
                        PaymentRequest: {
                            prototype: PaymentRequest;
                            new (methodData: PaymentMethodData[], details: PaymentDetailsInit, options?: PaymentOptions): PaymentRequest;
                        };
                        PaymentRequestUpdateEvent: {
                            prototype: PaymentRequestUpdateEvent;
                            new (type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;
                        };
                        PaymentResponse: {
                            prototype: PaymentResponse;
                            new (): PaymentResponse;
                        };
                        Performance: {
                            prototype: Performance;
                            new (): Performance;
                        };
                        PerformanceEntry: {
                            prototype: PerformanceEntry;
                            new (): PerformanceEntry;
                        };
                        PerformanceEventTiming: {
                            prototype: PerformanceEventTiming;
                            new (): PerformanceEventTiming;
                        };
                        PerformanceMark: {
                            prototype: PerformanceMark;
                            new (markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
                        };
                        PerformanceMeasure: {
                            prototype: PerformanceMeasure;
                            new (): PerformanceMeasure;
                        };
                        PerformanceNavigation: {
                            prototype: PerformanceNavigation;
                            new (): PerformanceNavigation;
                            readonly TYPE_NAVIGATE: 0;
                            readonly TYPE_RELOAD: 1;
                            readonly TYPE_BACK_FORWARD: 2;
                            readonly TYPE_RESERVED: 255;
                        };
                        PerformanceNavigationTiming: {
                            prototype: PerformanceNavigationTiming;
                            new (): PerformanceNavigationTiming;
                        };
                        PerformanceObserver: {
                            prototype: PerformanceObserver;
                            new (callback: PerformanceObserverCallback): PerformanceObserver;
                            readonly supportedEntryTypes: ReadonlyArray<string>;
                        };
                        PerformanceObserverEntryList: {
                            prototype: PerformanceObserverEntryList;
                            new (): PerformanceObserverEntryList;
                        };
                        PerformancePaintTiming: {
                            prototype: PerformancePaintTiming;
                            new (): PerformancePaintTiming;
                        };
                        PerformanceResourceTiming: {
                            prototype: PerformanceResourceTiming;
                            new (): PerformanceResourceTiming;
                        };
                        PerformanceServerTiming: {
                            prototype: PerformanceServerTiming;
                            new (): PerformanceServerTiming;
                        };
                        PerformanceTiming: {
                            prototype: PerformanceTiming;
                            new (): PerformanceTiming;
                        };
                        PeriodicWave: {
                            prototype: PeriodicWave;
                            new (context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;
                        };
                        PermissionStatus: {
                            prototype: PermissionStatus;
                            new (): PermissionStatus;
                        };
                        Permissions: {
                            prototype: Permissions;
                            new (): Permissions;
                        };
                        PictureInPictureEvent: {
                            prototype: PictureInPictureEvent;
                            new (type: string, eventInitDict: PictureInPictureEventInit): PictureInPictureEvent;
                        };
                        PictureInPictureWindow: {
                            prototype: PictureInPictureWindow;
                            new (): PictureInPictureWindow;
                        };
                        Plugin: {
                            prototype: Plugin;
                            new (): Plugin;
                        };
                        PluginArray: {
                            prototype: PluginArray;
                            new (): PluginArray;
                        };
                        PointerEvent: {
                            prototype: PointerEvent;
                            new (type: string, eventInitDict?: PointerEventInit): PointerEvent;
                        };
                        PopStateEvent: {
                            prototype: PopStateEvent;
                            new (type: string, eventInitDict?: PopStateEventInit): PopStateEvent;
                        };
                        ProcessingInstruction: {
                            prototype: ProcessingInstruction;
                            new (): ProcessingInstruction;
                        };
                        ProgressEvent: {
                            prototype: ProgressEvent;
                            new (type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
                        };
                        PromiseRejectionEvent: {
                            prototype: PromiseRejectionEvent;
                            new (type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;
                        };
                        PublicKeyCredential: {
                            prototype: PublicKeyCredential;
                            new (): PublicKeyCredential;
                            getClientCapabilities(): Promise<PublicKeyCredentialClientCapabilities>;
                            isConditionalMediationAvailable(): Promise<boolean>;
                            isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;
                            parseCreationOptionsFromJSON(options: PublicKeyCredentialCreationOptionsJSON): PublicKeyCredentialCreationOptions;
                            parseRequestOptionsFromJSON(options: PublicKeyCredentialRequestOptionsJSON): PublicKeyCredentialRequestOptions;
                        };
                        PushManager: {
                            prototype: PushManager;
                            new (): PushManager;
                            readonly supportedContentEncodings: ReadonlyArray<string>;
                        };
                        PushSubscription: {
                            prototype: PushSubscription;
                            new (): PushSubscription;
                        };
                        PushSubscriptionOptions: {
                            prototype: PushSubscriptionOptions;
                            new (): PushSubscriptionOptions;
                        };
                        RTCCertificate: {
                            prototype: RTCCertificate;
                            new (): RTCCertificate;
                        };
                        RTCDTMFSender: {
                            prototype: RTCDTMFSender;
                            new (): RTCDTMFSender;
                        };
                        RTCDTMFToneChangeEvent: {
                            prototype: RTCDTMFToneChangeEvent;
                            new (type: string, eventInitDict?: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;
                        };
                        RTCDataChannel: {
                            prototype: RTCDataChannel;
                            new (): RTCDataChannel;
                        };
                        RTCDataChannelEvent: {
                            prototype: RTCDataChannelEvent;
                            new (type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;
                        };
                        RTCDtlsTransport: {
                            prototype: RTCDtlsTransport;
                            new (): RTCDtlsTransport;
                        };
                        RTCEncodedAudioFrame: {
                            prototype: RTCEncodedAudioFrame;
                            new (): RTCEncodedAudioFrame;
                        };
                        RTCEncodedVideoFrame: {
                            prototype: RTCEncodedVideoFrame;
                            new (): RTCEncodedVideoFrame;
                        };
                        RTCError: {
                            prototype: RTCError;
                            new (init: RTCErrorInit, message?: string): RTCError;
                        };
                        RTCErrorEvent: {
                            prototype: RTCErrorEvent;
                            new (type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent;
                        };
                        RTCIceCandidate: {
                            prototype: RTCIceCandidate;
                            new (candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;
                        };
                        RTCIceTransport: {
                            prototype: RTCIceTransport;
                            new (): RTCIceTransport;
                        };
                        RTCPeerConnection: {
                            prototype: RTCPeerConnection;
                            new (configuration?: RTCConfiguration): RTCPeerConnection;
                            generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;
                        };
                        RTCPeerConnectionIceErrorEvent: {
                            prototype: RTCPeerConnectionIceErrorEvent;
                            new (type: string, eventInitDict: RTCPeerConnectionIceErrorEventInit): RTCPeerConnectionIceErrorEvent;
                        };
                        RTCPeerConnectionIceEvent: {
                            prototype: RTCPeerConnectionIceEvent;
                            new (type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;
                        };
                        RTCRtpReceiver: {
                            prototype: RTCRtpReceiver;
                            new (): RTCRtpReceiver;
                            getCapabilities(kind: string): RTCRtpCapabilities | null;
                        };
                        RTCRtpScriptTransform: {
                            prototype: RTCRtpScriptTransform;
                            new (worker: Worker, options?: any, transfer?: any[]): RTCRtpScriptTransform;
                        };
                        RTCRtpSender: {
                            prototype: RTCRtpSender;
                            new (): RTCRtpSender;
                            getCapabilities(kind: string): RTCRtpCapabilities | null;
                        };
                        RTCRtpTransceiver: {
                            prototype: RTCRtpTransceiver;
                            new (): RTCRtpTransceiver;
                        };
                        RTCSctpTransport: {
                            prototype: RTCSctpTransport;
                            new (): RTCSctpTransport;
                        };
                        RTCSessionDescription: {
                            prototype: RTCSessionDescription;
                            new (descriptionInitDict: RTCSessionDescriptionInit): RTCSessionDescription;
                        };
                        RTCStatsReport: {
                            prototype: RTCStatsReport;
                            new (): RTCStatsReport;
                        };
                        RTCTrackEvent: {
                            prototype: RTCTrackEvent;
                            new (type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;
                        };
                        RadioNodeList: {
                            prototype: RadioNodeList;
                            new (): RadioNodeList;
                        };
                        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;
                        };
                        ReadableByteStreamController: {
                            prototype: ReadableByteStreamController;
                            new (): ReadableByteStreamController;
                        };
                        ReadableStream: {
                            prototype: ReadableStream;
                            new (underlyingSource: UnderlyingByteSource, strategy?: {
                                highWaterMark?: number;
                            }): ReadableStream<Uint8Array>;
                            new <R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
                            new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
                        };
                        ReadableStreamBYOBReader: {
                            prototype: ReadableStreamBYOBReader;
                            new (stream: ReadableStream<Uint8Array>): ReadableStreamBYOBReader;
                        };
                        ReadableStreamBYOBRequest: {
                            prototype: ReadableStreamBYOBRequest;
                            new (): ReadableStreamBYOBRequest;
                        };
                        ReadableStreamDefaultController: {
                            prototype: ReadableStreamDefaultController;
                            new (): ReadableStreamDefaultController;
                        };
                        ReadableStreamDefaultReader: {
                            prototype: ReadableStreamDefaultReader;
                            new <R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
                        };
                        RemotePlayback: {
                            prototype: RemotePlayback;
                            new (): RemotePlayback;
                        };
                        Report: {
                            prototype: Report;
                            new (): Report;
                        };
                        ReportBody: {
                            prototype: ReportBody;
                            new (): ReportBody;
                        };
                        ReportingObserver: {
                            prototype: ReportingObserver;
                            new (callback: ReportingObserverCallback, options?: ReportingObserverOptions): ReportingObserver;
                        };
                        Request: {
                            prototype: Request;
                            new (input: RequestInfo | URL, init?: RequestInit): Request;
                        };
                        ResizeObserver: {
                            prototype: ResizeObserver;
                            new (callback: ResizeObserverCallback): ResizeObserver;
                        };
                        ResizeObserverEntry: {
                            prototype: ResizeObserverEntry;
                            new (): ResizeObserverEntry;
                        };
                        ResizeObserverSize: {
                            prototype: ResizeObserverSize;
                            new (): ResizeObserverSize;
                        };
                        Response: {
                            prototype: Response;
                            new (body?: BodyInit | null, init?: ResponseInit): Response;
                            error(): Response;
                            json(data: any, init?: ResponseInit): Response;
                            redirect(url: string | URL, status?: number): Response;
                        };
                        SVGAElement: {
                            prototype: SVGAElement;
                            new (): SVGAElement;
                        };
                        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;
                        };
                        SVGAnimateElement: {
                            prototype: SVGAnimateElement;
                            new (): SVGAnimateElement;
                        };
                        SVGAnimateMotionElement: {
                            prototype: SVGAnimateMotionElement;
                            new (): SVGAnimateMotionElement;
                        };
                        SVGAnimateTransformElement: {
                            prototype: SVGAnimateTransformElement;
                            new (): SVGAnimateTransformElement;
                        };
                        SVGAnimatedAngle: {
                            prototype: SVGAnimatedAngle;
                            new (): SVGAnimatedAngle;
                        };
                        SVGAnimatedBoolean: {
                            prototype: SVGAnimatedBoolean;
                            new (): SVGAnimatedBoolean;
                        };
                        SVGAnimatedEnumeration: {
                            prototype: SVGAnimatedEnumeration;
                            new (): SVGAnimatedEnumeration;
                        };
                        SVGAnimatedInteger: {
                            prototype: SVGAnimatedInteger;
                            new (): SVGAnimatedInteger;
                        };
                        SVGAnimatedLength: {
                            prototype: SVGAnimatedLength;
                            new (): SVGAnimatedLength;
                        };
                        SVGAnimatedLengthList: {
                            prototype: SVGAnimatedLengthList;
                            new (): SVGAnimatedLengthList;
                        };
                        SVGAnimatedNumber: {
                            prototype: SVGAnimatedNumber;
                            new (): SVGAnimatedNumber;
                        };
                        SVGAnimatedNumberList: {
                            prototype: SVGAnimatedNumberList;
                            new (): SVGAnimatedNumberList;
                        };
                        SVGAnimatedPreserveAspectRatio: {
                            prototype: SVGAnimatedPreserveAspectRatio;
                            new (): SVGAnimatedPreserveAspectRatio;
                        };
                        SVGAnimatedRect: {
                            prototype: SVGAnimatedRect;
                            new (): SVGAnimatedRect;
                        };
                        SVGAnimatedString: {
                            prototype: SVGAnimatedString;
                            new (): SVGAnimatedString;
                        };
                        SVGAnimatedTransformList: {
                            prototype: SVGAnimatedTransformList;
                            new (): SVGAnimatedTransformList;
                        };
                        SVGAnimationElement: {
                            prototype: SVGAnimationElement;
                            new (): SVGAnimationElement;
                        };
                        SVGCircleElement: {
                            prototype: SVGCircleElement;
                            new (): SVGCircleElement;
                        };
                        SVGClipPathElement: {
                            prototype: SVGClipPathElement;
                            new (): SVGClipPathElement;
                        };
                        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;
                        };
                        SVGDefsElement: {
                            prototype: SVGDefsElement;
                            new (): SVGDefsElement;
                        };
                        SVGDescElement: {
                            prototype: SVGDescElement;
                            new (): SVGDescElement;
                        };
                        SVGElement: {
                            prototype: SVGElement;
                            new (): SVGElement;
                        };
                        SVGEllipseElement: {
                            prototype: SVGEllipseElement;
                            new (): SVGEllipseElement;
                        };
                        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;
                        };
                        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;
                        };
                        SVGFEComponentTransferElement: {
                            prototype: SVGFEComponentTransferElement;
                            new (): SVGFEComponentTransferElement;
                        };
                        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;
                        };
                        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;
                        };
                        SVGFEDiffuseLightingElement: {
                            prototype: SVGFEDiffuseLightingElement;
                            new (): SVGFEDiffuseLightingElement;
                        };
                        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;
                        };
                        SVGFEDistantLightElement: {
                            prototype: SVGFEDistantLightElement;
                            new (): SVGFEDistantLightElement;
                        };
                        SVGFEDropShadowElement: {
                            prototype: SVGFEDropShadowElement;
                            new (): SVGFEDropShadowElement;
                        };
                        SVGFEFloodElement: {
                            prototype: SVGFEFloodElement;
                            new (): SVGFEFloodElement;
                        };
                        SVGFEFuncAElement: {
                            prototype: SVGFEFuncAElement;
                            new (): SVGFEFuncAElement;
                        };
                        SVGFEFuncBElement: {
                            prototype: SVGFEFuncBElement;
                            new (): SVGFEFuncBElement;
                        };
                        SVGFEFuncGElement: {
                            prototype: SVGFEFuncGElement;
                            new (): SVGFEFuncGElement;
                        };
                        SVGFEFuncRElement: {
                            prototype: SVGFEFuncRElement;
                            new (): SVGFEFuncRElement;
                        };
                        SVGFEGaussianBlurElement: {
                            prototype: SVGFEGaussianBlurElement;
                            new (): SVGFEGaussianBlurElement;
                        };
                        SVGFEImageElement: {
                            prototype: SVGFEImageElement;
                            new (): SVGFEImageElement;
                        };
                        SVGFEMergeElement: {
                            prototype: SVGFEMergeElement;
                            new (): SVGFEMergeElement;
                        };
                        SVGFEMergeNodeElement: {
                            prototype: SVGFEMergeNodeElement;
                            new (): SVGFEMergeNodeElement;
                        };
                        SVGFEMorphologyElement: {
                            prototype: SVGFEMorphologyElement;
                            new (): SVGFEMorphologyElement;
                            readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
                            readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
                            readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
                        };
                        SVGFEOffsetElement: {
                            prototype: SVGFEOffsetElement;
                            new (): SVGFEOffsetElement;
                        };
                        SVGFEPointLightElement: {
                            prototype: SVGFEPointLightElement;
                            new (): SVGFEPointLightElement;
                        };
                        SVGFESpecularLightingElement: {
                            prototype: SVGFESpecularLightingElement;
                            new (): SVGFESpecularLightingElement;
                        };
                        SVGFESpotLightElement: {
                            prototype: SVGFESpotLightElement;
                            new (): SVGFESpotLightElement;
                        };
                        SVGFETileElement: {
                            prototype: SVGFETileElement;
                            new (): SVGFETileElement;
                        };
                        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;
                        };
                        SVGFilterElement: {
                            prototype: SVGFilterElement;
                            new (): SVGFilterElement;
                        };
                        SVGForeignObjectElement: {
                            prototype: SVGForeignObjectElement;
                            new (): SVGForeignObjectElement;
                        };
                        SVGGElement: {
                            prototype: SVGGElement;
                            new (): SVGGElement;
                        };
                        SVGGeometryElement: {
                            prototype: SVGGeometryElement;
                            new (): SVGGeometryElement;
                        };
                        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;
                        };
                        SVGGraphicsElement: {
                            prototype: SVGGraphicsElement;
                            new (): SVGGraphicsElement;
                        };
                        SVGImageElement: {
                            prototype: SVGImageElement;
                            new (): SVGImageElement;
                        };
                        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;
                        };
                        SVGLengthList: {
                            prototype: SVGLengthList;
                            new (): SVGLengthList;
                        };
                        SVGLineElement: {
                            prototype: SVGLineElement;
                            new (): SVGLineElement;
                        };
                        SVGLinearGradientElement: {
                            prototype: SVGLinearGradientElement;
                            new (): SVGLinearGradientElement;
                        };
                        SVGMPathElement: {
                            prototype: SVGMPathElement;
                            new (): SVGMPathElement;
                        };
                        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;
                        };
                        SVGMaskElement: {
                            prototype: SVGMaskElement;
                            new (): SVGMaskElement;
                        };
                        SVGMetadataElement: {
                            prototype: SVGMetadataElement;
                            new (): SVGMetadataElement;
                        };
                        SVGNumber: {
                            prototype: SVGNumber;
                            new (): SVGNumber;
                        };
                        SVGNumberList: {
                            prototype: SVGNumberList;
                            new (): SVGNumberList;
                        };
                        SVGPathElement: {
                            prototype: SVGPathElement;
                            new (): SVGPathElement;
                        };
                        SVGPatternElement: {
                            prototype: SVGPatternElement;
                            new (): SVGPatternElement;
                        };
                        SVGPointList: {
                            prototype: SVGPointList;
                            new (): SVGPointList;
                        };
                        SVGPolygonElement: {
                            prototype: SVGPolygonElement;
                            new (): SVGPolygonElement;
                        };
                        SVGPolylineElement: {
                            prototype: SVGPolylineElement;
                            new (): SVGPolylineElement;
                        };
                        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;
                        };
                        SVGRadialGradientElement: {
                            prototype: SVGRadialGradientElement;
                            new (): SVGRadialGradientElement;
                        };
                        SVGRectElement: {
                            prototype: SVGRectElement;
                            new (): SVGRectElement;
                        };
                        SVGSVGElement: {
                            prototype: SVGSVGElement;
                            new (): SVGSVGElement;
                        };
                        SVGScriptElement: {
                            prototype: SVGScriptElement;
                            new (): SVGScriptElement;
                        };
                        SVGSetElement: {
                            prototype: SVGSetElement;
                            new (): SVGSetElement;
                        };
                        SVGStopElement: {
                            prototype: SVGStopElement;
                            new (): SVGStopElement;
                        };
                        SVGStringList: {
                            prototype: SVGStringList;
                            new (): SVGStringList;
                        };
                        SVGStyleElement: {
                            prototype: SVGStyleElement;
                            new (): SVGStyleElement;
                        };
                        SVGSwitchElement: {
                            prototype: SVGSwitchElement;
                            new (): SVGSwitchElement;
                        };
                        SVGSymbolElement: {
                            prototype: SVGSymbolElement;
                            new (): SVGSymbolElement;
                        };
                        SVGTSpanElement: {
                            prototype: SVGTSpanElement;
                            new (): SVGTSpanElement;
                        };
                        SVGTextContentElement: {
                            prototype: SVGTextContentElement;
                            new (): SVGTextContentElement;
                            readonly LENGTHADJUST_UNKNOWN: 0;
                            readonly LENGTHADJUST_SPACING: 1;
                            readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
                        };
                        SVGTextElement: {
                            prototype: SVGTextElement;
                            new (): SVGTextElement;
                        };
                        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;
                        };
                        SVGTextPositioningElement: {
                            prototype: SVGTextPositioningElement;
                            new (): SVGTextPositioningElement;
                        };
                        SVGTitleElement: {
                            prototype: SVGTitleElement;
                            new (): SVGTitleElement;
                        };
                        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;
                        };
                        SVGTransformList: {
                            prototype: SVGTransformList;
                            new (): SVGTransformList;
                        };
                        SVGUnitTypes: {
                            prototype: SVGUnitTypes;
                            new (): SVGUnitTypes;
                            readonly SVG_UNIT_TYPE_UNKNOWN: 0;
                            readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
                            readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
                        };
                        SVGUseElement: {
                            prototype: SVGUseElement;
                            new (): SVGUseElement;
                        };
                        SVGViewElement: {
                            prototype: SVGViewElement;
                            new (): SVGViewElement;
                        };
                        Screen: {
                            prototype: Screen;
                            new (): Screen;
                        };
                        ScreenOrientation: {
                            prototype: ScreenOrientation;
                            new (): ScreenOrientation;
                        };
                        ScriptProcessorNode: {
                            prototype: ScriptProcessorNode;
                            new (): ScriptProcessorNode;
                        };
                        SecurityPolicyViolationEvent: {
                            prototype: SecurityPolicyViolationEvent;
                            new (type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;
                        };
                        Selection: {
                            prototype: Selection;
                            new (): Selection;
                        };
                        ServiceWorker: {
                            prototype: ServiceWorker;
                            new (): ServiceWorker;
                        };
                        ServiceWorkerContainer: {
                            prototype: ServiceWorkerContainer;
                            new (): ServiceWorkerContainer;
                        };
                        ServiceWorkerRegistration: {
                            prototype: ServiceWorkerRegistration;
                            new (): ServiceWorkerRegistration;
                        };
                        ShadowRoot: {
                            prototype: ShadowRoot;
                            new (): ShadowRoot;
                        };
                        SharedWorker: {
                            prototype: SharedWorker;
                            new (scriptURL: string | URL, options?: string | WorkerOptions): SharedWorker;
                        };
                        SourceBuffer: {
                            prototype: SourceBuffer;
                            new (): SourceBuffer;
                        };
                        SourceBufferList: {
                            prototype: SourceBufferList;
                            new (): SourceBufferList;
                        };
                        SpeechRecognitionAlternative: {
                            prototype: SpeechRecognitionAlternative;
                            new (): SpeechRecognitionAlternative;
                        };
                        SpeechRecognitionResult: {
                            prototype: SpeechRecognitionResult;
                            new (): SpeechRecognitionResult;
                        };
                        SpeechRecognitionResultList: {
                            prototype: SpeechRecognitionResultList;
                            new (): SpeechRecognitionResultList;
                        };
                        SpeechSynthesis: {
                            prototype: SpeechSynthesis;
                            new (): SpeechSynthesis;
                        };
                        SpeechSynthesisErrorEvent: {
                            prototype: SpeechSynthesisErrorEvent;
                            new (type: string, eventInitDict: SpeechSynthesisErrorEventInit): SpeechSynthesisErrorEvent;
                        };
                        SpeechSynthesisEvent: {
                            prototype: SpeechSynthesisEvent;
                            new (type: string, eventInitDict: SpeechSynthesisEventInit): SpeechSynthesisEvent;
                        };
                        SpeechSynthesisUtterance: {
                            prototype: SpeechSynthesisUtterance;
                            new (text?: string): SpeechSynthesisUtterance;
                        };
                        SpeechSynthesisVoice: {
                            prototype: SpeechSynthesisVoice;
                            new (): SpeechSynthesisVoice;
                        };
                        StaticRange: {
                            prototype: StaticRange;
                            new (init: StaticRangeInit): StaticRange;
                        };
                        StereoPannerNode: {
                            prototype: StereoPannerNode;
                            new (context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;
                        };
                        Storage: {
                            prototype: Storage;
                            new (): Storage;
                        };
                        StorageEvent: {
                            prototype: StorageEvent;
                            new (type: string, eventInitDict?: StorageEventInit): StorageEvent;
                        };
                        StorageManager: {
                            prototype: StorageManager;
                            new (): StorageManager;
                        };
                        StylePropertyMap: {
                            prototype: StylePropertyMap;
                            new (): StylePropertyMap;
                        };
                        StylePropertyMapReadOnly: {
                            prototype: StylePropertyMapReadOnly;
                            new (): StylePropertyMapReadOnly;
                        };
                        StyleSheet: {
                            prototype: StyleSheet;
                            new (): StyleSheet;
                        };
                        StyleSheetList: {
                            prototype: StyleSheetList;
                            new (): StyleSheetList;
                        };
                        SubmitEvent: {
                            prototype: SubmitEvent;
                            new (type: string, eventInitDict?: SubmitEventInit): SubmitEvent;
                        };
                        SubtleCrypto: {
                            prototype: SubtleCrypto;
                            new (): SubtleCrypto;
                        };
                        Text: {
                            prototype: Text;
                            new (data?: string): Text;
                        };
                        TextDecoder: {
                            prototype: TextDecoder;
                            new (label?: string, options?: TextDecoderOptions): TextDecoder;
                        };
                        TextDecoderStream: {
                            prototype: TextDecoderStream;
                            new (label?: string, options?: TextDecoderOptions): TextDecoderStream;
                        };
                        TextEncoder: {
                            prototype: TextEncoder;
                            new (): TextEncoder;
                        };
                        TextEncoderStream: {
                            prototype: TextEncoderStream;
                            new (): TextEncoderStream;
                        };
                        TextEvent: {
                            prototype: TextEvent;
                            new (): TextEvent;
                        };
                        TextMetrics: {
                            prototype: TextMetrics;
                            new (): TextMetrics;
                        };
                        TextTrack: {
                            prototype: TextTrack;
                            new (): TextTrack;
                        };
                        TextTrackCue: {
                            prototype: TextTrackCue;
                            new (): TextTrackCue;
                        };
                        TextTrackCueList: {
                            prototype: TextTrackCueList;
                            new (): TextTrackCueList;
                        };
                        TextTrackList: {
                            prototype: TextTrackList;
                            new (): TextTrackList;
                        };
                        TimeRanges: {
                            prototype: TimeRanges;
                            new (): TimeRanges;
                        };
                        ToggleEvent: {
                            prototype: ToggleEvent;
                            new (type: string, eventInitDict?: ToggleEventInit): ToggleEvent;
                        };
                        Touch: {
                            prototype: Touch;
                            new (touchInitDict: TouchInit): Touch;
                        };
                        TouchEvent: {
                            prototype: TouchEvent;
                            new (type: string, eventInitDict?: TouchEventInit): TouchEvent;
                        };
                        TouchList: {
                            prototype: TouchList;
                            new (): TouchList;
                        };
                        TrackEvent: {
                            prototype: TrackEvent;
                            new (type: string, eventInitDict?: TrackEventInit): TrackEvent;
                        };
                        TransformStream: {
                            prototype: TransformStream;
                            new <I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;
                        };
                        TransformStreamDefaultController: {
                            prototype: TransformStreamDefaultController;
                            new (): TransformStreamDefaultController;
                        };
                        TransitionEvent: {
                            prototype: TransitionEvent;
                            new (type: string, transitionEventInitDict?: TransitionEventInit): TransitionEvent;
                        };
                        TreeWalker: {
                            prototype: TreeWalker;
                            new (): TreeWalker;
                        };
                        UIEvent: {
                            prototype: UIEvent;
                            new (type: string, eventInitDict?: UIEventInit): UIEvent;
                        };
                        URL: {
                            prototype: URL;
                            new (url: string | URL, base?: string | URL): URL;
                            canParse(url: string | URL, base?: string | URL): boolean;
                            createObjectURL(obj: Blob | MediaSource): string;
                            parse(url: string | URL, base?: string | URL): URL | null;
                            revokeObjectURL(url: string): void;
                        };
                        webkitURL: typeof URL;
                        URLSearchParams: {
                            prototype: URLSearchParams;
                            new (init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;
                        };
                        UserActivation: {
                            prototype: UserActivation;
                            new (): UserActivation;
                        };
                        VTTCue: {
                            prototype: VTTCue;
                            new (startTime: number, endTime: number, text: string): VTTCue;
                        };
                        VTTRegion: {
                            prototype: VTTRegion;
                            new (): VTTRegion;
                        };
                        ValidityState: {
                            prototype: ValidityState;
                            new (): ValidityState;
                        };
                        VideoColorSpace: {
                            prototype: VideoColorSpace;
                            new (init?: VideoColorSpaceInit): VideoColorSpace;
                        };
                        VideoDecoder: {
                            prototype: VideoDecoder;
                            new (init: VideoDecoderInit): VideoDecoder;
                            isConfigSupported(config: VideoDecoderConfig): Promise<VideoDecoderSupport>;
                        };
                        VideoEncoder: {
                            prototype: VideoEncoder;
                            new (init: VideoEncoderInit): VideoEncoder;
                            isConfigSupported(config: VideoEncoderConfig): Promise<VideoEncoderSupport>;
                        };
                        VideoFrame: {
                            prototype: VideoFrame;
                            new (image: CanvasImageSource, init?: VideoFrameInit): VideoFrame;
                            new (data: AllowSharedBufferSource, init: VideoFrameBufferInit): VideoFrame;
                        };
                        VideoPlaybackQuality: {
                            prototype: VideoPlaybackQuality;
                            new (): VideoPlaybackQuality;
                        };
                        ViewTransition: {
                            prototype: ViewTransition;
                            new (): ViewTransition;
                        };
                        ViewTransitionTypeSet: {
                            prototype: ViewTransitionTypeSet;
                            new (): ViewTransitionTypeSet;
                        };
                        VisualViewport: {
                            prototype: VisualViewport;
                            new (): VisualViewport;
                        };
                        WakeLock: {
                            prototype: WakeLock;
                            new (): WakeLock;
                        };
                        WakeLockSentinel: {
                            prototype: WakeLockSentinel;
                            new (): WakeLockSentinel;
                        };
                        WaveShaperNode: {
                            prototype: WaveShaperNode;
                            new (context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;
                        };
                        WebGL2RenderingContext: {
                            prototype: WebGL2RenderingContext;
                            new (): WebGL2RenderingContext;
                            readonly READ_BUFFER: 3074;
                            readonly UNPACK_ROW_LENGTH: 3314;
                            readonly UNPACK_SKIP_ROWS: 3315;
                            readonly UNPACK_SKIP_PIXELS: 3316;
                            readonly PACK_ROW_LENGTH: 3330;
                            readonly PACK_SKIP_ROWS: 3331;
                            readonly PACK_SKIP_PIXELS: 3332;
                            readonly COLOR: 6144;
                            readonly DEPTH: 6145;
                            readonly STENCIL: 6146;
                            readonly RED: 6403;
                            readonly RGB8: 32849;
                            readonly RGB10_A2: 32857;
                            readonly TEXTURE_BINDING_3D: 32874;
                            readonly UNPACK_SKIP_IMAGES: 32877;
                            readonly UNPACK_IMAGE_HEIGHT: 32878;
                            readonly TEXTURE_3D: 32879;
                            readonly TEXTURE_WRAP_R: 32882;
                            readonly MAX_3D_TEXTURE_SIZE: 32883;
                            readonly UNSIGNED_INT_2_10_10_10_REV: 33640;
                            readonly MAX_ELEMENTS_VERTICES: 33000;
                            readonly MAX_ELEMENTS_INDICES: 33001;
                            readonly TEXTURE_MIN_LOD: 33082;
                            readonly TEXTURE_MAX_LOD: 33083;
                            readonly TEXTURE_BASE_LEVEL: 33084;
                            readonly TEXTURE_MAX_LEVEL: 33085;
                            readonly MIN: 32775;
                            readonly MAX: 32776;
                            readonly DEPTH_COMPONENT24: 33190;
                            readonly MAX_TEXTURE_LOD_BIAS: 34045;
                            readonly TEXTURE_COMPARE_MODE: 34892;
                            readonly TEXTURE_COMPARE_FUNC: 34893;
                            readonly CURRENT_QUERY: 34917;
                            readonly QUERY_RESULT: 34918;
                            readonly QUERY_RESULT_AVAILABLE: 34919;
                            readonly STREAM_READ: 35041;
                            readonly STREAM_COPY: 35042;
                            readonly STATIC_READ: 35045;
                            readonly STATIC_COPY: 35046;
                            readonly DYNAMIC_READ: 35049;
                            readonly DYNAMIC_COPY: 35050;
                            readonly MAX_DRAW_BUFFERS: 34852;
                            readonly DRAW_BUFFER0: 34853;
                            readonly DRAW_BUFFER1: 34854;
                            readonly DRAW_BUFFER2: 34855;
                            readonly DRAW_BUFFER3: 34856;
                            readonly DRAW_BUFFER4: 34857;
                            readonly DRAW_BUFFER5: 34858;
                            readonly DRAW_BUFFER6: 34859;
                            readonly DRAW_BUFFER7: 34860;
                            readonly DRAW_BUFFER8: 34861;
                            readonly DRAW_BUFFER9: 34862;
                            readonly DRAW_BUFFER10: 34863;
                            readonly DRAW_BUFFER11: 34864;
                            readonly DRAW_BUFFER12: 34865;
                            readonly DRAW_BUFFER13: 34866;
                            readonly DRAW_BUFFER14: 34867;
                            readonly DRAW_BUFFER15: 34868;
                            readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 35657;
                            readonly MAX_VERTEX_UNIFORM_COMPONENTS: 35658;
                            readonly SAMPLER_3D: 35679;
                            readonly SAMPLER_2D_SHADOW: 35682;
                            readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 35723;
                            readonly PIXEL_PACK_BUFFER: 35051;
                            readonly PIXEL_UNPACK_BUFFER: 35052;
                            readonly PIXEL_PACK_BUFFER_BINDING: 35053;
                            readonly PIXEL_UNPACK_BUFFER_BINDING: 35055;
                            readonly FLOAT_MAT2x3: 35685;
                            readonly FLOAT_MAT2x4: 35686;
                            readonly FLOAT_MAT3x2: 35687;
                            readonly FLOAT_MAT3x4: 35688;
                            readonly FLOAT_MAT4x2: 35689;
                            readonly FLOAT_MAT4x3: 35690;
                            readonly SRGB: 35904;
                            readonly SRGB8: 35905;
                            readonly SRGB8_ALPHA8: 35907;
                            readonly COMPARE_REF_TO_TEXTURE: 34894;
                            readonly RGBA32F: 34836;
                            readonly RGB32F: 34837;
                            readonly RGBA16F: 34842;
                            readonly RGB16F: 34843;
                            readonly VERTEX_ATTRIB_ARRAY_INTEGER: 35069;
                            readonly MAX_ARRAY_TEXTURE_LAYERS: 35071;
                            readonly MIN_PROGRAM_TEXEL_OFFSET: 35076;
                            readonly MAX_PROGRAM_TEXEL_OFFSET: 35077;
                            readonly MAX_VARYING_COMPONENTS: 35659;
                            readonly TEXTURE_2D_ARRAY: 35866;
                            readonly TEXTURE_BINDING_2D_ARRAY: 35869;
                            readonly R11F_G11F_B10F: 35898;
                            readonly UNSIGNED_INT_10F_11F_11F_REV: 35899;
                            readonly RGB9_E5: 35901;
                            readonly UNSIGNED_INT_5_9_9_9_REV: 35902;
                            readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 35967;
                            readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 35968;
                            readonly TRANSFORM_FEEDBACK_VARYINGS: 35971;
                            readonly TRANSFORM_FEEDBACK_BUFFER_START: 35972;
                            readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 35973;
                            readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 35976;
                            readonly RASTERIZER_DISCARD: 35977;
                            readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 35978;
                            readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 35979;
                            readonly INTERLEAVED_ATTRIBS: 35980;
                            readonly SEPARATE_ATTRIBS: 35981;
                            readonly TRANSFORM_FEEDBACK_BUFFER: 35982;
                            readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 35983;
                            readonly RGBA32UI: 36208;
                            readonly RGB32UI: 36209;
                            readonly RGBA16UI: 36214;
                            readonly RGB16UI: 36215;
                            readonly RGBA8UI: 36220;
                            readonly RGB8UI: 36221;
                            readonly RGBA32I: 36226;
                            readonly RGB32I: 36227;
                            readonly RGBA16I: 36232;
                            readonly RGB16I: 36233;
                            readonly RGBA8I: 36238;
                            readonly RGB8I: 36239;
                            readonly RED_INTEGER: 36244;
                            readonly RGB_INTEGER: 36248;
                            readonly RGBA_INTEGER: 36249;
                            readonly SAMPLER_2D_ARRAY: 36289;
                            readonly SAMPLER_2D_ARRAY_SHADOW: 36292;
                            readonly SAMPLER_CUBE_SHADOW: 36293;
                            readonly UNSIGNED_INT_VEC2: 36294;
                            readonly UNSIGNED_INT_VEC3: 36295;
                            readonly UNSIGNED_INT_VEC4: 36296;
                            readonly INT_SAMPLER_2D: 36298;
                            readonly INT_SAMPLER_3D: 36299;
                            readonly INT_SAMPLER_CUBE: 36300;
                            readonly INT_SAMPLER_2D_ARRAY: 36303;
                            readonly UNSIGNED_INT_SAMPLER_2D: 36306;
                            readonly UNSIGNED_INT_SAMPLER_3D: 36307;
                            readonly UNSIGNED_INT_SAMPLER_CUBE: 36308;
                            readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 36311;
                            readonly DEPTH_COMPONENT32F: 36012;
                            readonly DEPTH32F_STENCIL8: 36013;
                            readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 36269;
                            readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 33296;
                            readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 33297;
                            readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 33298;
                            readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 33299;
                            readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 33300;
                            readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 33301;
                            readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 33302;
                            readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 33303;
                            readonly FRAMEBUFFER_DEFAULT: 33304;
                            readonly UNSIGNED_INT_24_8: 34042;
                            readonly DEPTH24_STENCIL8: 35056;
                            readonly UNSIGNED_NORMALIZED: 35863;
                            readonly DRAW_FRAMEBUFFER_BINDING: 36006;
                            readonly READ_FRAMEBUFFER: 36008;
                            readonly DRAW_FRAMEBUFFER: 36009;
                            readonly READ_FRAMEBUFFER_BINDING: 36010;
                            readonly RENDERBUFFER_SAMPLES: 36011;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 36052;
                            readonly MAX_COLOR_ATTACHMENTS: 36063;
                            readonly COLOR_ATTACHMENT1: 36065;
                            readonly COLOR_ATTACHMENT2: 36066;
                            readonly COLOR_ATTACHMENT3: 36067;
                            readonly COLOR_ATTACHMENT4: 36068;
                            readonly COLOR_ATTACHMENT5: 36069;
                            readonly COLOR_ATTACHMENT6: 36070;
                            readonly COLOR_ATTACHMENT7: 36071;
                            readonly COLOR_ATTACHMENT8: 36072;
                            readonly COLOR_ATTACHMENT9: 36073;
                            readonly COLOR_ATTACHMENT10: 36074;
                            readonly COLOR_ATTACHMENT11: 36075;
                            readonly COLOR_ATTACHMENT12: 36076;
                            readonly COLOR_ATTACHMENT13: 36077;
                            readonly COLOR_ATTACHMENT14: 36078;
                            readonly COLOR_ATTACHMENT15: 36079;
                            readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 36182;
                            readonly MAX_SAMPLES: 36183;
                            readonly HALF_FLOAT: 5131;
                            readonly RG: 33319;
                            readonly RG_INTEGER: 33320;
                            readonly R8: 33321;
                            readonly RG8: 33323;
                            readonly R16F: 33325;
                            readonly R32F: 33326;
                            readonly RG16F: 33327;
                            readonly RG32F: 33328;
                            readonly R8I: 33329;
                            readonly R8UI: 33330;
                            readonly R16I: 33331;
                            readonly R16UI: 33332;
                            readonly R32I: 33333;
                            readonly R32UI: 33334;
                            readonly RG8I: 33335;
                            readonly RG8UI: 33336;
                            readonly RG16I: 33337;
                            readonly RG16UI: 33338;
                            readonly RG32I: 33339;
                            readonly RG32UI: 33340;
                            readonly VERTEX_ARRAY_BINDING: 34229;
                            readonly R8_SNORM: 36756;
                            readonly RG8_SNORM: 36757;
                            readonly RGB8_SNORM: 36758;
                            readonly RGBA8_SNORM: 36759;
                            readonly SIGNED_NORMALIZED: 36764;
                            readonly COPY_READ_BUFFER: 36662;
                            readonly COPY_WRITE_BUFFER: 36663;
                            readonly COPY_READ_BUFFER_BINDING: 36662;
                            readonly COPY_WRITE_BUFFER_BINDING: 36663;
                            readonly UNIFORM_BUFFER: 35345;
                            readonly UNIFORM_BUFFER_BINDING: 35368;
                            readonly UNIFORM_BUFFER_START: 35369;
                            readonly UNIFORM_BUFFER_SIZE: 35370;
                            readonly MAX_VERTEX_UNIFORM_BLOCKS: 35371;
                            readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 35373;
                            readonly MAX_COMBINED_UNIFORM_BLOCKS: 35374;
                            readonly MAX_UNIFORM_BUFFER_BINDINGS: 35375;
                            readonly MAX_UNIFORM_BLOCK_SIZE: 35376;
                            readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 35377;
                            readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 35379;
                            readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 35380;
                            readonly ACTIVE_UNIFORM_BLOCKS: 35382;
                            readonly UNIFORM_TYPE: 35383;
                            readonly UNIFORM_SIZE: 35384;
                            readonly UNIFORM_BLOCK_INDEX: 35386;
                            readonly UNIFORM_OFFSET: 35387;
                            readonly UNIFORM_ARRAY_STRIDE: 35388;
                            readonly UNIFORM_MATRIX_STRIDE: 35389;
                            readonly UNIFORM_IS_ROW_MAJOR: 35390;
                            readonly UNIFORM_BLOCK_BINDING: 35391;
                            readonly UNIFORM_BLOCK_DATA_SIZE: 35392;
                            readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 35394;
                            readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 35395;
                            readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 35396;
                            readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 35398;
                            readonly INVALID_INDEX: 4294967295;
                            readonly MAX_VERTEX_OUTPUT_COMPONENTS: 37154;
                            readonly MAX_FRAGMENT_INPUT_COMPONENTS: 37157;
                            readonly MAX_SERVER_WAIT_TIMEOUT: 37137;
                            readonly OBJECT_TYPE: 37138;
                            readonly SYNC_CONDITION: 37139;
                            readonly SYNC_STATUS: 37140;
                            readonly SYNC_FLAGS: 37141;
                            readonly SYNC_FENCE: 37142;
                            readonly SYNC_GPU_COMMANDS_COMPLETE: 37143;
                            readonly UNSIGNALED: 37144;
                            readonly SIGNALED: 37145;
                            readonly ALREADY_SIGNALED: 37146;
                            readonly TIMEOUT_EXPIRED: 37147;
                            readonly CONDITION_SATISFIED: 37148;
                            readonly WAIT_FAILED: 37149;
                            readonly SYNC_FLUSH_COMMANDS_BIT: 1;
                            readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 35070;
                            readonly ANY_SAMPLES_PASSED: 35887;
                            readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 36202;
                            readonly SAMPLER_BINDING: 35097;
                            readonly RGB10_A2UI: 36975;
                            readonly INT_2_10_10_10_REV: 36255;
                            readonly TRANSFORM_FEEDBACK: 36386;
                            readonly TRANSFORM_FEEDBACK_PAUSED: 36387;
                            readonly TRANSFORM_FEEDBACK_ACTIVE: 36388;
                            readonly TRANSFORM_FEEDBACK_BINDING: 36389;
                            readonly TEXTURE_IMMUTABLE_FORMAT: 37167;
                            readonly MAX_ELEMENT_INDEX: 36203;
                            readonly TEXTURE_IMMUTABLE_LEVELS: 33503;
                            readonly TIMEOUT_IGNORED: -1;
                            readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 37447;
                            readonly DEPTH_BUFFER_BIT: 256;
                            readonly STENCIL_BUFFER_BIT: 1024;
                            readonly COLOR_BUFFER_BIT: 16384;
                            readonly POINTS: 0;
                            readonly LINES: 1;
                            readonly LINE_LOOP: 2;
                            readonly LINE_STRIP: 3;
                            readonly TRIANGLES: 4;
                            readonly TRIANGLE_STRIP: 5;
                            readonly TRIANGLE_FAN: 6;
                            readonly ZERO: 0;
                            readonly ONE: 1;
                            readonly SRC_COLOR: 768;
                            readonly ONE_MINUS_SRC_COLOR: 769;
                            readonly SRC_ALPHA: 770;
                            readonly ONE_MINUS_SRC_ALPHA: 771;
                            readonly DST_ALPHA: 772;
                            readonly ONE_MINUS_DST_ALPHA: 773;
                            readonly DST_COLOR: 774;
                            readonly ONE_MINUS_DST_COLOR: 775;
                            readonly SRC_ALPHA_SATURATE: 776;
                            readonly FUNC_ADD: 32774;
                            readonly BLEND_EQUATION: 32777;
                            readonly BLEND_EQUATION_RGB: 32777;
                            readonly BLEND_EQUATION_ALPHA: 34877;
                            readonly FUNC_SUBTRACT: 32778;
                            readonly FUNC_REVERSE_SUBTRACT: 32779;
                            readonly BLEND_DST_RGB: 32968;
                            readonly BLEND_SRC_RGB: 32969;
                            readonly BLEND_DST_ALPHA: 32970;
                            readonly BLEND_SRC_ALPHA: 32971;
                            readonly CONSTANT_COLOR: 32769;
                            readonly ONE_MINUS_CONSTANT_COLOR: 32770;
                            readonly CONSTANT_ALPHA: 32771;
                            readonly ONE_MINUS_CONSTANT_ALPHA: 32772;
                            readonly BLEND_COLOR: 32773;
                            readonly ARRAY_BUFFER: 34962;
                            readonly ELEMENT_ARRAY_BUFFER: 34963;
                            readonly ARRAY_BUFFER_BINDING: 34964;
                            readonly ELEMENT_ARRAY_BUFFER_BINDING: 34965;
                            readonly STREAM_DRAW: 35040;
                            readonly STATIC_DRAW: 35044;
                            readonly DYNAMIC_DRAW: 35048;
                            readonly BUFFER_SIZE: 34660;
                            readonly BUFFER_USAGE: 34661;
                            readonly CURRENT_VERTEX_ATTRIB: 34342;
                            readonly FRONT: 1028;
                            readonly BACK: 1029;
                            readonly FRONT_AND_BACK: 1032;
                            readonly CULL_FACE: 2884;
                            readonly BLEND: 3042;
                            readonly DITHER: 3024;
                            readonly STENCIL_TEST: 2960;
                            readonly DEPTH_TEST: 2929;
                            readonly SCISSOR_TEST: 3089;
                            readonly POLYGON_OFFSET_FILL: 32823;
                            readonly SAMPLE_ALPHA_TO_COVERAGE: 32926;
                            readonly SAMPLE_COVERAGE: 32928;
                            readonly NO_ERROR: 0;
                            readonly INVALID_ENUM: 1280;
                            readonly INVALID_VALUE: 1281;
                            readonly INVALID_OPERATION: 1282;
                            readonly OUT_OF_MEMORY: 1285;
                            readonly CW: 2304;
                            readonly CCW: 2305;
                            readonly LINE_WIDTH: 2849;
                            readonly ALIASED_POINT_SIZE_RANGE: 33901;
                            readonly ALIASED_LINE_WIDTH_RANGE: 33902;
                            readonly CULL_FACE_MODE: 2885;
                            readonly FRONT_FACE: 2886;
                            readonly DEPTH_RANGE: 2928;
                            readonly DEPTH_WRITEMASK: 2930;
                            readonly DEPTH_CLEAR_VALUE: 2931;
                            readonly DEPTH_FUNC: 2932;
                            readonly STENCIL_CLEAR_VALUE: 2961;
                            readonly STENCIL_FUNC: 2962;
                            readonly STENCIL_FAIL: 2964;
                            readonly STENCIL_PASS_DEPTH_FAIL: 2965;
                            readonly STENCIL_PASS_DEPTH_PASS: 2966;
                            readonly STENCIL_REF: 2967;
                            readonly STENCIL_VALUE_MASK: 2963;
                            readonly STENCIL_WRITEMASK: 2968;
                            readonly STENCIL_BACK_FUNC: 34816;
                            readonly STENCIL_BACK_FAIL: 34817;
                            readonly STENCIL_BACK_PASS_DEPTH_FAIL: 34818;
                            readonly STENCIL_BACK_PASS_DEPTH_PASS: 34819;
                            readonly STENCIL_BACK_REF: 36003;
                            readonly STENCIL_BACK_VALUE_MASK: 36004;
                            readonly STENCIL_BACK_WRITEMASK: 36005;
                            readonly VIEWPORT: 2978;
                            readonly SCISSOR_BOX: 3088;
                            readonly COLOR_CLEAR_VALUE: 3106;
                            readonly COLOR_WRITEMASK: 3107;
                            readonly UNPACK_ALIGNMENT: 3317;
                            readonly PACK_ALIGNMENT: 3333;
                            readonly MAX_TEXTURE_SIZE: 3379;
                            readonly MAX_VIEWPORT_DIMS: 3386;
                            readonly SUBPIXEL_BITS: 3408;
                            readonly RED_BITS: 3410;
                            readonly GREEN_BITS: 3411;
                            readonly BLUE_BITS: 3412;
                            readonly ALPHA_BITS: 3413;
                            readonly DEPTH_BITS: 3414;
                            readonly STENCIL_BITS: 3415;
                            readonly POLYGON_OFFSET_UNITS: 10752;
                            readonly POLYGON_OFFSET_FACTOR: 32824;
                            readonly TEXTURE_BINDING_2D: 32873;
                            readonly SAMPLE_BUFFERS: 32936;
                            readonly SAMPLES: 32937;
                            readonly SAMPLE_COVERAGE_VALUE: 32938;
                            readonly SAMPLE_COVERAGE_INVERT: 32939;
                            readonly COMPRESSED_TEXTURE_FORMATS: 34467;
                            readonly DONT_CARE: 4352;
                            readonly FASTEST: 4353;
                            readonly NICEST: 4354;
                            readonly GENERATE_MIPMAP_HINT: 33170;
                            readonly BYTE: 5120;
                            readonly UNSIGNED_BYTE: 5121;
                            readonly SHORT: 5122;
                            readonly UNSIGNED_SHORT: 5123;
                            readonly INT: 5124;
                            readonly UNSIGNED_INT: 5125;
                            readonly FLOAT: 5126;
                            readonly DEPTH_COMPONENT: 6402;
                            readonly ALPHA: 6406;
                            readonly RGB: 6407;
                            readonly RGBA: 6408;
                            readonly LUMINANCE: 6409;
                            readonly LUMINANCE_ALPHA: 6410;
                            readonly UNSIGNED_SHORT_4_4_4_4: 32819;
                            readonly UNSIGNED_SHORT_5_5_5_1: 32820;
                            readonly UNSIGNED_SHORT_5_6_5: 33635;
                            readonly FRAGMENT_SHADER: 35632;
                            readonly VERTEX_SHADER: 35633;
                            readonly MAX_VERTEX_ATTRIBS: 34921;
                            readonly MAX_VERTEX_UNIFORM_VECTORS: 36347;
                            readonly MAX_VARYING_VECTORS: 36348;
                            readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661;
                            readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660;
                            readonly MAX_TEXTURE_IMAGE_UNITS: 34930;
                            readonly MAX_FRAGMENT_UNIFORM_VECTORS: 36349;
                            readonly SHADER_TYPE: 35663;
                            readonly DELETE_STATUS: 35712;
                            readonly LINK_STATUS: 35714;
                            readonly VALIDATE_STATUS: 35715;
                            readonly ATTACHED_SHADERS: 35717;
                            readonly ACTIVE_UNIFORMS: 35718;
                            readonly ACTIVE_ATTRIBUTES: 35721;
                            readonly SHADING_LANGUAGE_VERSION: 35724;
                            readonly CURRENT_PROGRAM: 35725;
                            readonly NEVER: 512;
                            readonly LESS: 513;
                            readonly EQUAL: 514;
                            readonly LEQUAL: 515;
                            readonly GREATER: 516;
                            readonly NOTEQUAL: 517;
                            readonly GEQUAL: 518;
                            readonly ALWAYS: 519;
                            readonly KEEP: 7680;
                            readonly REPLACE: 7681;
                            readonly INCR: 7682;
                            readonly DECR: 7683;
                            readonly INVERT: 5386;
                            readonly INCR_WRAP: 34055;
                            readonly DECR_WRAP: 34056;
                            readonly VENDOR: 7936;
                            readonly RENDERER: 7937;
                            readonly VERSION: 7938;
                            readonly NEAREST: 9728;
                            readonly LINEAR: 9729;
                            readonly NEAREST_MIPMAP_NEAREST: 9984;
                            readonly LINEAR_MIPMAP_NEAREST: 9985;
                            readonly NEAREST_MIPMAP_LINEAR: 9986;
                            readonly LINEAR_MIPMAP_LINEAR: 9987;
                            readonly TEXTURE_MAG_FILTER: 10240;
                            readonly TEXTURE_MIN_FILTER: 10241;
                            readonly TEXTURE_WRAP_S: 10242;
                            readonly TEXTURE_WRAP_T: 10243;
                            readonly TEXTURE_2D: 3553;
                            readonly TEXTURE: 5890;
                            readonly TEXTURE_CUBE_MAP: 34067;
                            readonly TEXTURE_BINDING_CUBE_MAP: 34068;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_X: 34069;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 34070;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 34071;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 34073;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074;
                            readonly MAX_CUBE_MAP_TEXTURE_SIZE: 34076;
                            readonly TEXTURE0: 33984;
                            readonly TEXTURE1: 33985;
                            readonly TEXTURE2: 33986;
                            readonly TEXTURE3: 33987;
                            readonly TEXTURE4: 33988;
                            readonly TEXTURE5: 33989;
                            readonly TEXTURE6: 33990;
                            readonly TEXTURE7: 33991;
                            readonly TEXTURE8: 33992;
                            readonly TEXTURE9: 33993;
                            readonly TEXTURE10: 33994;
                            readonly TEXTURE11: 33995;
                            readonly TEXTURE12: 33996;
                            readonly TEXTURE13: 33997;
                            readonly TEXTURE14: 33998;
                            readonly TEXTURE15: 33999;
                            readonly TEXTURE16: 34000;
                            readonly TEXTURE17: 34001;
                            readonly TEXTURE18: 34002;
                            readonly TEXTURE19: 34003;
                            readonly TEXTURE20: 34004;
                            readonly TEXTURE21: 34005;
                            readonly TEXTURE22: 34006;
                            readonly TEXTURE23: 34007;
                            readonly TEXTURE24: 34008;
                            readonly TEXTURE25: 34009;
                            readonly TEXTURE26: 34010;
                            readonly TEXTURE27: 34011;
                            readonly TEXTURE28: 34012;
                            readonly TEXTURE29: 34013;
                            readonly TEXTURE30: 34014;
                            readonly TEXTURE31: 34015;
                            readonly ACTIVE_TEXTURE: 34016;
                            readonly REPEAT: 10497;
                            readonly CLAMP_TO_EDGE: 33071;
                            readonly MIRRORED_REPEAT: 33648;
                            readonly FLOAT_VEC2: 35664;
                            readonly FLOAT_VEC3: 35665;
                            readonly FLOAT_VEC4: 35666;
                            readonly INT_VEC2: 35667;
                            readonly INT_VEC3: 35668;
                            readonly INT_VEC4: 35669;
                            readonly BOOL: 35670;
                            readonly BOOL_VEC2: 35671;
                            readonly BOOL_VEC3: 35672;
                            readonly BOOL_VEC4: 35673;
                            readonly FLOAT_MAT2: 35674;
                            readonly FLOAT_MAT3: 35675;
                            readonly FLOAT_MAT4: 35676;
                            readonly SAMPLER_2D: 35678;
                            readonly SAMPLER_CUBE: 35680;
                            readonly VERTEX_ATTRIB_ARRAY_ENABLED: 34338;
                            readonly VERTEX_ATTRIB_ARRAY_SIZE: 34339;
                            readonly VERTEX_ATTRIB_ARRAY_STRIDE: 34340;
                            readonly VERTEX_ATTRIB_ARRAY_TYPE: 34341;
                            readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922;
                            readonly VERTEX_ATTRIB_ARRAY_POINTER: 34373;
                            readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975;
                            readonly IMPLEMENTATION_COLOR_READ_TYPE: 35738;
                            readonly IMPLEMENTATION_COLOR_READ_FORMAT: 35739;
                            readonly COMPILE_STATUS: 35713;
                            readonly LOW_FLOAT: 36336;
                            readonly MEDIUM_FLOAT: 36337;
                            readonly HIGH_FLOAT: 36338;
                            readonly LOW_INT: 36339;
                            readonly MEDIUM_INT: 36340;
                            readonly HIGH_INT: 36341;
                            readonly FRAMEBUFFER: 36160;
                            readonly RENDERBUFFER: 36161;
                            readonly RGBA4: 32854;
                            readonly RGB5_A1: 32855;
                            readonly RGBA8: 32856;
                            readonly RGB565: 36194;
                            readonly DEPTH_COMPONENT16: 33189;
                            readonly STENCIL_INDEX8: 36168;
                            readonly DEPTH_STENCIL: 34041;
                            readonly RENDERBUFFER_WIDTH: 36162;
                            readonly RENDERBUFFER_HEIGHT: 36163;
                            readonly RENDERBUFFER_INTERNAL_FORMAT: 36164;
                            readonly RENDERBUFFER_RED_SIZE: 36176;
                            readonly RENDERBUFFER_GREEN_SIZE: 36177;
                            readonly RENDERBUFFER_BLUE_SIZE: 36178;
                            readonly RENDERBUFFER_ALPHA_SIZE: 36179;
                            readonly RENDERBUFFER_DEPTH_SIZE: 36180;
                            readonly RENDERBUFFER_STENCIL_SIZE: 36181;
                            readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048;
                            readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051;
                            readonly COLOR_ATTACHMENT0: 36064;
                            readonly DEPTH_ATTACHMENT: 36096;
                            readonly STENCIL_ATTACHMENT: 36128;
                            readonly DEPTH_STENCIL_ATTACHMENT: 33306;
                            readonly NONE: 0;
                            readonly FRAMEBUFFER_COMPLETE: 36053;
                            readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054;
                            readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055;
                            readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057;
                            readonly FRAMEBUFFER_UNSUPPORTED: 36061;
                            readonly FRAMEBUFFER_BINDING: 36006;
                            readonly RENDERBUFFER_BINDING: 36007;
                            readonly MAX_RENDERBUFFER_SIZE: 34024;
                            readonly INVALID_FRAMEBUFFER_OPERATION: 1286;
                            readonly UNPACK_FLIP_Y_WEBGL: 37440;
                            readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441;
                            readonly CONTEXT_LOST_WEBGL: 37442;
                            readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443;
                            readonly BROWSER_DEFAULT_WEBGL: 37444;
                        };
                        WebGLActiveInfo: {
                            prototype: WebGLActiveInfo;
                            new (): WebGLActiveInfo;
                        };
                        WebGLBuffer: {
                            prototype: WebGLBuffer;
                            new (): WebGLBuffer;
                        };
                        WebGLContextEvent: {
                            prototype: WebGLContextEvent;
                            new (type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;
                        };
                        WebGLFramebuffer: {
                            prototype: WebGLFramebuffer;
                            new (): WebGLFramebuffer;
                        };
                        WebGLProgram: {
                            prototype: WebGLProgram;
                            new (): WebGLProgram;
                        };
                        WebGLQuery: {
                            prototype: WebGLQuery;
                            new (): WebGLQuery;
                        };
                        WebGLRenderbuffer: {
                            prototype: WebGLRenderbuffer;
                            new (): WebGLRenderbuffer;
                        };
                        WebGLRenderingContext: {
                            prototype: WebGLRenderingContext;
                            new (): WebGLRenderingContext;
                            readonly DEPTH_BUFFER_BIT: 256;
                            readonly STENCIL_BUFFER_BIT: 1024;
                            readonly COLOR_BUFFER_BIT: 16384;
                            readonly POINTS: 0;
                            readonly LINES: 1;
                            readonly LINE_LOOP: 2;
                            readonly LINE_STRIP: 3;
                            readonly TRIANGLES: 4;
                            readonly TRIANGLE_STRIP: 5;
                            readonly TRIANGLE_FAN: 6;
                            readonly ZERO: 0;
                            readonly ONE: 1;
                            readonly SRC_COLOR: 768;
                            readonly ONE_MINUS_SRC_COLOR: 769;
                            readonly SRC_ALPHA: 770;
                            readonly ONE_MINUS_SRC_ALPHA: 771;
                            readonly DST_ALPHA: 772;
                            readonly ONE_MINUS_DST_ALPHA: 773;
                            readonly DST_COLOR: 774;
                            readonly ONE_MINUS_DST_COLOR: 775;
                            readonly SRC_ALPHA_SATURATE: 776;
                            readonly FUNC_ADD: 32774;
                            readonly BLEND_EQUATION: 32777;
                            readonly BLEND_EQUATION_RGB: 32777;
                            readonly BLEND_EQUATION_ALPHA: 34877;
                            readonly FUNC_SUBTRACT: 32778;
                            readonly FUNC_REVERSE_SUBTRACT: 32779;
                            readonly BLEND_DST_RGB: 32968;
                            readonly BLEND_SRC_RGB: 32969;
                            readonly BLEND_DST_ALPHA: 32970;
                            readonly BLEND_SRC_ALPHA: 32971;
                            readonly CONSTANT_COLOR: 32769;
                            readonly ONE_MINUS_CONSTANT_COLOR: 32770;
                            readonly CONSTANT_ALPHA: 32771;
                            readonly ONE_MINUS_CONSTANT_ALPHA: 32772;
                            readonly BLEND_COLOR: 32773;
                            readonly ARRAY_BUFFER: 34962;
                            readonly ELEMENT_ARRAY_BUFFER: 34963;
                            readonly ARRAY_BUFFER_BINDING: 34964;
                            readonly ELEMENT_ARRAY_BUFFER_BINDING: 34965;
                            readonly STREAM_DRAW: 35040;
                            readonly STATIC_DRAW: 35044;
                            readonly DYNAMIC_DRAW: 35048;
                            readonly BUFFER_SIZE: 34660;
                            readonly BUFFER_USAGE: 34661;
                            readonly CURRENT_VERTEX_ATTRIB: 34342;
                            readonly FRONT: 1028;
                            readonly BACK: 1029;
                            readonly FRONT_AND_BACK: 1032;
                            readonly CULL_FACE: 2884;
                            readonly BLEND: 3042;
                            readonly DITHER: 3024;
                            readonly STENCIL_TEST: 2960;
                            readonly DEPTH_TEST: 2929;
                            readonly SCISSOR_TEST: 3089;
                            readonly POLYGON_OFFSET_FILL: 32823;
                            readonly SAMPLE_ALPHA_TO_COVERAGE: 32926;
                            readonly SAMPLE_COVERAGE: 32928;
                            readonly NO_ERROR: 0;
                            readonly INVALID_ENUM: 1280;
                            readonly INVALID_VALUE: 1281;
                            readonly INVALID_OPERATION: 1282;
                            readonly OUT_OF_MEMORY: 1285;
                            readonly CW: 2304;
                            readonly CCW: 2305;
                            readonly LINE_WIDTH: 2849;
                            readonly ALIASED_POINT_SIZE_RANGE: 33901;
                            readonly ALIASED_LINE_WIDTH_RANGE: 33902;
                            readonly CULL_FACE_MODE: 2885;
                            readonly FRONT_FACE: 2886;
                            readonly DEPTH_RANGE: 2928;
                            readonly DEPTH_WRITEMASK: 2930;
                            readonly DEPTH_CLEAR_VALUE: 2931;
                            readonly DEPTH_FUNC: 2932;
                            readonly STENCIL_CLEAR_VALUE: 2961;
                            readonly STENCIL_FUNC: 2962;
                            readonly STENCIL_FAIL: 2964;
                            readonly STENCIL_PASS_DEPTH_FAIL: 2965;
                            readonly STENCIL_PASS_DEPTH_PASS: 2966;
                            readonly STENCIL_REF: 2967;
                            readonly STENCIL_VALUE_MASK: 2963;
                            readonly STENCIL_WRITEMASK: 2968;
                            readonly STENCIL_BACK_FUNC: 34816;
                            readonly STENCIL_BACK_FAIL: 34817;
                            readonly STENCIL_BACK_PASS_DEPTH_FAIL: 34818;
                            readonly STENCIL_BACK_PASS_DEPTH_PASS: 34819;
                            readonly STENCIL_BACK_REF: 36003;
                            readonly STENCIL_BACK_VALUE_MASK: 36004;
                            readonly STENCIL_BACK_WRITEMASK: 36005;
                            readonly VIEWPORT: 2978;
                            readonly SCISSOR_BOX: 3088;
                            readonly COLOR_CLEAR_VALUE: 3106;
                            readonly COLOR_WRITEMASK: 3107;
                            readonly UNPACK_ALIGNMENT: 3317;
                            readonly PACK_ALIGNMENT: 3333;
                            readonly MAX_TEXTURE_SIZE: 3379;
                            readonly MAX_VIEWPORT_DIMS: 3386;
                            readonly SUBPIXEL_BITS: 3408;
                            readonly RED_BITS: 3410;
                            readonly GREEN_BITS: 3411;
                            readonly BLUE_BITS: 3412;
                            readonly ALPHA_BITS: 3413;
                            readonly DEPTH_BITS: 3414;
                            readonly STENCIL_BITS: 3415;
                            readonly POLYGON_OFFSET_UNITS: 10752;
                            readonly POLYGON_OFFSET_FACTOR: 32824;
                            readonly TEXTURE_BINDING_2D: 32873;
                            readonly SAMPLE_BUFFERS: 32936;
                            readonly SAMPLES: 32937;
                            readonly SAMPLE_COVERAGE_VALUE: 32938;
                            readonly SAMPLE_COVERAGE_INVERT: 32939;
                            readonly COMPRESSED_TEXTURE_FORMATS: 34467;
                            readonly DONT_CARE: 4352;
                            readonly FASTEST: 4353;
                            readonly NICEST: 4354;
                            readonly GENERATE_MIPMAP_HINT: 33170;
                            readonly BYTE: 5120;
                            readonly UNSIGNED_BYTE: 5121;
                            readonly SHORT: 5122;
                            readonly UNSIGNED_SHORT: 5123;
                            readonly INT: 5124;
                            readonly UNSIGNED_INT: 5125;
                            readonly FLOAT: 5126;
                            readonly DEPTH_COMPONENT: 6402;
                            readonly ALPHA: 6406;
                            readonly RGB: 6407;
                            readonly RGBA: 6408;
                            readonly LUMINANCE: 6409;
                            readonly LUMINANCE_ALPHA: 6410;
                            readonly UNSIGNED_SHORT_4_4_4_4: 32819;
                            readonly UNSIGNED_SHORT_5_5_5_1: 32820;
                            readonly UNSIGNED_SHORT_5_6_5: 33635;
                            readonly FRAGMENT_SHADER: 35632;
                            readonly VERTEX_SHADER: 35633;
                            readonly MAX_VERTEX_ATTRIBS: 34921;
                            readonly MAX_VERTEX_UNIFORM_VECTORS: 36347;
                            readonly MAX_VARYING_VECTORS: 36348;
                            readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661;
                            readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660;
                            readonly MAX_TEXTURE_IMAGE_UNITS: 34930;
                            readonly MAX_FRAGMENT_UNIFORM_VECTORS: 36349;
                            readonly SHADER_TYPE: 35663;
                            readonly DELETE_STATUS: 35712;
                            readonly LINK_STATUS: 35714;
                            readonly VALIDATE_STATUS: 35715;
                            readonly ATTACHED_SHADERS: 35717;
                            readonly ACTIVE_UNIFORMS: 35718;
                            readonly ACTIVE_ATTRIBUTES: 35721;
                            readonly SHADING_LANGUAGE_VERSION: 35724;
                            readonly CURRENT_PROGRAM: 35725;
                            readonly NEVER: 512;
                            readonly LESS: 513;
                            readonly EQUAL: 514;
                            readonly LEQUAL: 515;
                            readonly GREATER: 516;
                            readonly NOTEQUAL: 517;
                            readonly GEQUAL: 518;
                            readonly ALWAYS: 519;
                            readonly KEEP: 7680;
                            readonly REPLACE: 7681;
                            readonly INCR: 7682;
                            readonly DECR: 7683;
                            readonly INVERT: 5386;
                            readonly INCR_WRAP: 34055;
                            readonly DECR_WRAP: 34056;
                            readonly VENDOR: 7936;
                            readonly RENDERER: 7937;
                            readonly VERSION: 7938;
                            readonly NEAREST: 9728;
                            readonly LINEAR: 9729;
                            readonly NEAREST_MIPMAP_NEAREST: 9984;
                            readonly LINEAR_MIPMAP_NEAREST: 9985;
                            readonly NEAREST_MIPMAP_LINEAR: 9986;
                            readonly LINEAR_MIPMAP_LINEAR: 9987;
                            readonly TEXTURE_MAG_FILTER: 10240;
                            readonly TEXTURE_MIN_FILTER: 10241;
                            readonly TEXTURE_WRAP_S: 10242;
                            readonly TEXTURE_WRAP_T: 10243;
                            readonly TEXTURE_2D: 3553;
                            readonly TEXTURE: 5890;
                            readonly TEXTURE_CUBE_MAP: 34067;
                            readonly TEXTURE_BINDING_CUBE_MAP: 34068;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_X: 34069;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 34070;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 34071;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072;
                            readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 34073;
                            readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074;
                            readonly MAX_CUBE_MAP_TEXTURE_SIZE: 34076;
                            readonly TEXTURE0: 33984;
                            readonly TEXTURE1: 33985;
                            readonly TEXTURE2: 33986;
                            readonly TEXTURE3: 33987;
                            readonly TEXTURE4: 33988;
                            readonly TEXTURE5: 33989;
                            readonly TEXTURE6: 33990;
                            readonly TEXTURE7: 33991;
                            readonly TEXTURE8: 33992;
                            readonly TEXTURE9: 33993;
                            readonly TEXTURE10: 33994;
                            readonly TEXTURE11: 33995;
                            readonly TEXTURE12: 33996;
                            readonly TEXTURE13: 33997;
                            readonly TEXTURE14: 33998;
                            readonly TEXTURE15: 33999;
                            readonly TEXTURE16: 34000;
                            readonly TEXTURE17: 34001;
                            readonly TEXTURE18: 34002;
                            readonly TEXTURE19: 34003;
                            readonly TEXTURE20: 34004;
                            readonly TEXTURE21: 34005;
                            readonly TEXTURE22: 34006;
                            readonly TEXTURE23: 34007;
                            readonly TEXTURE24: 34008;
                            readonly TEXTURE25: 34009;
                            readonly TEXTURE26: 34010;
                            readonly TEXTURE27: 34011;
                            readonly TEXTURE28: 34012;
                            readonly TEXTURE29: 34013;
                            readonly TEXTURE30: 34014;
                            readonly TEXTURE31: 34015;
                            readonly ACTIVE_TEXTURE: 34016;
                            readonly REPEAT: 10497;
                            readonly CLAMP_TO_EDGE: 33071;
                            readonly MIRRORED_REPEAT: 33648;
                            readonly FLOAT_VEC2: 35664;
                            readonly FLOAT_VEC3: 35665;
                            readonly FLOAT_VEC4: 35666;
                            readonly INT_VEC2: 35667;
                            readonly INT_VEC3: 35668;
                            readonly INT_VEC4: 35669;
                            readonly BOOL: 35670;
                            readonly BOOL_VEC2: 35671;
                            readonly BOOL_VEC3: 35672;
                            readonly BOOL_VEC4: 35673;
                            readonly FLOAT_MAT2: 35674;
                            readonly FLOAT_MAT3: 35675;
                            readonly FLOAT_MAT4: 35676;
                            readonly SAMPLER_2D: 35678;
                            readonly SAMPLER_CUBE: 35680;
                            readonly VERTEX_ATTRIB_ARRAY_ENABLED: 34338;
                            readonly VERTEX_ATTRIB_ARRAY_SIZE: 34339;
                            readonly VERTEX_ATTRIB_ARRAY_STRIDE: 34340;
                            readonly VERTEX_ATTRIB_ARRAY_TYPE: 34341;
                            readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922;
                            readonly VERTEX_ATTRIB_ARRAY_POINTER: 34373;
                            readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975;
                            readonly IMPLEMENTATION_COLOR_READ_TYPE: 35738;
                            readonly IMPLEMENTATION_COLOR_READ_FORMAT: 35739;
                            readonly COMPILE_STATUS: 35713;
                            readonly LOW_FLOAT: 36336;
                            readonly MEDIUM_FLOAT: 36337;
                            readonly HIGH_FLOAT: 36338;
                            readonly LOW_INT: 36339;
                            readonly MEDIUM_INT: 36340;
                            readonly HIGH_INT: 36341;
                            readonly FRAMEBUFFER: 36160;
                            readonly RENDERBUFFER: 36161;
                            readonly RGBA4: 32854;
                            readonly RGB5_A1: 32855;
                            readonly RGBA8: 32856;
                            readonly RGB565: 36194;
                            readonly DEPTH_COMPONENT16: 33189;
                            readonly STENCIL_INDEX8: 36168;
                            readonly DEPTH_STENCIL: 34041;
                            readonly RENDERBUFFER_WIDTH: 36162;
                            readonly RENDERBUFFER_HEIGHT: 36163;
                            readonly RENDERBUFFER_INTERNAL_FORMAT: 36164;
                            readonly RENDERBUFFER_RED_SIZE: 36176;
                            readonly RENDERBUFFER_GREEN_SIZE: 36177;
                            readonly RENDERBUFFER_BLUE_SIZE: 36178;
                            readonly RENDERBUFFER_ALPHA_SIZE: 36179;
                            readonly RENDERBUFFER_DEPTH_SIZE: 36180;
                            readonly RENDERBUFFER_STENCIL_SIZE: 36181;
                            readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048;
                            readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050;
                            readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051;
                            readonly COLOR_ATTACHMENT0: 36064;
                            readonly DEPTH_ATTACHMENT: 36096;
                            readonly STENCIL_ATTACHMENT: 36128;
                            readonly DEPTH_STENCIL_ATTACHMENT: 33306;
                            readonly NONE: 0;
                            readonly FRAMEBUFFER_COMPLETE: 36053;
                            readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054;
                            readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055;
                            readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057;
                            readonly FRAMEBUFFER_UNSUPPORTED: 36061;
                            readonly FRAMEBUFFER_BINDING: 36006;
                            readonly RENDERBUFFER_BINDING: 36007;
                            readonly MAX_RENDERBUFFER_SIZE: 34024;
                            readonly INVALID_FRAMEBUFFER_OPERATION: 1286;
                            readonly UNPACK_FLIP_Y_WEBGL: 37440;
                            readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441;
                            readonly CONTEXT_LOST_WEBGL: 37442;
                            readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443;
                            readonly BROWSER_DEFAULT_WEBGL: 37444;
                        };
                        WebGLSampler: {
                            prototype: WebGLSampler;
                            new (): WebGLSampler;
                        };
                        WebGLShader: {
                            prototype: WebGLShader;
                            new (): WebGLShader;
                        };
                        WebGLShaderPrecisionFormat: {
                            prototype: WebGLShaderPrecisionFormat;
                            new (): WebGLShaderPrecisionFormat;
                        };
                        WebGLSync: {
                            prototype: WebGLSync;
                            new (): WebGLSync;
                        };
                        WebGLTexture: {
                            prototype: WebGLTexture;
                            new (): WebGLTexture;
                        };
                        WebGLTransformFeedback: {
                            prototype: WebGLTransformFeedback;
                            new (): WebGLTransformFeedback;
                        };
                        WebGLUniformLocation: {
                            prototype: WebGLUniformLocation;
                            new (): WebGLUniformLocation;
                        };
                        WebGLVertexArrayObject: {
                            prototype: WebGLVertexArrayObject;
                            new (): WebGLVertexArrayObject;
                        };
                        WebSocket: {
                            prototype: WebSocket;
                            new (url: string | URL, protocols?: string | string[]): WebSocket;
                            readonly CONNECTING: 0;
                            readonly OPEN: 1;
                            readonly CLOSING: 2;
                            readonly CLOSED: 3;
                        };
                        WebTransport: {
                            prototype: WebTransport;
                            new (url: string | URL, options?: WebTransportOptions): WebTransport;
                        };
                        WebTransportBidirectionalStream: {
                            prototype: WebTransportBidirectionalStream;
                            new (): WebTransportBidirectionalStream;
                        };
                        WebTransportDatagramDuplexStream: {
                            prototype: WebTransportDatagramDuplexStream;
                            new (): WebTransportDatagramDuplexStream;
                        };
                        WebTransportError: {
                            prototype: WebTransportError;
                            new (message?: string, options?: WebTransportErrorOptions): WebTransportError;
                        };
                        WheelEvent: {
                            prototype: WheelEvent;
                            new (type: string, eventInitDict?: WheelEventInit): WheelEvent;
                            readonly DOM_DELTA_PIXEL: 0;
                            readonly DOM_DELTA_LINE: 1;
                            readonly DOM_DELTA_PAGE: 2;
                        };
                        Window: {
                            prototype: Window;
                            new (): Window;
                        };
                        Worker: {
                            prototype: Worker;
                            new (scriptURL: string | URL, options?: WorkerOptions): Worker;
                        };
                        Worklet: {
                            prototype: Worklet;
                            new (): Worklet;
                        };
                        WritableStream: {
                            prototype: WritableStream;
                            new <W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
                        };
                        WritableStreamDefaultController: {
                            prototype: WritableStreamDefaultController;
                            new (): WritableStreamDefaultController;
                        };
                        WritableStreamDefaultWriter: {
                            prototype: WritableStreamDefaultWriter;
                            new <W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
                        };
                        XMLDocument: {
                            prototype: XMLDocument;
                            new (): XMLDocument;
                        };
                        XMLHttpRequest: {
                            prototype: XMLHttpRequest;
                            new (): XMLHttpRequest;
                            readonly UNSENT: 0;
                            readonly OPENED: 1;
                            readonly HEADERS_RECEIVED: 2;
                            readonly LOADING: 3;
                            readonly DONE: 4;
                        };
                        XMLHttpRequestEventTarget: {
                            prototype: XMLHttpRequestEventTarget;
                            new (): XMLHttpRequestEventTarget;
                        };
                        XMLHttpRequestUpload: {
                            prototype: XMLHttpRequestUpload;
                            new (): XMLHttpRequestUpload;
                        };
                        XMLSerializer: {
                            prototype: XMLSerializer;
                            new (): XMLSerializer;
                        };
                        XPathEvaluator: {
                            prototype: XPathEvaluator;
                            new (): XPathEvaluator;
                        };
                        XPathExpression: {
                            prototype: XPathExpression;
                            new (): XPathExpression;
                        };
                        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;
                        };
                        XSLTProcessor: {
                            prototype: XSLTProcessor;
                            new (): XSLTProcessor;
                        };
                        console: {
                            assert: (condition?: boolean, ...data: any[]) => void;
                            clear: () => void;
                            count: (label?: string) => void;
                            countReset: (label?: string) => void;
                            debug: (...data: any[]) => void;
                            dir: (item?: any, options?: any) => void;
                            dirxml: (...data: any[]) => void;
                            error: (...data: any[]) => void;
                            group: (...data: any[]) => void;
                            groupCollapsed: (...data: any[]) => void;
                            groupEnd: () => void;
                            info: (...data: any[]) => void;
                            log: (...data: any[]) => void;
                            table: (tabularData?: any, properties?: string[]) => void;
                            time: (label?: string) => void;
                            timeEnd: (label?: string) => void;
                            timeLog: (label?: string, ...data: any[]) => void;
                            timeStamp: (label?: string) => void;
                            trace: (...data: any[]) => void;
                            warn: (...data: any[]) => void;
                        };
                        CSS: {
                            Hz: typeof CSS.Hz;
                            Q: typeof CSS.Q;
                            cap: typeof CSS.cap;
                            ch: typeof CSS.ch;
                            cm: typeof CSS.cm;
                            cqb: typeof CSS.cqb;
                            cqh: typeof CSS.cqh;
                            cqi: typeof CSS.cqi;
                            cqmax: typeof CSS.cqmax;
                            cqmin: typeof CSS.cqmin;
                            cqw: typeof CSS.cqw;
                            deg: typeof CSS.deg;
                            dpcm: typeof CSS.dpcm;
                            dpi: typeof CSS.dpi;
                            dppx: typeof CSS.dppx;
                            dvb: typeof CSS.dvb;
                            dvh: typeof CSS.dvh;
                            dvi: typeof CSS.dvi;
                            dvmax: typeof CSS.dvmax;
                            dvmin: typeof CSS.dvmin;
                            dvw: typeof CSS.dvw;
                            em: typeof CSS.em;
                            escape: typeof CSS.escape;
                            ex: typeof CSS.ex;
                            fr: typeof CSS.fr;
                            grad: typeof CSS.grad;
                            ic: typeof CSS.ic;
                            kHz: typeof CSS.kHz;
                            lh: typeof CSS.lh;
                            lvb: typeof CSS.lvb;
                            lvh: typeof CSS.lvh;
                            lvi: typeof CSS.lvi;
                            lvmax: typeof CSS.lvmax;
                            lvmin: typeof CSS.lvmin;
                            lvw: typeof CSS.lvw;
                            mm: typeof CSS.mm;
                            ms: typeof CSS.ms;
                            number: typeof CSS.number;
                            pc: typeof CSS.pc;
                            percent: typeof CSS.percent;
                            pt: typeof CSS.pt;
                            px: typeof CSS.px;
                            rad: typeof CSS.rad;
                            rcap: typeof CSS.rcap;
                            rch: typeof CSS.rch;
                            registerProperty: typeof CSS.registerProperty;
                            rem: typeof CSS.rem;
                            rex: typeof CSS.rex;
                            ric: typeof CSS.ric;
                            rlh: typeof CSS.rlh;
                            s: typeof CSS.s;
                            supports: typeof CSS.supports;
                            svb: typeof CSS.svb;
                            svh: typeof CSS.svh;
                            svi: typeof CSS.svi;
                            svmax: typeof CSS.svmax;
                            svmin: typeof CSS.svmin;
                            svw: typeof CSS.svw;
                            turn: typeof CSS.turn;
                            vb: typeof CSS.vb;
                            vh: typeof CSS.vh;
                            vi: typeof CSS.vi;
                            vmax: typeof CSS.vmax;
                            vmin: typeof CSS.vmin;
                            vw: typeof CSS.vw;
                            highlights: {
                                forEach: (callbackfn: (value: Highlight, key: string, parent: HighlightRegistry) => void, thisArg?: any) => void;
                            };
                        };
                        WebAssembly: {
                            compile: typeof WebAssembly.compile;
                            compileStreaming: typeof WebAssembly.compileStreaming;
                            instantiate: typeof WebAssembly.instantiate;
                            instantiateStreaming: typeof WebAssembly.instantiateStreaming;
                            validate: typeof WebAssembly.validate;
                            CompileError: {
                                prototype: WebAssembly.CompileError;
                                new (message?: string): WebAssembly.CompileError;
                                (message?: string): WebAssembly.CompileError;
                            };
                            Global: {
                                prototype: WebAssembly.Global;
                                new <T extends WebAssembly.ValueType = WebAssembly.ValueType>(descriptor: WebAssembly.GlobalDescriptor<T>, v?: WebAssembly.ValueTypeMap[T]): WebAssembly.Global<T>;
                            };
                            Instance: {
                                prototype: WebAssembly.Instance;
                                new (module: WebAssembly.Module, importObject?: WebAssembly.Imports): WebAssembly.Instance;
                            };
                            LinkError: {
                                prototype: WebAssembly.LinkError;
                                new (message?: string): WebAssembly.LinkError;
                                (message?: string): WebAssembly.LinkError;
                            };
                            Memory: {
                                prototype: WebAssembly.Memory;
                                new (descriptor: WebAssembly.MemoryDescriptor): WebAssembly.Memory;
                            };
                            Module: {
                                prototype: WebAssembly.Module;
                                new (bytes: BufferSource): WebAssembly.Module;
                                customSections(moduleObject: WebAssembly.Module, sectionName: string): ArrayBuffer[];
                                exports(moduleObject: WebAssembly.Module): WebAssembly.ModuleExportDescriptor[];
                                imports(moduleObject: WebAssembly.Module): WebAssembly.ModuleImportDescriptor[];
                            };
                            RuntimeError: {
                                prototype: WebAssembly.RuntimeError;
                                new (message?: string): WebAssembly.RuntimeError;
                                (message?: string): WebAssembly.RuntimeError;
                            };
                            Table: {
                                prototype: WebAssembly.Table;
                                new (descriptor: WebAssembly.TableDescriptor, value?: any): WebAssembly.Table;
                            };
                        };
                        Audio: {
                            new (src?: string): HTMLAudioElement;
                        };
                        Image: {
                            new (width?: number, height?: number): HTMLImageElement;
                        };
                        Option: {
                            new (text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;
                        };
                        clientInformation: {
                            readonly clipboard: {
                                read: () => Promise<ClipboardItems>;
                                readText: () => Promise<string>;
                                write: (data: ClipboardItems) => Promise<void>;
                                writeText: (data: string) => Promise<void>;
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            };
                            readonly credentials: {
                                create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                                get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                                preventSilentAccess: () => Promise<void>;
                                store: (credential: Credential) => Promise<void>;
                            };
                            readonly doNotTrack: string | null;
                            readonly geolocation: {
                                clearWatch: (watchId: number) => void;
                                getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                                watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                            };
                            readonly maxTouchPoints: number;
                            readonly mediaCapabilities: {
                                decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                                encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                            };
                            readonly mediaDevices: {
                                ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                                enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                                getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                                getSupportedConstraints: () => MediaTrackSupportedConstraints;
                                getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                                addEventListener: {
                                    <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly mediaSession: {
                                metadata: {
                                    album: string;
                                    artist: string;
                                    artwork: readonly {
                                        sizes: string;
                                        src: string;
                                        type: string;
                                    }[];
                                    title: string;
                                } | null;
                                playbackState: MediaSessionPlaybackState;
                                setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                                setPositionState: (state?: MediaPositionState) => void;
                            };
                            readonly permissions: {
                                query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                            };
                            readonly serviceWorker: {
                                readonly controller: {
                                    onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                                    readonly scriptURL: string;
                                    readonly state: ServiceWorkerState;
                                    postMessage: {
                                        (message: any, transfer: Transferable[]): void;
                                        (message: any, options?: StructuredSerializeOptions): void;
                                    };
                                    addEventListener: {
                                        <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                        (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;
                                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                    };
                                    dispatchEvent: (event: Event) => boolean;
                                    onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                                } | null;
                                oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                                onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                                onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                                readonly ready: {
                                    then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                                    catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                                    finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                                    readonly [Symbol.toStringTag]: string;
                                };
                                getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                                getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                                register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                                startMessages: () => void;
                                addEventListener: {
                                    <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly userActivation: {
                                readonly hasBeenActive: boolean;
                                readonly isActive: boolean;
                            };
                            readonly wakeLock: {
                                request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                            };
                            canShare: (data?: ShareData) => boolean;
                            getGamepads: () => (Gamepad | null)[];
                            requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                            requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                            sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                            share: (data?: ShareData) => Promise<void>;
                            vibrate: (pattern: VibratePattern) => boolean;
                            readonly webdriver: boolean;
                            clearAppBadge: () => Promise<void>;
                            setAppBadge: (contents?: number) => Promise<void>;
                            readonly hardwareConcurrency: number;
                            registerProtocolHandler: (scheme: string, url: string | URL) => void;
                            readonly cookieEnabled: boolean;
                            readonly appCodeName: string;
                            readonly appName: string;
                            readonly appVersion: string;
                            readonly platform: string;
                            readonly product: string;
                            readonly productSub: string;
                            readonly userAgent: string;
                            readonly vendor: string;
                            readonly vendorSub: string;
                            readonly language: string;
                            readonly languages: ReadonlyArray<string>;
                            readonly locks: {
                                query: () => Promise<LockManagerSnapshot>;
                                request: {
                                    (name: string, callback: LockGrantedCallback): Promise<any>;
                                    (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                                };
                            };
                            readonly onLine: boolean;
                            readonly mimeTypes: {
                                [x: number]: {
                                    readonly description: string;
                                    readonly enabledPlugin: {
                                        [x: number]: /*elided*/ any;
                                        readonly description: string;
                                        readonly filename: string;
                                        readonly length: number;
                                        readonly name: string;
                                        item: (index: number) => MimeType | null;
                                        namedItem: (name: string) => MimeType | null;
                                    };
                                    readonly suffixes: string;
                                    readonly type: string;
                                };
                                readonly length: number;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly pdfViewerEnabled: boolean;
                            readonly plugins: {
                                [x: number]: {
                                    [x: number]: {
                                        readonly description: string;
                                        readonly enabledPlugin: /*elided*/ any;
                                        readonly suffixes: string;
                                        readonly type: string;
                                    };
                                    readonly description: string;
                                    readonly filename: string;
                                    readonly length: number;
                                    readonly name: string;
                                    item: (index: number) => MimeType | null;
                                    namedItem: (name: string) => MimeType | null;
                                };
                                readonly length: number;
                                item: (index: number) => Plugin | null;
                                namedItem: (name: string) => Plugin | null;
                                refresh: () => void;
                            };
                            javaEnabled: () => boolean;
                            readonly storage: {
                                estimate: () => Promise<StorageEstimate>;
                                getDirectory: () => Promise<FileSystemDirectoryHandle>;
                                persist: () => Promise<boolean>;
                                persisted: () => Promise<boolean>;
                            };
                        };
                        closed: boolean;
                        customElements: {
                            define: (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions) => void;
                            get: (name: string) => CustomElementConstructor | undefined;
                            getName: (constructor: CustomElementConstructor) => string | null;
                            upgrade: (root: Node) => void;
                            whenDefined: (name: string) => Promise<CustomElementConstructor>;
                        };
                        devicePixelRatio: number;
                        document: Document;
                        event: {
                            readonly bubbles: boolean;
                            cancelBubble: boolean;
                            readonly cancelable: boolean;
                            readonly composed: boolean;
                            readonly currentTarget: {
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            } | null;
                            readonly defaultPrevented: boolean;
                            readonly eventPhase: number;
                            readonly isTrusted: boolean;
                            returnValue: boolean;
                            readonly srcElement: {
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            } | null;
                            readonly target: {
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            } | null;
                            readonly timeStamp: DOMHighResTimeStamp;
                            readonly type: string;
                            composedPath: () => EventTarget[];
                            initEvent: (type: string, bubbles?: boolean, cancelable?: boolean) => void;
                            preventDefault: () => void;
                            stopImmediatePropagation: () => void;
                            stopPropagation: () => void;
                            readonly NONE: 0;
                            readonly CAPTURING_PHASE: 1;
                            readonly AT_TARGET: 2;
                            readonly BUBBLING_PHASE: 3;
                        } | undefined;
                        external: {
                            AddSearchProvider: () => void;
                            IsSearchProviderInstalled: () => void;
                        };
                        frameElement: Element | null;
                        frames: /*elided*/ any;
                        history: {
                            readonly length: number;
                            scrollRestoration: ScrollRestoration;
                            readonly state: any;
                            back: () => void;
                            forward: () => void;
                            go: (delta?: number) => void;
                            pushState: (data: any, unused: string, url?: string | URL | null) => void;
                            replaceState: (data: any, unused: string, url?: string | URL | null) => void;
                        };
                        innerHeight: number;
                        innerWidth: number;
                        length: number;
                        location: {
                            readonly ancestorOrigins: {
                                [x: number]: string;
                                readonly length: number;
                                contains: (string: string) => boolean;
                                item: (index: number) => string | null;
                            };
                            hash: string;
                            host: string;
                            hostname: string;
                            href: string;
                            toString: () => string;
                            readonly origin: string;
                            pathname: string;
                            port: string;
                            protocol: string;
                            search: string;
                            assign: (url: string | URL) => void;
                            reload: () => void;
                            replace: (url: string | URL) => void;
                        };
                        locationbar: {
                            readonly visible: boolean;
                        };
                        menubar: {
                            readonly visible: boolean;
                        };
                        navigator: {
                            readonly clipboard: {
                                read: () => Promise<ClipboardItems>;
                                readText: () => Promise<string>;
                                write: (data: ClipboardItems) => Promise<void>;
                                writeText: (data: string) => Promise<void>;
                                addEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean) => void;
                                dispatchEvent: (event: Event) => boolean;
                                removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean) => void;
                            };
                            readonly credentials: {
                                create: (options?: CredentialCreationOptions) => Promise<Credential | null>;
                                get: (options?: CredentialRequestOptions) => Promise<Credential | null>;
                                preventSilentAccess: () => Promise<void>;
                                store: (credential: Credential) => Promise<void>;
                            };
                            readonly doNotTrack: string | null;
                            readonly geolocation: {
                                clearWatch: (watchId: number) => void;
                                getCurrentPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => void;
                                watchPosition: (successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions) => number;
                            };
                            readonly maxTouchPoints: number;
                            readonly mediaCapabilities: {
                                decodingInfo: (configuration: MediaDecodingConfiguration) => Promise<MediaCapabilitiesDecodingInfo>;
                                encodingInfo: (configuration: MediaEncodingConfiguration) => Promise<MediaCapabilitiesEncodingInfo>;
                            };
                            readonly mediaDevices: {
                                ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
                                enumerateDevices: () => Promise<MediaDeviceInfo[]>;
                                getDisplayMedia: (options?: DisplayMediaStreamOptions) => Promise<MediaStream>;
                                getSupportedConstraints: () => MediaTrackSupportedConstraints;
                                getUserMedia: (constraints?: MediaStreamConstraints) => Promise<MediaStream>;
                                addEventListener: {
                                    <K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly mediaSession: {
                                metadata: {
                                    album: string;
                                    artist: string;
                                    artwork: readonly {
                                        sizes: string;
                                        src: string;
                                        type: string;
                                    }[];
                                    title: string;
                                } | null;
                                playbackState: MediaSessionPlaybackState;
                                setActionHandler: (action: MediaSessionAction, handler: MediaSessionActionHandler | null) => void;
                                setPositionState: (state?: MediaPositionState) => void;
                            };
                            readonly permissions: {
                                query: (permissionDesc: PermissionDescriptor) => Promise<PermissionStatus>;
                            };
                            readonly serviceWorker: {
                                readonly controller: {
                                    onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
                                    readonly scriptURL: string;
                                    readonly state: ServiceWorkerState;
                                    postMessage: {
                                        (message: any, transfer: Transferable[]): void;
                                        (message: any, options?: StructuredSerializeOptions): void;
                                    };
                                    addEventListener: {
                                        <K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                        (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;
                                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                    };
                                    dispatchEvent: (event: Event) => boolean;
                                    onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
                                } | null;
                                oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
                                onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                                onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
                                readonly ready: {
                                    then: <TResult1 = ServiceWorkerRegistration, TResult2 = never>(onfulfilled?: ((value: ServiceWorkerRegistration) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
                                    catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<ServiceWorkerRegistration | TResult>;
                                    finally: (onfinally?: (() => void) | null | undefined) => Promise<ServiceWorkerRegistration>;
                                    readonly [Symbol.toStringTag]: string;
                                };
                                getRegistration: (clientURL?: string | URL) => Promise<ServiceWorkerRegistration | undefined>;
                                getRegistrations: () => Promise<ReadonlyArray<ServiceWorkerRegistration>>;
                                register: (scriptURL: string | URL, options?: RegistrationOptions) => Promise<ServiceWorkerRegistration>;
                                startMessages: () => void;
                                addEventListener: {
                                    <K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly userActivation: {
                                readonly hasBeenActive: boolean;
                                readonly isActive: boolean;
                            };
                            readonly wakeLock: {
                                request: (type?: WakeLockType) => Promise<WakeLockSentinel>;
                            };
                            canShare: (data?: ShareData) => boolean;
                            getGamepads: () => (Gamepad | null)[];
                            requestMIDIAccess: (options?: MIDIOptions) => Promise<MIDIAccess>;
                            requestMediaKeySystemAccess: (keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
                            sendBeacon: (url: string | URL, data?: BodyInit | null) => boolean;
                            share: (data?: ShareData) => Promise<void>;
                            vibrate: (pattern: VibratePattern) => boolean;
                            readonly webdriver: boolean;
                            clearAppBadge: () => Promise<void>;
                            setAppBadge: (contents?: number) => Promise<void>;
                            readonly hardwareConcurrency: number;
                            registerProtocolHandler: (scheme: string, url: string | URL) => void;
                            readonly cookieEnabled: boolean;
                            readonly appCodeName: string;
                            readonly appName: string;
                            readonly appVersion: string;
                            readonly platform: string;
                            readonly product: string;
                            readonly productSub: string;
                            readonly userAgent: string;
                            readonly vendor: string;
                            readonly vendorSub: string;
                            readonly language: string;
                            readonly languages: ReadonlyArray<string>;
                            readonly locks: {
                                query: () => Promise<LockManagerSnapshot>;
                                request: {
                                    (name: string, callback: LockGrantedCallback): Promise<any>;
                                    (name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
                                };
                            };
                            readonly onLine: boolean;
                            readonly mimeTypes: {
                                [x: number]: {
                                    readonly description: string;
                                    readonly enabledPlugin: {
                                        [x: number]: /*elided*/ any;
                                        readonly description: string;
                                        readonly filename: string;
                                        readonly length: number;
                                        readonly name: string;
                                        item: (index: number) => MimeType | null;
                                        namedItem: (name: string) => MimeType | null;
                                    };
                                    readonly suffixes: string;
                                    readonly type: string;
                                };
                                readonly length: number;
                                item: (index: number) => MimeType | null;
                                namedItem: (name: string) => MimeType | null;
                            };
                            readonly pdfViewerEnabled: boolean;
                            readonly plugins: {
                                [x: number]: {
                                    [x: number]: {
                                        readonly description: string;
                                        readonly enabledPlugin: /*elided*/ any;
                                        readonly suffixes: string;
                                        readonly type: string;
                                    };
                                    readonly description: string;
                                    readonly filename: string;
                                    readonly length: number;
                                    readonly name: string;
                                    item: (index: number) => MimeType | null;
                                    namedItem: (name: string) => MimeType | null;
                                };
                                readonly length: number;
                                item: (index: number) => Plugin | null;
                                namedItem: (name: string) => Plugin | null;
                                refresh: () => void;
                            };
                            javaEnabled: () => boolean;
                            readonly storage: {
                                estimate: () => Promise<StorageEstimate>;
                                getDirectory: () => Promise<FileSystemDirectoryHandle>;
                                persist: () => Promise<boolean>;
                                persisted: () => Promise<boolean>;
                            };
                        };
                        ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;
                        ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
                        ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
                        onorientationchange: ((this: Window, ev: Event) => any) | null;
                        opener: any;
                        orientation: number;
                        outerHeight: number;
                        outerWidth: number;
                        pageXOffset: number;
                        pageYOffset: number;
                        parent: /*elided*/ any;
                        personalbar: {
                            readonly visible: boolean;
                        };
                        screen: {
                            readonly availHeight: number;
                            readonly availWidth: number;
                            readonly colorDepth: number;
                            readonly height: number;
                            readonly orientation: {
                                readonly angle: number;
                                onchange: ((this: ScreenOrientation, ev: Event) => any) | null;
                                readonly type: OrientationType;
                                unlock: () => void;
                                addEventListener: {
                                    <K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                    (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;
                                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                                };
                                dispatchEvent: (event: Event) => boolean;
                            };
                            readonly pixelDepth: number;
                            readonly width: number;
                        };
                        screenLeft: number;
                        screenTop: number;
                        screenX: number;
                        screenY: number;
                        scrollX: number;
                        scrollY: number;
                        scrollbars: {
                            readonly visible: boolean;
                        };
                        self: /*elided*/ any;
                        speechSynthesis: {
                            onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;
                            readonly paused: boolean;
                            readonly pending: boolean;
                            readonly speaking: boolean;
                            cancel: () => void;
                            getVoices: () => SpeechSynthesisVoice[];
                            pause: () => void;
                            resume: () => void;
                            speak: (utterance: SpeechSynthesisUtterance) => void;
                            addEventListener: {
                                <K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        status: string;
                        statusbar: {
                            readonly visible: boolean;
                        };
                        toolbar: {
                            readonly visible: boolean;
                        };
                        top: /*elided*/ any | null;
                        visualViewport: {
                            readonly height: number;
                            readonly offsetLeft: number;
                            readonly offsetTop: number;
                            onresize: ((this: VisualViewport, ev: Event) => any) | null;
                            onscroll: ((this: VisualViewport, ev: Event) => any) | null;
                            readonly pageLeft: number;
                            readonly pageTop: number;
                            readonly scale: number;
                            readonly width: number;
                            addEventListener: {
                                <K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        } | null;
                        window: /*elided*/ any;
                        onabort: ((this: Window, ev: UIEvent) => any) | null;
                        onanimationcancel: ((this: Window, ev: AnimationEvent) => any) | null;
                        onanimationend: ((this: Window, ev: AnimationEvent) => any) | null;
                        onanimationiteration: ((this: Window, ev: AnimationEvent) => any) | null;
                        onanimationstart: ((this: Window, ev: AnimationEvent) => any) | null;
                        onauxclick: ((this: Window, ev: MouseEvent) => any) | null;
                        onbeforeinput: ((this: Window, ev: InputEvent) => any) | null;
                        onbeforetoggle: ((this: Window, ev: Event) => any) | null;
                        onblur: ((this: Window, ev: FocusEvent) => any) | null;
                        oncancel: ((this: Window, ev: Event) => any) | null;
                        oncanplay: ((this: Window, ev: Event) => any) | null;
                        oncanplaythrough: ((this: Window, ev: Event) => any) | null;
                        onchange: ((this: Window, ev: Event) => any) | null;
                        onclick: ((this: Window, ev: MouseEvent) => any) | null;
                        onclose: ((this: Window, ev: Event) => any) | null;
                        oncontextlost: ((this: Window, ev: Event) => any) | null;
                        oncontextmenu: ((this: Window, ev: MouseEvent) => any) | null;
                        oncontextrestored: ((this: Window, ev: Event) => any) | null;
                        oncopy: ((this: Window, ev: ClipboardEvent) => any) | null;
                        oncuechange: ((this: Window, ev: Event) => any) | null;
                        oncut: ((this: Window, ev: ClipboardEvent) => any) | null;
                        ondblclick: ((this: Window, ev: MouseEvent) => any) | null;
                        ondrag: ((this: Window, ev: DragEvent) => any) | null;
                        ondragend: ((this: Window, ev: DragEvent) => any) | null;
                        ondragenter: ((this: Window, ev: DragEvent) => any) | null;
                        ondragleave: ((this: Window, ev: DragEvent) => any) | null;
                        ondragover: ((this: Window, ev: DragEvent) => any) | null;
                        ondragstart: ((this: Window, ev: DragEvent) => any) | null;
                        ondrop: ((this: Window, ev: DragEvent) => any) | null;
                        ondurationchange: ((this: Window, ev: Event) => any) | null;
                        onemptied: ((this: Window, ev: Event) => any) | null;
                        onended: ((this: Window, ev: Event) => any) | null;
                        onerror: OnErrorEventHandler;
                        onfocus: ((this: Window, ev: FocusEvent) => any) | null;
                        onformdata: ((this: Window, ev: FormDataEvent) => any) | null;
                        ongotpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
                        oninput: ((this: Window, ev: Event) => any) | null;
                        oninvalid: ((this: Window, ev: Event) => any) | null;
                        onkeydown: ((this: Window, ev: KeyboardEvent) => any) | null;
                        onkeypress: ((this: Window, ev: KeyboardEvent) => any) | null;
                        onkeyup: ((this: Window, ev: KeyboardEvent) => any) | null;
                        onload: ((this: Window, ev: Event) => any) | null;
                        onloadeddata: ((this: Window, ev: Event) => any) | null;
                        onloadedmetadata: ((this: Window, ev: Event) => any) | null;
                        onloadstart: ((this: Window, ev: Event) => any) | null;
                        onlostpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
                        onmousedown: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseenter: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseleave: ((this: Window, ev: MouseEvent) => any) | null;
                        onmousemove: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseout: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseover: ((this: Window, ev: MouseEvent) => any) | null;
                        onmouseup: ((this: Window, ev: MouseEvent) => any) | null;
                        onpaste: ((this: Window, ev: ClipboardEvent) => any) | null;
                        onpause: ((this: Window, ev: Event) => any) | null;
                        onplay: ((this: Window, ev: Event) => any) | null;
                        onplaying: ((this: Window, ev: Event) => any) | null;
                        onpointercancel: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerdown: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerenter: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerleave: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointermove: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerout: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerover: ((this: Window, ev: PointerEvent) => any) | null;
                        onpointerup: ((this: Window, ev: PointerEvent) => any) | null;
                        onprogress: ((this: Window, ev: ProgressEvent) => any) | null;
                        onratechange: ((this: Window, ev: Event) => any) | null;
                        onreset: ((this: Window, ev: Event) => any) | null;
                        onresize: ((this: Window, ev: UIEvent) => any) | null;
                        onscroll: ((this: Window, ev: Event) => any) | null;
                        onscrollend: ((this: Window, ev: Event) => any) | null;
                        onsecuritypolicyviolation: ((this: Window, ev: SecurityPolicyViolationEvent) => any) | null;
                        onseeked: ((this: Window, ev: Event) => any) | null;
                        onseeking: ((this: Window, ev: Event) => any) | null;
                        onselect: ((this: Window, ev: Event) => any) | null;
                        onselectionchange: ((this: Window, ev: Event) => any) | null;
                        onselectstart: ((this: Window, ev: Event) => any) | null;
                        onslotchange: ((this: Window, ev: Event) => any) | null;
                        onstalled: ((this: Window, ev: Event) => any) | null;
                        onsubmit: ((this: Window, ev: SubmitEvent) => any) | null;
                        onsuspend: ((this: Window, ev: Event) => any) | null;
                        ontimeupdate: ((this: Window, ev: Event) => any) | null;
                        ontoggle: ((this: Window, ev: Event) => any) | null;
                        ontouchcancel: ((this: Window, ev: TouchEvent) => any) | null | undefined;
                        ontouchend: ((this: Window, ev: TouchEvent) => any) | null | undefined;
                        ontouchmove: ((this: Window, ev: TouchEvent) => any) | null | undefined;
                        ontouchstart: ((this: Window, ev: TouchEvent) => any) | null | undefined;
                        ontransitioncancel: ((this: Window, ev: TransitionEvent) => any) | null;
                        ontransitionend: ((this: Window, ev: TransitionEvent) => any) | null;
                        ontransitionrun: ((this: Window, ev: TransitionEvent) => any) | null;
                        ontransitionstart: ((this: Window, ev: TransitionEvent) => any) | null;
                        onvolumechange: ((this: Window, ev: Event) => any) | null;
                        onwaiting: ((this: Window, ev: Event) => any) | null;
                        onwebkitanimationend: ((this: Window, ev: Event) => any) | null;
                        onwebkitanimationiteration: ((this: Window, ev: Event) => any) | null;
                        onwebkitanimationstart: ((this: Window, ev: Event) => any) | null;
                        onwebkittransitionend: ((this: Window, ev: Event) => any) | null;
                        onwheel: ((this: Window, ev: WheelEvent) => any) | null;
                        onafterprint: ((this: Window, ev: Event) => any) | null;
                        onbeforeprint: ((this: Window, ev: Event) => any) | null;
                        onbeforeunload: ((this: Window, ev: BeforeUnloadEvent) => any) | null;
                        ongamepadconnected: ((this: Window, ev: GamepadEvent) => any) | null;
                        ongamepaddisconnected: ((this: Window, ev: GamepadEvent) => any) | null;
                        onhashchange: ((this: Window, ev: HashChangeEvent) => any) | null;
                        onlanguagechange: ((this: Window, ev: Event) => any) | null;
                        onmessage: ((this: Window, ev: MessageEvent) => any) | null;
                        onmessageerror: ((this: Window, ev: MessageEvent) => any) | null;
                        onoffline: ((this: Window, ev: Event) => any) | null;
                        ononline: ((this: Window, ev: Event) => any) | null;
                        onpagehide: ((this: Window, ev: PageTransitionEvent) => any) | null;
                        onpagereveal: ((this: Window, ev: Event) => any) | null;
                        onpageshow: ((this: Window, ev: PageTransitionEvent) => any) | null;
                        onpageswap: ((this: Window, ev: Event) => any) | null;
                        onpopstate: ((this: Window, ev: PopStateEvent) => any) | null;
                        onrejectionhandled: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
                        onstorage: ((this: Window, ev: StorageEvent) => any) | null;
                        onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
                        onunload: ((this: Window, ev: Event) => any) | null;
                        localStorage: {
                            [x: string]: any;
                            readonly length: number;
                            clear: () => void;
                            getItem: (key: string) => string | null;
                            key: (index: number) => string | null;
                            removeItem: (key: string) => void;
                            setItem: (key: string, value: string) => void;
                        };
                        caches: {
                            delete: (cacheName: string) => Promise<boolean>;
                            has: (cacheName: string) => Promise<boolean>;
                            keys: () => Promise<string[]>;
                            match: (request: RequestInfo | URL, options?: MultiCacheQueryOptions) => Promise<Response | undefined>;
                            open: (cacheName: string) => Promise<Cache>;
                        };
                        crossOriginIsolated: boolean;
                        crypto: {
                            readonly subtle: {
                                decrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                                deriveBits: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length?: number | null) => Promise<ArrayBuffer>;
                                deriveKey: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                                digest: (algorithm: AlgorithmIdentifier, data: BufferSource) => Promise<ArrayBuffer>;
                                encrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                                exportKey: {
                                    (format: "jwk", key: CryptoKey): Promise<JsonWebKey>;
                                    (format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;
                                    (format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer | JsonWebKey>;
                                };
                                generateKey: {
                                    (algorithm: "Ed25519" | {
                                        name: "Ed25519";
                                    }, extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;
                                    (algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
                                    (algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                                    (algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;
                                };
                                importKey: {
                                    (format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                                    (format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
                                };
                                sign: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                                unwrapKey: (format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                                verify: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource) => Promise<boolean>;
                                wrapKey: (format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams) => Promise<ArrayBuffer>;
                            };
                            getRandomValues: <T extends ArrayBufferView | null>(array: T) => T;
                            randomUUID: () => `${string}-${string}-${string}-${string}-${string}`;
                        };
                        indexedDB: {
                            cmp: (first: any, second: any) => number;
                            databases: () => Promise<IDBDatabaseInfo[]>;
                            deleteDatabase: (name: string) => IDBOpenDBRequest;
                            open: (name: string, version?: number) => IDBOpenDBRequest;
                        };
                        isSecureContext: boolean;
                        origin: string;
                        performance: {
                            readonly eventCounts: {
                                forEach: (callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any) => void;
                            };
                            readonly navigation: {
                                readonly redirectCount: number;
                                readonly type: number;
                                toJSON: () => any;
                                readonly TYPE_NAVIGATE: 0;
                                readonly TYPE_RELOAD: 1;
                                readonly TYPE_BACK_FORWARD: 2;
                                readonly TYPE_RESERVED: 255;
                            };
                            onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;
                            readonly timeOrigin: DOMHighResTimeStamp;
                            readonly timing: {
                                readonly connectEnd: number;
                                readonly connectStart: number;
                                readonly domComplete: number;
                                readonly domContentLoadedEventEnd: number;
                                readonly domContentLoadedEventStart: number;
                                readonly domInteractive: number;
                                readonly domLoading: number;
                                readonly domainLookupEnd: number;
                                readonly domainLookupStart: number;
                                readonly fetchStart: number;
                                readonly loadEventEnd: number;
                                readonly loadEventStart: number;
                                readonly navigationStart: number;
                                readonly redirectEnd: number;
                                readonly redirectStart: number;
                                readonly requestStart: number;
                                readonly responseEnd: number;
                                readonly responseStart: number;
                                readonly secureConnectionStart: number;
                                readonly unloadEventEnd: number;
                                readonly unloadEventStart: number;
                                toJSON: () => any;
                            };
                            clearMarks: (markName?: string) => void;
                            clearMeasures: (measureName?: string) => void;
                            clearResourceTimings: () => void;
                            getEntries: () => PerformanceEntryList;
                            getEntriesByName: (name: string, type?: string) => PerformanceEntryList;
                            getEntriesByType: (type: string) => PerformanceEntryList;
                            mark: (markName: string, markOptions?: PerformanceMarkOptions) => PerformanceMark;
                            measure: (measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string) => PerformanceMeasure;
                            now: () => DOMHighResTimeStamp;
                            setResourceTimingBufferSize: (maxSize: number) => void;
                            toJSON: () => any;
                            addEventListener: {
                                <K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                                (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;
                                (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                            };
                            dispatchEvent: (event: Event) => boolean;
                        };
                        sessionStorage: {
                            [x: string]: any;
                            readonly length: number;
                            clear: () => void;
                            getItem: (key: string) => string | null;
                            key: (index: number) => string | null;
                            removeItem: (key: string) => void;
                            setItem: (key: string, value: string) => void;
                        };
                        Map: MapConstructor;
                        WeakMap: WeakMapConstructor;
                        Set: SetConstructor;
                        WeakSet: WeakSetConstructor;
                        Iterator: IteratorConstructor;
                        Proxy: ProxyConstructor;
                        Reflect: {
                            apply: typeof Reflect.apply;
                            construct: typeof Reflect.construct;
                            defineProperty: typeof Reflect.defineProperty;
                            deleteProperty: typeof Reflect.deleteProperty;
                            get: typeof Reflect.get;
                            getOwnPropertyDescriptor: typeof Reflect.getOwnPropertyDescriptor;
                            getPrototypeOf: typeof Reflect.getPrototypeOf;
                            has: typeof Reflect.has;
                            isExtensible: typeof Reflect.isExtensible;
                            ownKeys: typeof Reflect.ownKeys;
                            preventExtensions: typeof Reflect.preventExtensions;
                            set: typeof Reflect.set;
                            setPrototypeOf: typeof Reflect.setPrototypeOf;
                        };
                        SharedArrayBuffer: SharedArrayBufferConstructor;
                        Atomics: {
                            add: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            and: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            compareExchange: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, expectedValue: number, replacementValue: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, expectedValue: bigint, replacementValue: bigint): bigint;
                            };
                            exchange: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            isLockFree: (size: number) => boolean;
                            load: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number): bigint;
                            };
                            or: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            store: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            sub: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            wait: {
                                (typedArray: Int32Array<ArrayBufferLike>, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out";
                                (typedArray: BigInt64Array<ArrayBufferLike>, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out";
                            };
                            notify: {
                                (typedArray: Int32Array<ArrayBufferLike>, index: number, count?: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike>, index: number, count?: number): number;
                            };
                            xor: {
                                (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                                (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                            };
                            waitAsync: {
                                (typedArray: Int32Array, index: number, value: number, timeout?: number): {
                                    async: false;
                                    value: "not-equal" | "timed-out";
                                } | {
                                    async: true;
                                    value: Promise<"ok" | "timed-out">;
                                };
                                (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): {
                                    async: false;
                                    value: "not-equal" | "timed-out";
                                } | {
                                    async: true;
                                    value: Promise<"ok" | "timed-out">;
                                };
                            };
                            readonly [Symbol.toStringTag]: "Atomics";
                        };
                        BigInt: BigIntConstructor;
                        BigInt64Array: BigInt64ArrayConstructor;
                        BigUint64Array: BigUint64ArrayConstructor;
                        AggregateError: AggregateErrorConstructor;
                        WeakRef: WeakRefConstructor;
                        FinalizationRegistry: FinalizationRegistryConstructor;
                        SuppressedError: SuppressedErrorConstructor;
                        DisposableStack: DisposableStackConstructor;
                        AsyncDisposableStack: AsyncDisposableStackConstructor;
                        Float16Array: Float16ArrayConstructor;
                        unsafeWindow: /*elided*/ any;
                        undefined: undefined;
                    };
                    eval: typeof eval;
                    parseInt: typeof parseInt;
                    parseFloat: typeof parseFloat;
                    isNaN: typeof isNaN;
                    isFinite: typeof isFinite;
                    decodeURI: typeof decodeURI;
                    decodeURIComponent: typeof decodeURIComponent;
                    encodeURI: typeof encodeURI;
                    encodeURIComponent: typeof encodeURIComponent;
                    escape: typeof escape;
                    unescape: typeof unescape;
                    NaN: number;
                    Infinity: number;
                    Symbol: SymbolConstructor;
                    Object: ObjectConstructor;
                    Function: FunctionConstructor;
                    String: StringConstructor;
                    Boolean: BooleanConstructor;
                    Number: NumberConstructor;
                    Math: {
                        readonly E: number;
                        readonly LN10: number;
                        readonly LN2: number;
                        readonly LOG2E: number;
                        readonly LOG10E: number;
                        readonly PI: number;
                        readonly SQRT1_2: number;
                        readonly SQRT2: number;
                        abs: (x: number) => number;
                        acos: (x: number) => number;
                        asin: (x: number) => number;
                        atan: (x: number) => number;
                        atan2: (y: number, x: number) => number;
                        ceil: (x: number) => number;
                        cos: (x: number) => number;
                        exp: (x: number) => number;
                        floor: (x: number) => number;
                        log: (x: number) => number;
                        max: (...values: number[]) => number;
                        min: (...values: number[]) => number;
                        pow: (x: number, y: number) => number;
                        random: () => number;
                        round: (x: number) => number;
                        sin: (x: number) => number;
                        sqrt: (x: number) => number;
                        tan: (x: number) => number;
                        clz32: (x: number) => number;
                        imul: (x: number, y: number) => number;
                        sign: (x: number) => number;
                        log10: (x: number) => number;
                        log2: (x: number) => number;
                        log1p: (x: number) => number;
                        expm1: (x: number) => number;
                        cosh: (x: number) => number;
                        sinh: (x: number) => number;
                        tanh: (x: number) => number;
                        acosh: (x: number) => number;
                        asinh: (x: number) => number;
                        atanh: (x: number) => number;
                        hypot: (...values: number[]) => number;
                        trunc: (x: number) => number;
                        fround: (x: number) => number;
                        cbrt: (x: number) => number;
                        f16round: (x: number) => number;
                        readonly [Symbol.toStringTag]: string;
                    };
                    Date: DateConstructor;
                    RegExp: RegExpConstructor;
                    Error: ErrorConstructor;
                    EvalError: EvalErrorConstructor;
                    RangeError: RangeErrorConstructor;
                    ReferenceError: ReferenceErrorConstructor;
                    SyntaxError: SyntaxErrorConstructor;
                    TypeError: TypeErrorConstructor;
                    URIError: URIErrorConstructor;
                    JSON: {
                        parse: (text: string, reviver?: (this: any, key: string, value: any) => any) => any;
                        stringify: {
                            (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
                            (value: any, replacer?: (number | string)[] | null, space?: string | number): string;
                        };
                        readonly [Symbol.toStringTag]: string;
                    };
                    Array: ArrayConstructor;
                    Promise: PromiseConstructor;
                    ArrayBuffer: ArrayBufferConstructor;
                    DataView: DataViewConstructor;
                    Int8Array: Int8ArrayConstructor;
                    Uint8Array: Uint8ArrayConstructor;
                    Uint8ClampedArray: Uint8ClampedArrayConstructor;
                    Int16Array: Int16ArrayConstructor;
                    Uint16Array: Uint16ArrayConstructor;
                    Int32Array: Int32ArrayConstructor;
                    Uint32Array: Uint32ArrayConstructor;
                    Float32Array: Float32ArrayConstructor;
                    Float64Array: Float64ArrayConstructor;
                    Intl: {
                        Collator: Intl.CollatorConstructor;
                        NumberFormat: Intl.NumberFormatConstructor;
                        DateTimeFormat: Intl.DateTimeFormatConstructor;
                        getCanonicalLocales: typeof Intl.getCanonicalLocales;
                        readonly PluralRules: Intl.PluralRulesConstructor;
                        readonly RelativeTimeFormat: {
                            new (locales?: Intl.LocalesArgument, options?: Intl.RelativeTimeFormatOptions): Intl.RelativeTimeFormat;
                            supportedLocalesOf(locales?: Intl.LocalesArgument, options?: Intl.RelativeTimeFormatOptions): Intl.UnicodeBCP47LocaleIdentifier[];
                        };
                        readonly Locale: {
                            new (tag: Intl.UnicodeBCP47LocaleIdentifier | Intl.Locale, options?: Intl.LocaleOptions): Intl.Locale;
                        };
                        readonly DisplayNames: {
                            prototype: Intl.DisplayNames;
                            new (locales: Intl.LocalesArgument, options: Intl.DisplayNamesOptions): Intl.DisplayNames;
                            supportedLocalesOf(locales?: Intl.LocalesArgument, options?: {
                                localeMatcher?: Intl.RelativeTimeFormatLocaleMatcher;
                            }): Intl.UnicodeBCP47LocaleIdentifier[];
                        };
                        readonly ListFormat: {
                            prototype: Intl.ListFormat;
                            new (locales?: Intl.LocalesArgument, options?: Intl.ListFormatOptions): Intl.ListFormat;
                            supportedLocalesOf(locales: Intl.LocalesArgument, options?: Pick<Intl.ListFormatOptions, "localeMatcher">): Intl.UnicodeBCP47LocaleIdentifier[];
                        };
                        supportedValuesOf: typeof Intl.supportedValuesOf;
                        readonly Segmenter: {
                            prototype: Intl.Segmenter;
                            new (locales?: Intl.LocalesArgument, options?: Intl.SegmenterOptions): Intl.Segmenter;
                            supportedLocalesOf(locales: Intl.LocalesArgument, options?: Pick<Intl.SegmenterOptions, "localeMatcher">): Intl.UnicodeBCP47LocaleIdentifier[];
                        };
                    };
                    toString: typeof toString;
                    NodeFilter: {
                        readonly FILTER_ACCEPT: 1;
                        readonly FILTER_REJECT: 2;
                        readonly FILTER_SKIP: 3;
                        readonly SHOW_ALL: 4294967295;
                        readonly SHOW_ELEMENT: 1;
                        readonly SHOW_ATTRIBUTE: 2;
                        readonly SHOW_TEXT: 4;
                        readonly SHOW_CDATA_SECTION: 8;
                        readonly SHOW_ENTITY_REFERENCE: 16;
                        readonly SHOW_ENTITY: 32;
                        readonly SHOW_PROCESSING_INSTRUCTION: 64;
                        readonly SHOW_COMMENT: 128;
                        readonly SHOW_DOCUMENT: 256;
                        readonly SHOW_DOCUMENT_TYPE: 512;
                        readonly SHOW_DOCUMENT_FRAGMENT: 1024;
                        readonly SHOW_NOTATION: 2048;
                    };
                    AbortController: {
                        prototype: AbortController;
                        new (): AbortController;
                    };
                    AbortSignal: {
                        prototype: AbortSignal;
                        new (): AbortSignal;
                        abort(reason?: any): AbortSignal;
                        any(signals: AbortSignal[]): AbortSignal;
                        timeout(milliseconds: number): AbortSignal;
                    };
                    AbstractRange: {
                        prototype: AbstractRange;
                        new (): AbstractRange;
                    };
                    AnalyserNode: {
                        prototype: AnalyserNode;
                        new (context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;
                    };
                    Animation: {
                        prototype: Animation;
                        new (effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;
                    };
                    AnimationEffect: {
                        prototype: AnimationEffect;
                        new (): AnimationEffect;
                    };
                    AnimationEvent: {
                        prototype: AnimationEvent;
                        new (type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;
                    };
                    AnimationPlaybackEvent: {
                        prototype: AnimationPlaybackEvent;
                        new (type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;
                    };
                    AnimationTimeline: {
                        prototype: AnimationTimeline;
                        new (): AnimationTimeline;
                    };
                    Attr: {
                        prototype: Attr;
                        new (): Attr;
                    };
                    AudioBuffer: {
                        prototype: AudioBuffer;
                        new (options: AudioBufferOptions): AudioBuffer;
                    };
                    AudioBufferSourceNode: {
                        prototype: AudioBufferSourceNode;
                        new (context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;
                    };
                    AudioContext: {
                        prototype: AudioContext;
                        new (contextOptions?: AudioContextOptions): AudioContext;
                    };
                    AudioData: {
                        prototype: AudioData;
                        new (init: AudioDataInit): AudioData;
                    };
                    AudioDecoder: {
                        prototype: AudioDecoder;
                        new (init: AudioDecoderInit): AudioDecoder;
                        isConfigSupported(config: AudioDecoderConfig): Promise<AudioDecoderSupport>;
                    };
                    AudioDestinationNode: {
                        prototype: AudioDestinationNode;
                        new (): AudioDestinationNode;
                    };
                    AudioEncoder: {
                        prototype: AudioEncoder;
                        new (init: AudioEncoderInit): AudioEncoder;
                        isConfigSupported(config: AudioEncoderConfig): Promise<AudioEncoderSupport>;
                    };
                    AudioListener: {
                        prototype: AudioListener;
                        new (): AudioListener;
                    };
                    AudioNode: {
                        prototype: AudioNode;
                        new (): AudioNode;
                    };
                    AudioParam: {
                        prototype: AudioParam;
                        new (): AudioParam;
                    };
                    AudioParamMap: {
                        prototype: AudioParamMap;
                        new (): AudioParamMap;
                    };
                    AudioProcessingEvent: {
                        prototype: AudioProcessingEvent;
                        new (type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;
                    };
                    AudioScheduledSourceNode: {
                        prototype: AudioScheduledSourceNode;
                        new (): AudioScheduledSourceNode;
                    };
                    AudioWorklet: {
                        prototype: AudioWorklet;
                        new (): AudioWorklet;
                    };
                    AudioWorkletNode: {
                        prototype: AudioWorkletNode;
                        new (context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;
                    };
                    AuthenticatorAssertionResponse: {
                        prototype: AuthenticatorAssertionResponse;
                        new (): AuthenticatorAssertionResponse;
                    };
                    AuthenticatorAttestationResponse: {
                        prototype: AuthenticatorAttestationResponse;
                        new (): AuthenticatorAttestationResponse;
                    };
                    AuthenticatorResponse: {
                        prototype: AuthenticatorResponse;
                        new (): AuthenticatorResponse;
                    };
                    BarProp: {
                        prototype: BarProp;
                        new (): BarProp;
                    };
                    BaseAudioContext: {
                        prototype: BaseAudioContext;
                        new (): BaseAudioContext;
                    };
                    BeforeUnloadEvent: {
                        prototype: BeforeUnloadEvent;
                        new (): BeforeUnloadEvent;
                    };
                    BiquadFilterNode: {
                        prototype: BiquadFilterNode;
                        new (context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;
                    };
                    Blob: {
                        prototype: Blob;
                        new (blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
                    };
                    BlobEvent: {
                        prototype: BlobEvent;
                        new (type: string, eventInitDict: BlobEventInit): BlobEvent;
                    };
                    BroadcastChannel: {
                        prototype: BroadcastChannel;
                        new (name: string): BroadcastChannel;
                    };
                    ByteLengthQueuingStrategy: {
                        prototype: ByteLengthQueuingStrategy;
                        new (init: QueuingStrategyInit): ByteLengthQueuingStrategy;
                    };
                    CDATASection: {
                        prototype: CDATASection;
                        new (): CDATASection;
                    };
                    CSSAnimation: {
                        prototype: CSSAnimation;
                        new (): CSSAnimation;
                    };
                    CSSConditionRule: {
                        prototype: CSSConditionRule;
                        new (): CSSConditionRule;
                    };
                    CSSContainerRule: {
                        prototype: CSSContainerRule;
                        new (): CSSContainerRule;
                    };
                    CSSCounterStyleRule: {
                        prototype: CSSCounterStyleRule;
                        new (): CSSCounterStyleRule;
                    };
                    CSSFontFaceRule: {
                        prototype: CSSFontFaceRule;
                        new (): CSSFontFaceRule;
                    };
                    CSSFontFeatureValuesRule: {
                        prototype: CSSFontFeatureValuesRule;
                        new (): CSSFontFeatureValuesRule;
                    };
                    CSSFontPaletteValuesRule: {
                        prototype: CSSFontPaletteValuesRule;
                        new (): CSSFontPaletteValuesRule;
                    };
                    CSSGroupingRule: {
                        prototype: CSSGroupingRule;
                        new (): CSSGroupingRule;
                    };
                    CSSImageValue: {
                        prototype: CSSImageValue;
                        new (): CSSImageValue;
                    };
                    CSSImportRule: {
                        prototype: CSSImportRule;
                        new (): CSSImportRule;
                    };
                    CSSKeyframeRule: {
                        prototype: CSSKeyframeRule;
                        new (): CSSKeyframeRule;
                    };
                    CSSKeyframesRule: {
                        prototype: CSSKeyframesRule;
                        new (): CSSKeyframesRule;
                    };
                    CSSKeywordValue: {
                        prototype: CSSKeywordValue;
                        new (value: string): CSSKeywordValue;
                    };
                    CSSLayerBlockRule: {
                        prototype: CSSLayerBlockRule;
                        new (): CSSLayerBlockRule;
                    };
                    CSSLayerStatementRule: {
                        prototype: CSSLayerStatementRule;
                        new (): CSSLayerStatementRule;
                    };
                    CSSMathClamp: {
                        prototype: CSSMathClamp;
                        new (lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;
                    };
                    CSSMathInvert: {
                        prototype: CSSMathInvert;
                        new (arg: CSSNumberish): CSSMathInvert;
                    };
                    CSSMathMax: {
                        prototype: CSSMathMax;
                        new (...args: CSSNumberish[]): CSSMathMax;
                    };
                    CSSMathMin: {
                        prototype: CSSMathMin;
                        new (...args: CSSNumberish[]): CSSMathMin;
                    };
                    CSSMathNegate: {
                        prototype: CSSMathNegate;
                        new (arg: CSSNumberish): CSSMathNegate;
                    };
                    CSSMathProduct: {
                        prototype: CSSMathProduct;
                        new (...args: CSSNumberish[]): CSSMathProduct;
                    };
                    CSSMathSum: {
                        prototype: CSSMathSum;
                        new (...args: CSSNumberish[]): CSSMathSum;
                    };
                    CSSMathValue: {
                        prototype: CSSMathValue;
                        new (): CSSMathValue;
                    };
                    CSSMatrixComponent: {
                        prototype: CSSMatrixComponent;
                        new (matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;
                    };
                    CSSMediaRule: {
                        prototype: CSSMediaRule;
                        new (): CSSMediaRule;
                    };
                    CSSNamespaceRule: {
                        prototype: CSSNamespaceRule;
                        new (): CSSNamespaceRule;
                    };
                    CSSNestedDeclarations: {
                        prototype: CSSNestedDeclarations;
                        new (): CSSNestedDeclarations;
                    };
                    CSSNumericArray: {
                        prototype: CSSNumericArray;
                        new (): CSSNumericArray;
                    };
                    CSSNumericValue: {
                        prototype: CSSNumericValue;
                        new (): CSSNumericValue;
                        parse(cssText: string): CSSNumericValue;
                    };
                    CSSPageRule: {
                        prototype: CSSPageRule;
                        new (): CSSPageRule;
                    };
                    CSSPerspective: {
                        prototype: CSSPerspective;
                        new (length: CSSPerspectiveValue): CSSPerspective;
                    };
                    CSSPropertyRule: {
                        prototype: CSSPropertyRule;
                        new (): CSSPropertyRule;
                    };
                    CSSRotate: {
                        prototype: CSSRotate;
                        new (angle: CSSNumericValue): CSSRotate;
                        new (x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;
                    };
                    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 SUPPORTS_RULE: 12;
                        readonly COUNTER_STYLE_RULE: 11;
                        readonly FONT_FEATURE_VALUES_RULE: 14;
                    };
                    CSSRuleList: {
                        prototype: CSSRuleList;
                        new (): CSSRuleList;
                    };
                    CSSScale: {
                        prototype: CSSScale;
                        new (x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;
                    };
                    CSSScopeRule: {
                        prototype: CSSScopeRule;
                        new (): CSSScopeRule;
                    };
                    CSSSkew: {
                        prototype: CSSSkew;
                        new (ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;
                    };
                    CSSSkewX: {
                        prototype: CSSSkewX;
                        new (ax: CSSNumericValue): CSSSkewX;
                    };
                    CSSSkewY: {
                        prototype: CSSSkewY;
                        new (ay: CSSNumericValue): CSSSkewY;
                    };
                    CSSStartingStyleRule: {
                        prototype: CSSStartingStyleRule;
                        new (): CSSStartingStyleRule;
                    };
                    CSSStyleDeclaration: {
                        prototype: CSSStyleDeclaration;
                        new (): CSSStyleDeclaration;
                    };
                    CSSStyleRule: {
                        prototype: CSSStyleRule;
                        new (): CSSStyleRule;
                    };
                    CSSStyleSheet: {
                        prototype: CSSStyleSheet;
                        new (options?: CSSStyleSheetInit): CSSStyleSheet;
                    };
                    CSSStyleValue: {
                        prototype: CSSStyleValue;
                        new (): CSSStyleValue;
                        parse(property: string, cssText: string): CSSStyleValue;
                        parseAll(property: string, cssText: string): CSSStyleValue[];
                    };
                    CSSSupportsRule: {
                        prototype: CSSSupportsRule;
                        new (): CSSSupportsRule;
                    };
                    CSSTransformComponent: {
                        prototype: CSSTransformComponent;
                        new (): CSSTransformComponent;
                    };
                    CSSTransformValue: {
                        prototype: CSSTransformValue;
                        new (transforms: CSSTransformComponent[]): CSSTransformValue;
                    };
                    CSSTransition: {
                        prototype: CSSTransition;
                        new (): CSSTransition;
                    };
                    CSSTranslate: {
                        prototype: CSSTranslate;
                        new (x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;
                    };
                    CSSUnitValue: {
                        prototype: CSSUnitValue;
                        new (value: number, unit: string): CSSUnitValue;
                    };
                    CSSUnparsedValue: {
                        prototype: CSSUnparsedValue;
                        new (members: CSSUnparsedSegment[]): CSSUnparsedValue;
                    };
                    CSSVariableReferenceValue: {
                        prototype: CSSVariableReferenceValue;
                        new (variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;
                    };
                    CSSViewTransitionRule: {
                        prototype: CSSViewTransitionRule;
                        new (): CSSViewTransitionRule;
                    };
                    Cache: {
                        prototype: Cache;
                        new (): Cache;
                    };
                    CacheStorage: {
                        prototype: CacheStorage;
                        new (): CacheStorage;
                    };
                    CanvasCaptureMediaStreamTrack: {
                        prototype: CanvasCaptureMediaStreamTrack;
                        new (): CanvasCaptureMediaStreamTrack;
                    };
                    CanvasGradient: {
                        prototype: CanvasGradient;
                        new (): CanvasGradient;
                    };
                    CanvasPattern: {
                        prototype: CanvasPattern;
                        new (): CanvasPattern;
                    };
                    CanvasRenderingContext2D: {
                        prototype: CanvasRenderingContext2D;
                        new (): CanvasRenderingContext2D;
                    };
                    CaretPosition: {
                        prototype: CaretPosition;
                        new (): CaretPosition;
                    };
                    ChannelMergerNode: {
                        prototype: ChannelMergerNode;
                        new (context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;
                    };
                    ChannelSplitterNode: {
                        prototype: ChannelSplitterNode;
                        new (context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;
                    };
                    CharacterData: {
                        prototype: CharacterData;
                        new (): CharacterData;
                    };
                    Clipboard: {
                        prototype: Clipboard;
                        new (): Clipboard;
                    };
                    ClipboardEvent: {
                        prototype: ClipboardEvent;
                        new (type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;
                    };
                    ClipboardItem: {
                        prototype: ClipboardItem;
                        new (items: Record<string, string | Blob | PromiseLike<string | Blob>>, options?: ClipboardItemOptions): ClipboardItem;
                        supports(type: string): boolean;
                    };
                    CloseEvent: {
                        prototype: CloseEvent;
                        new (type: string, eventInitDict?: CloseEventInit): CloseEvent;
                    };
                    Comment: {
                        prototype: Comment;
                        new (data?: string): Comment;
                    };
                    CompositionEvent: {
                        prototype: CompositionEvent;
                        new (type: string, eventInitDict?: CompositionEventInit): CompositionEvent;
                    };
                    CompressionStream: {
                        prototype: CompressionStream;
                        new (format: CompressionFormat): CompressionStream;
                    };
                    ConstantSourceNode: {
                        prototype: ConstantSourceNode;
                        new (context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;
                    };
                    ContentVisibilityAutoStateChangeEvent: {
                        prototype: ContentVisibilityAutoStateChangeEvent;
                        new (type: string, eventInitDict?: ContentVisibilityAutoStateChangeEventInit): ContentVisibilityAutoStateChangeEvent;
                    };
                    ConvolverNode: {
                        prototype: ConvolverNode;
                        new (context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;
                    };
                    CountQueuingStrategy: {
                        prototype: CountQueuingStrategy;
                        new (init: QueuingStrategyInit): CountQueuingStrategy;
                    };
                    Credential: {
                        prototype: Credential;
                        new (): Credential;
                    };
                    CredentialsContainer: {
                        prototype: CredentialsContainer;
                        new (): CredentialsContainer;
                    };
                    Crypto: {
                        prototype: Crypto;
                        new (): Crypto;
                    };
                    CryptoKey: {
                        prototype: CryptoKey;
                        new (): CryptoKey;
                    };
                    CustomElementRegistry: {
                        prototype: CustomElementRegistry;
                        new (): CustomElementRegistry;
                    };
                    CustomEvent: {
                        prototype: CustomEvent;
                        new <T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;
                    };
                    CustomStateSet: {
                        prototype: CustomStateSet;
                        new (): CustomStateSet;
                    };
                    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;
                    };
                    DOMImplementation: {
                        prototype: DOMImplementation;
                        new (): DOMImplementation;
                    };
                    DOMMatrix: {
                        prototype: DOMMatrix;
                        new (init?: string | number[]): DOMMatrix;
                        fromFloat32Array(array32: Float32Array): DOMMatrix;
                        fromFloat64Array(array64: Float64Array): DOMMatrix;
                        fromMatrix(other?: DOMMatrixInit): DOMMatrix;
                    };
                    SVGMatrix: typeof DOMMatrix;
                    WebKitCSSMatrix: typeof DOMMatrix;
                    DOMMatrixReadOnly: {
                        prototype: DOMMatrixReadOnly;
                        new (init?: string | number[]): DOMMatrixReadOnly;
                        fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;
                        fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;
                        fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;
                    };
                    DOMParser: {
                        prototype: DOMParser;
                        new (): DOMParser;
                    };
                    DOMPoint: {
                        prototype: DOMPoint;
                        new (x?: number, y?: number, z?: number, w?: number): DOMPoint;
                        fromPoint(other?: DOMPointInit): DOMPoint;
                    };
                    SVGPoint: typeof DOMPoint;
                    DOMPointReadOnly: {
                        prototype: DOMPointReadOnly;
                        new (x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;
                        fromPoint(other?: DOMPointInit): DOMPointReadOnly;
                    };
                    DOMQuad: {
                        prototype: DOMQuad;
                        new (p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;
                        fromQuad(other?: DOMQuadInit): DOMQuad;
                        fromRect(other?: DOMRectInit): DOMQuad;
                    };
                    DOMRect: {
                        prototype: DOMRect;
                        new (x?: number, y?: number, width?: number, height?: number): DOMRect;
                        fromRect(other?: DOMRectInit): DOMRect;
                    };
                    SVGRect: typeof DOMRect;
                    DOMRectList: {
                        prototype: DOMRectList;
                        new (): DOMRectList;
                    };
                    DOMRectReadOnly: {
                        prototype: DOMRectReadOnly;
                        new (x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;
                        fromRect(other?: DOMRectInit): DOMRectReadOnly;
                    };
                    DOMStringList: {
                        prototype: DOMStringList;
                        new (): DOMStringList;
                    };
                    DOMStringMap: {
                        prototype: DOMStringMap;
                        new (): DOMStringMap;
                    };
                    DOMTokenList: {
                        prototype: DOMTokenList;
                        new (): DOMTokenList;
                    };
                    DataTransfer: {
                        prototype: DataTransfer;
                        new (): DataTransfer;
                    };
                    DataTransferItem: {
                        prototype: DataTransferItem;
                        new (): DataTransferItem;
                    };
                    DataTransferItemList: {
                        prototype: DataTransferItemList;
                        new (): DataTransferItemList;
                    };
                    DecompressionStream: {
                        prototype: DecompressionStream;
                        new (format: CompressionFormat): DecompressionStream;
                    };
                    DelayNode: {
                        prototype: DelayNode;
                        new (context: BaseAudioContext, options?: DelayOptions): DelayNode;
                    };
                    DeviceMotionEvent: {
                        prototype: DeviceMotionEvent;
                        new (type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;
                    };
                    DeviceOrientationEvent: {
                        prototype: DeviceOrientationEvent;
                        new (type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;
                    };
                    Document: {
                        prototype: Document;
                        new (): Document;
                        parseHTMLUnsafe(html: string): Document;
                    };
                    DocumentFragment: {
                        prototype: DocumentFragment;
                        new (): DocumentFragment;
                    };
                    DocumentTimeline: {
                        prototype: DocumentTimeline;
                        new (options?: DocumentTimelineOptions): DocumentTimeline;
                    };
                    DocumentType: {
                        prototype: DocumentType;
                        new (): DocumentType;
                    };
                    DragEvent: {
                        prototype: DragEvent;
                        new (type: string, eventInitDict?: DragEventInit): DragEvent;
                    };
                    DynamicsCompressorNode: {
                        prototype: DynamicsCompressorNode;
                        new (context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;
                    };
                    Element: {
                        prototype: Element;
                        new (): Element;
                    };
                    ElementInternals: {
                        prototype: ElementInternals;
                        new (): ElementInternals;
                    };
                    EncodedAudioChunk: {
                        prototype: EncodedAudioChunk;
                        new (init: EncodedAudioChunkInit): EncodedAudioChunk;
                    };
                    EncodedVideoChunk: {
                        prototype: EncodedVideoChunk;
                        new (init: EncodedVideoChunkInit): EncodedVideoChunk;
                    };
                    ErrorEvent: {
                        prototype: ErrorEvent;
                        new (type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
                    };
                    Event: {
                        prototype: Event;
                        new (type: string, eventInitDict?: EventInit): Event;
                        readonly NONE: 0;
                        readonly CAPTURING_PHASE: 1;
                        readonly AT_TARGET: 2;
                        readonly BUBBLING_PHASE: 3;
                    };
                    EventCounts: {
                        prototype: EventCounts;
                        new (): EventCounts;
                    };
                    EventSource: {
                        prototype: EventSource;
                        new (url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;
                        readonly CONNECTING: 0;
                        readonly OPEN: 1;
                        readonly CLOSED: 2;
                    };
                    EventTarget: {
                        prototype: EventTarget;
                        new (): EventTarget;
                    };
                    External: {
                        prototype: External;
                        new (): External;
                    };
                    File: {
                        prototype: File;
                        new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
                    };
                    FileList: {
                        prototype: FileList;
                        new (): FileList;
                    };
                    FileReader: {
                        prototype: FileReader;
                        new (): FileReader;
                        readonly EMPTY: 0;
                        readonly LOADING: 1;
                        readonly DONE: 2;
                    };
                    FileSystem: {
                        prototype: FileSystem;
                        new (): FileSystem;
                    };
                    FileSystemDirectoryEntry: {
                        prototype: FileSystemDirectoryEntry;
                        new (): FileSystemDirectoryEntry;
                    };
                    FileSystemDirectoryHandle: {
                        prototype: FileSystemDirectoryHandle;
                        new (): FileSystemDirectoryHandle;
                    };
                    FileSystemDirectoryReader: {
                        prototype: FileSystemDirectoryReader;
                        new (): FileSystemDirectoryReader;
                    };
                    FileSystemEntry: {
                        prototype: FileSystemEntry;
                        new (): FileSystemEntry;
                    };
                    FileSystemFileEntry: {
                        prototype: FileSystemFileEntry;
                        new (): FileSystemFileEntry;
                    };
                    FileSystemFileHandle: {
                        prototype: FileSystemFileHandle;
                        new (): FileSystemFileHandle;
                    };
                    FileSystemHandle: {
                        prototype: FileSystemHandle;
                        new (): FileSystemHandle;
                    };
                    FileSystemWritableFileStream: {
                        prototype: FileSystemWritableFileStream;
                        new (): FileSystemWritableFileStream;
                    };
                    FocusEvent: {
                        prototype: FocusEvent;
                        new (type: string, eventInitDict?: FocusEventInit): FocusEvent;
                    };
                    FontFace: {
                        prototype: FontFace;
                        new (family: string, source: string | BufferSource, descriptors?: FontFaceDescriptors): FontFace;
                    };
                    FontFaceSet: {
                        prototype: FontFaceSet;
                        new (): FontFaceSet;
                    };
                    FontFaceSetLoadEvent: {
                        prototype: FontFaceSetLoadEvent;
                        new (type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;
                    };
                    FormData: {
                        prototype: FormData;
                        new (form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;
                    };
                    FormDataEvent: {
                        prototype: FormDataEvent;
                        new (type: string, eventInitDict: FormDataEventInit): FormDataEvent;
                    };
                    FragmentDirective: {
                        prototype: FragmentDirective;
                        new (): FragmentDirective;
                    };
                    GainNode: {
                        prototype: GainNode;
                        new (context: BaseAudioContext, options?: GainOptions): GainNode;
                    };
                    Gamepad: {
                        prototype: Gamepad;
                        new (): Gamepad;
                    };
                    GamepadButton: {
                        prototype: GamepadButton;
                        new (): GamepadButton;
                    };
                    GamepadEvent: {
                        prototype: GamepadEvent;
                        new (type: string, eventInitDict: GamepadEventInit): GamepadEvent;
                    };
                    GamepadHapticActuator: {
                        prototype: GamepadHapticActuator;
                        new (): GamepadHapticActuator;
                    };
                    Geolocation: {
                        prototype: Geolocation;
                        new (): Geolocation;
                    };
                    GeolocationCoordinates: {
                        prototype: GeolocationCoordinates;
                        new (): GeolocationCoordinates;
                    };
                    GeolocationPosition: {
                        prototype: GeolocationPosition;
                        new (): GeolocationPosition;
                    };
                    GeolocationPositionError: {
                        prototype: GeolocationPositionError;
                        new (): GeolocationPositionError;
                        readonly PERMISSION_DENIED: 1;
                        readonly POSITION_UNAVAILABLE: 2;
                        readonly TIMEOUT: 3;
                    };
                    HTMLAllCollection: {
                        prototype: HTMLAllCollection;
                        new (): HTMLAllCollection;
                    };
                    HTMLAnchorElement: {
                        prototype: HTMLAnchorElement;
                        new (): HTMLAnchorElement;
                    };
                    HTMLAreaElement: {
                        prototype: HTMLAreaElement;
                        new (): HTMLAreaElement;
                    };
                    HTMLAudioElement: {
                        prototype: HTMLAudioElement;
                        new (): HTMLAudioElement;
                    };
                    HTMLBRElement: {
                        prototype: HTMLBRElement;
                        new (): HTMLBRElement;
                    };
                    HTMLBaseElement: {
                        prototype: HTMLBaseElement;
                        new (): HTMLBaseElement;
                    };
                    HTMLBodyElement: {
                        prototype: HTMLBodyElement;
                        new (): HTMLBodyElement;
                    };
                    HTMLButtonElement: {
                        prototype: HTMLButtonElement;
                        new (): HTMLButtonElement;
                    };
                    HTMLCanvasElement: {
                        prototype: HTMLCanvasElement;
                        new (): HTMLCanvasElement;
                    };
                    HTMLCollection: {
                        prototype: HTMLCollection;
                        new (): HTMLCollection;
                    };
                    HTMLDListElement: {
                        prototype: HTMLDListElement;
                        new (): HTMLDListElement;
                    };
                    HTMLDataElement: {
                        prototype: HTMLDataElement;
                        new (): HTMLDataElement;
                    };
                    HTMLDataListElement: {
                        prototype: HTMLDataListElement;
                        new (): HTMLDataListElement;
                    };
                    HTMLDetailsElement: {
                        prototype: HTMLDetailsElement;
                        new (): HTMLDetailsElement;
                    };
                    HTMLDialogElement: {
                        prototype: HTMLDialogElement;
                        new (): HTMLDialogElement;
                    };
                    HTMLDirectoryElement: {
                        prototype: HTMLDirectoryElement;
                        new (): HTMLDirectoryElement;
                    };
                    HTMLDivElement: {
                        prototype: HTMLDivElement;
                        new (): HTMLDivElement;
                    };
                    HTMLDocument: {
                        prototype: HTMLDocument;
                        new (): HTMLDocument;
                    };
                    HTMLElement: {
                        prototype: HTMLElement;
                        new (): HTMLElement;
                    };
                    HTMLEmbedElement: {
                        prototype: HTMLEmbedElement;
                        new (): HTMLEmbedElement;
                    };
                    HTMLFieldSetElement: {
                        prototype: HTMLFieldSetElement;
                        new (): HTMLFieldSetElement;
                    };
                    HTMLFontElement: {
                        prototype: HTMLFontElement;
                        new (): HTMLFontElement;
                    };
                    HTMLFormControlsCollection: {
                        prototype: HTMLFormControlsCollection;
                        new (): HTMLFormControlsCollection;
                    };
                    HTMLFormElement: {
                        prototype: HTMLFormElement;
                        new (): HTMLFormElement;
                    };
                    HTMLFrameElement: {
                        prototype: HTMLFrameElement;
                        new (): HTMLFrameElement;
                    };
                    HTMLFrameSetElement: {
                        prototype: HTMLFrameSetElement;
                        new (): HTMLFrameSetElement;
                    };
                    HTMLHRElement: {
                        prototype: HTMLHRElement;
                        new (): HTMLHRElement;
                    };
                    HTMLHeadElement: {
                        prototype: HTMLHeadElement;
                        new (): HTMLHeadElement;
                    };
                    HTMLHeadingElement: {
                        prototype: HTMLHeadingElement;
                        new (): HTMLHeadingElement;
                    };
                    HTMLHtmlElement: {
                        prototype: HTMLHtmlElement;
                        new (): HTMLHtmlElement;
                    };
                    HTMLIFrameElement: {
                        prototype: HTMLIFrameElement;
                        new (): HTMLIFrameElement;
                    };
                    HTMLImageElement: {
                        prototype: HTMLImageElement;
                        new (): HTMLImageElement;
                    };
                    HTMLInputElement: {
                        prototype: HTMLInputElement;
                        new (): HTMLInputElement;
                    };
                    HTMLLIElement: {
                        prototype: HTMLLIElement;
                        new (): HTMLLIElement;
                    };
                    HTMLLabelElement: {
                        prototype: HTMLLabelElement;
                        new (): HTMLLabelElement;
                    };
                    HTMLLegendElement: {
                        prototype: HTMLLegendElement;
                        new (): HTMLLegendElement;
                    };
                    HTMLLinkElement: {
                        prototype: HTMLLinkElement;
                        new (): HTMLLinkElement;
                    };
                    HTMLMapElement: {
                        prototype: HTMLMapElement;
                        new (): HTMLMapElement;
                    };
                    HTMLMarqueeElement: {
                        prototype: HTMLMarqueeElement;
                        new (): HTMLMarqueeElement;
                    };
                    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;
                    };
                    HTMLMenuElement: {
                        prototype: HTMLMenuElement;
                        new (): HTMLMenuElement;
                    };
                    HTMLMetaElement: {
                        prototype: HTMLMetaElement;
                        new (): HTMLMetaElement;
                    };
                    HTMLMeterElement: {
                        prototype: HTMLMeterElement;
                        new (): HTMLMeterElement;
                    };
                    HTMLModElement: {
                        prototype: HTMLModElement;
                        new (): HTMLModElement;
                    };
                    HTMLOListElement: {
                        prototype: HTMLOListElement;
                        new (): HTMLOListElement;
                    };
                    HTMLObjectElement: {
                        prototype: HTMLObjectElement;
                        new (): HTMLObjectElement;
                    };
                    HTMLOptGroupElement: {
                        prototype: HTMLOptGroupElement;
                        new (): HTMLOptGroupElement;
                    };
                    HTMLOptionElement: {
                        prototype: HTMLOptionElement;
                        new (): HTMLOptionElement;
                    };
                    HTMLOptionsCollection: {
                        prototype: HTMLOptionsCollection;
                        new (): HTMLOptionsCollection;
                    };
                    HTMLOutputElement: {
                        prototype: HTMLOutputElement;
                        new (): HTMLOutputElement;
                    };
                    HTMLParagraphElement: {
                        prototype: HTMLParagraphElement;
                        new (): HTMLParagraphElement;
                    };
                    HTMLParamElement: {
                        prototype: HTMLParamElement;
                        new (): HTMLParamElement;
                    };
                    HTMLPictureElement: {
                        prototype: HTMLPictureElement;
                        new (): HTMLPictureElement;
                    };
                    HTMLPreElement: {
                        prototype: HTMLPreElement;
                        new (): HTMLPreElement;
                    };
                    HTMLProgressElement: {
                        prototype: HTMLProgressElement;
                        new (): HTMLProgressElement;
                    };
                    HTMLQuoteElement: {
                        prototype: HTMLQuoteElement;
                        new (): HTMLQuoteElement;
                    };
                    HTMLScriptElement: {
                        prototype: HTMLScriptElement;
                        new (): HTMLScriptElement;
                        supports(type: string): boolean;
                    };
                    HTMLSelectElement: {
                        prototype: HTMLSelectElement;
                        new (): HTMLSelectElement;
                    };
                    HTMLSlotElement: {
                        prototype: HTMLSlotElement;
                        new (): HTMLSlotElement;
                    };
                    HTMLSourceElement: {
                        prototype: HTMLSourceElement;
                        new (): HTMLSourceElement;
                    };
                    HTMLSpanElement: {
                        prototype: HTMLSpanElement;
                        new (): HTMLSpanElement;
                    };
                    HTMLStyleElement: {
                        prototype: HTMLStyleElement;
                        new (): HTMLStyleElement;
                    };
                    HTMLTableCaptionElement: {
                        prototype: HTMLTableCaptionElement;
                        new (): HTMLTableCaptionElement;
                    };
                    HTMLTableCellElement: {
                        prototype: HTMLTableCellElement;
                        new (): HTMLTableCellElement;
                    };
                    HTMLTableColElement: {
                        prototype: HTMLTableColElement;
                        new (): HTMLTableColElement;
                    };
                    HTMLTableElement: {
                        prototype: HTMLTableElement;
                        new (): HTMLTableElement;
                    };
                    HTMLTableRowElement: {
                        prototype: HTMLTableRowElement;
                        new (): HTMLTableRowElement;
                    };
                    HTMLTableSectionElement: {
                        prototype: HTMLTableSectionElement;
                        new (): HTMLTableSectionElement;
                    };
                    HTMLTemplateElement: {
                        prototype: HTMLTemplateElement;
                        new (): HTMLTemplateElement;
                    };
                    HTMLTextAreaElement: {
                        prototype: HTMLTextAreaElement;
                        new (): HTMLTextAreaElement;
                    };
                    HTMLTimeElement: {
                        prototype: HTMLTimeElement;
                        new (): HTMLTimeElement;
                    };
                    HTMLTitleElement: {
                        prototype: HTMLTitleElement;
                        new (): HTMLTitleElement;
                    };
                    HTMLTrackElement: {
                        prototype: HTMLTrackElement;
                        new (): HTMLTrackElement;
                        readonly NONE: 0;
                        readonly LOADING: 1;
                        readonly LOADED: 2;
                        readonly ERROR: 3;
                    };
                    HTMLUListElement: {
                        prototype: HTMLUListElement;
                        new (): HTMLUListElement;
                    };
                    HTMLUnknownElement: {
                        prototype: HTMLUnknownElement;
                        new (): HTMLUnknownElement;
                    };
                    HTMLVideoElement: {
                        prototype: HTMLVideoElement;
                        new (): HTMLVideoElement;
                    };
                    HashChangeEvent: {
                        prototype: HashChangeEvent;
                        new (type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;
                    };
                    Headers: {
                        prototype: Headers;
                        new (init?: HeadersInit): Headers;
                    };
                    Highlight: {
                        prototype: Highlight;
                        new (...initialRanges: AbstractRange[]): Highlight;
                    };
                    HighlightRegistry: {
                        prototype: HighlightRegistry;
                        new (): HighlightRegistry;
                    };
                    History: {
                        prototype: History;
                        new (): History;
                    };
                    IDBCursor: {
                        prototype: IDBCursor;
                        new (): IDBCursor;
                    };
                    IDBCursorWithValue: {
                        prototype: IDBCursorWithValue;
                        new (): IDBCursorWithValue;
                    };
                    IDBDatabase: {
                        prototype: IDBDatabase;
                        new (): IDBDatabase;
                    };
                    IDBFactory: {
                        prototype: IDBFactory;
                        new (): IDBFactory;
                    };
                    IDBIndex: {
                        prototype: IDBIndex;
                        new (): IDBIndex;
                    };
                    IDBKeyRange: {
                        prototype: IDBKeyRange;
                        new (): IDBKeyRange;
                        bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;
                        lowerBound(lower: any, open?: boolean): IDBKeyRange;
                        only(value: any): IDBKeyRange;
                        upperBound(upper: any, open?: boolean): IDBKeyRange;
                    };
                    IDBObjectStore: {
                        prototype: IDBObjectStore;
                        new (): IDBObjectStore;
                    };
                    IDBOpenDBRequest: {
                        prototype: IDBOpenDBRequest;
                        new (): IDBOpenDBRequest;
                    };
                    IDBRequest: {
                        prototype: IDBRequest;
                        new (): IDBRequest;
                    };
                    IDBTransaction: {
                        prototype: IDBTransaction;
                        new (): IDBTransaction;
                    };
                    IDBVersionChangeEvent: {
                        prototype: IDBVersionChangeEvent;
                        new (type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;
                    };
                    IIRFilterNode: {
                        prototype: IIRFilterNode;
                        new (context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;
                    };
                    IdleDeadline: {
                        prototype: IdleDeadline;
                        new (): IdleDeadline;
                    };
                    ImageBitmap: {
                        prototype: ImageBitmap;
                        new (): ImageBitmap;
                    };
                    ImageBitmapRenderingContext: {
                        prototype: ImageBitmapRenderingContext;
                        new (): ImageBitmapRenderingContext;
                    };
                    ImageData: {
                        prototype: ImageData;
                        new (sw: number, sh: number, settings?: ImageDataSettings): ImageData;
                        new (data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;
                    };
                    ImageDecoder: {
                        prototype: ImageDecoder;
                        new (init: ImageDecoderInit): ImageDecoder;
                        isTypeSupported(type: string): Promise<boolean>;
                    };
                    ImageTrack: {
                        prototype: ImageTrack;
                        new (): ImageTrack;
                    };
                    ImageTrackList: {
                        prototype: ImageTrackList;
                        new (): ImageTrackList;
                    };
                    InputDeviceInfo: {
                        prototype: InputDeviceInfo;
                        new (): InputDeviceInfo;
                    };
                    InputEvent: {
                        prototype: InputEvent;
                        new (type: string, eventInitDict?: InputEventInit): InputEvent;
                    };
                    IntersectionObserver: {
                        prototype: IntersectionObserver;
                        new (callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;
                    };
                    IntersectionObserverEntry: {
                        prototype: IntersectionObserverEntry;
                        new (): IntersectionObserverEntry;
                    };
                    KeyboardEvent: {
                        prototype: KeyboardEvent;
                        new (type: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;
                        readonly DOM_KEY_LOCATION_STANDARD: 0;
                        readonly DOM_KEY_LOCATION_LEFT: 1;
                        readonly DOM_KEY_LOCATION_RIGHT: 2;
                        readonly DOM_KEY_LOCATION_NUMPAD: 3;
                    };
                    KeyframeEffect: {
                        prototype: KeyframeEffect;
                        new (target: Element | null, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeEffectOptions): KeyframeEffect;
                        new (source: KeyframeEffect): KeyframeEffect;
                    };
                    LargestContentfulPaint: {
                        prototype: LargestContentfulPaint;
                        new (): LargestContentfulPaint;
                    };
                    Location: {
                        prototype: Location;
                        new (): Location;
                    };
                    Lock: {
                        prototype: Lock;
                        new (): Lock;
                    };
                    LockManager: {
                        prototype: LockManager;
                        new (): LockManager;
                    };
                    MIDIAccess: {
                        prototype: MIDIAccess;
                        new (): MIDIAccess;
                    };
                    MIDIConnectionEvent: {
                        prototype: MIDIConnectionEvent;
                        new (type: string, eventInitDict?: MIDIConnectionEventInit): MIDIConnectionEvent;
                    };
                    MIDIInput: {
                        prototype: MIDIInput;
                        new (): MIDIInput;
                    };
                    MIDIInputMap: {
                        prototype: MIDIInputMap;
                        new (): MIDIInputMap;
                    };
                    MIDIMessageEvent: {
                        prototype: MIDIMessageEvent;
                        new (type: string, eventInitDict?: MIDIMessageEventInit): MIDIMessageEvent;
                    };
                    MIDIOutput: {
                        prototype: MIDIOutput;
                        new (): MIDIOutput;
                    };
                    MIDIOutputMap: {
                        prototype: MIDIOutputMap;
                        new (): MIDIOutputMap;
                    };
                    MIDIPort: {
                        prototype: MIDIPort;
                        new (): MIDIPort;
                    };
                    MathMLElement: {
                        prototype: MathMLElement;
                        new (): MathMLElement;
                    };
                    MediaCapabilities: {
                        prototype: MediaCapabilities;
                        new (): MediaCapabilities;
                    };
                    MediaDeviceInfo: {
                        prototype: MediaDeviceInfo;
                        new (): MediaDeviceInfo;
                    };
                    MediaDevices: {
                        prototype: MediaDevices;
                        new (): MediaDevices;
                    };
                    MediaElementAudioSourceNode: {
                        prototype: MediaElementAudioSourceNode;
                        new (context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;
                    };
                    MediaEncryptedEvent: {
                        prototype: MediaEncryptedEvent;
                        new (type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;
                    };
                    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;
                    };
                    MediaKeyMessageEvent: {
                        prototype: MediaKeyMessageEvent;
                        new (type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;
                    };
                    MediaKeySession: {
                        prototype: MediaKeySession;
                        new (): MediaKeySession;
                    };
                    MediaKeyStatusMap: {
                        prototype: MediaKeyStatusMap;
                        new (): MediaKeyStatusMap;
                    };
                    MediaKeySystemAccess: {
                        prototype: MediaKeySystemAccess;
                        new (): MediaKeySystemAccess;
                    };
                    MediaKeys: {
                        prototype: MediaKeys;
                        new (): MediaKeys;
                    };
                    MediaList: {
                        prototype: MediaList;
                        new (): MediaList;
                    };
                    MediaMetadata: {
                        prototype: MediaMetadata;
                        new (init?: MediaMetadataInit): MediaMetadata;
                    };
                    MediaQueryList: {
                        prototype: MediaQueryList;
                        new (): MediaQueryList;
                    };
                    MediaQueryListEvent: {
                        prototype: MediaQueryListEvent;
                        new (type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;
                    };
                    MediaRecorder: {
                        prototype: MediaRecorder;
                        new (stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;
                        isTypeSupported(type: string): boolean;
                    };
                    MediaSession: {
                        prototype: MediaSession;
                        new (): MediaSession;
                    };
                    MediaSource: {
                        prototype: MediaSource;
                        new (): MediaSource;
                        readonly canConstructInDedicatedWorker: boolean;
                        isTypeSupported(type: string): boolean;
                    };
                    MediaSourceHandle: {
                        prototype: MediaSourceHandle;
                        new (): MediaSourceHandle;
                    };
                    MediaStream: {
                        prototype: MediaStream;
                        new (): MediaStream;
                        new (stream: MediaStream): MediaStream;
                        new (tracks: MediaStreamTrack[]): MediaStream;
                    };
                    MediaStreamAudioDestinationNode: {
                        prototype: MediaStreamAudioDestinationNode;
                        new (context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;
                    };
                    MediaStreamAudioSourceNode: {
                        prototype: MediaStreamAudioSourceNode;
                        new (context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;
                    };
                    MediaStreamTrack: {
                        prototype: MediaStreamTrack;
                        new (): MediaStreamTrack;
                    };
                    MediaStreamTrackEvent: {
                        prototype: MediaStreamTrackEvent;
                        new (type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;
                    };
                    MessageChannel: {
                        prototype: MessageChannel;
                        new (): MessageChannel;
                    };
                    MessageEvent: {
                        prototype: MessageEvent;
                        new <T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;
                    };
                    MessagePort: {
                        prototype: MessagePort;
                        new (): MessagePort;
                    };
                    MimeType: {
                        prototype: MimeType;
                        new (): MimeType;
                    };
                    MimeTypeArray: {
                        prototype: MimeTypeArray;
                        new (): MimeTypeArray;
                    };
                    MouseEvent: {
                        prototype: MouseEvent;
                        new (type: string, eventInitDict?: MouseEventInit): MouseEvent;
                    };
                    MutationObserver: {
                        prototype: MutationObserver;
                        new (callback: MutationCallback): MutationObserver;
                    };
                    MutationRecord: {
                        prototype: MutationRecord;
                        new (): MutationRecord;
                    };
                    NamedNodeMap: {
                        prototype: NamedNodeMap;
                        new (): NamedNodeMap;
                    };
                    NavigationActivation: {
                        prototype: NavigationActivation;
                        new (): NavigationActivation;
                    };
                    NavigationHistoryEntry: {
                        prototype: NavigationHistoryEntry;
                        new (): NavigationHistoryEntry;
                    };
                    NavigationPreloadManager: {
                        prototype: NavigationPreloadManager;
                        new (): NavigationPreloadManager;
                    };
                    Navigator: {
                        prototype: Navigator;
                        new (): Navigator;
                    };
                    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: 1;
                        readonly DOCUMENT_POSITION_PRECEDING: 2;
                        readonly DOCUMENT_POSITION_FOLLOWING: 4;
                        readonly DOCUMENT_POSITION_CONTAINS: 8;
                        readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
                        readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
                    };
                    NodeIterator: {
                        prototype: NodeIterator;
                        new (): NodeIterator;
                    };
                    NodeList: {
                        prototype: NodeList;
                        new (): NodeList;
                    };
                    Notification: {
                        prototype: Notification;
                        new (title: string, options?: NotificationOptions): Notification;
                        readonly permission: NotificationPermission;
                        requestPermission(deprecatedCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;
                    };
                    OfflineAudioCompletionEvent: {
                        prototype: OfflineAudioCompletionEvent;
                        new (type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;
                    };
                    OfflineAudioContext: {
                        prototype: OfflineAudioContext;
                        new (contextOptions: OfflineAudioContextOptions): OfflineAudioContext;
                        new (numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;
                    };
                    OffscreenCanvas: {
                        prototype: OffscreenCanvas;
                        new (width: number, height: number): OffscreenCanvas;
                    };
                    OffscreenCanvasRenderingContext2D: {
                        prototype: OffscreenCanvasRenderingContext2D;
                        new (): OffscreenCanvasRenderingContext2D;
                    };
                    OscillatorNode: {
                        prototype: OscillatorNode;
                        new (context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;
                    };
                    OverconstrainedError: {
                        prototype: OverconstrainedError;
                        new (constraint: string, message?: string): OverconstrainedError;
                    };
                    PageRevealEvent: {
                        prototype: PageRevealEvent;
                        new (type: string, eventInitDict?: PageRevealEventInit): PageRevealEvent;
                    };
                    PageSwapEvent: {
                        prototype: PageSwapEvent;
                        new (type: string, eventInitDict?: PageSwapEventInit): PageSwapEvent;
                    };
                    PageTransitionEvent: {
                        prototype: PageTransitionEvent;
                        new (type: string, eventInitDict?: PageTransitionEventInit): PageTransitionEvent;
                    };
                    PannerNode: {
                        prototype: PannerNode;
                        new (context: BaseAudioContext, options?: PannerOptions): PannerNode;
                    };
                    Path2D: {
                        prototype: Path2D;
                        new (path?: Path2D | string): Path2D;
                    };
                    PaymentAddress: {
                        prototype: PaymentAddress;
                        new (): PaymentAddress;
                    };
                    PaymentMethodChangeEvent: {
                        prototype: PaymentMethodChangeEvent;
                        new (type: string, eventInitDict?: PaymentMethodChangeEventInit): PaymentMethodChangeEvent;
                    };
                    PaymentRequest: {
                        prototype: PaymentRequest;
                        new (methodData: PaymentMethodData[], details: PaymentDetailsInit, options?: PaymentOptions): PaymentRequest;
                    };
                    PaymentRequestUpdateEvent: {
                        prototype: PaymentRequestUpdateEvent;
                        new (type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;
                    };
                    PaymentResponse: {
                        prototype: PaymentResponse;
                        new (): PaymentResponse;
                    };
                    Performance: {
                        prototype: Performance;
                        new (): Performance;
                    };
                    PerformanceEntry: {
                        prototype: PerformanceEntry;
                        new (): PerformanceEntry;
                    };
                    PerformanceEventTiming: {
                        prototype: PerformanceEventTiming;
                        new (): PerformanceEventTiming;
                    };
                    PerformanceMark: {
                        prototype: PerformanceMark;
                        new (markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
                    };
                    PerformanceMeasure: {
                        prototype: PerformanceMeasure;
                        new (): PerformanceMeasure;
                    };
                    PerformanceNavigation: {
                        prototype: PerformanceNavigation;
                        new (): PerformanceNavigation;
                        readonly TYPE_NAVIGATE: 0;
                        readonly TYPE_RELOAD: 1;
                        readonly TYPE_BACK_FORWARD: 2;
                        readonly TYPE_RESERVED: 255;
                    };
                    PerformanceNavigationTiming: {
                        prototype: PerformanceNavigationTiming;
                        new (): PerformanceNavigationTiming;
                    };
                    PerformanceObserver: {
                        prototype: PerformanceObserver;
                        new (callback: PerformanceObserverCallback): PerformanceObserver;
                        readonly supportedEntryTypes: ReadonlyArray<string>;
                    };
                    PerformanceObserverEntryList: {
                        prototype: PerformanceObserverEntryList;
                        new (): PerformanceObserverEntryList;
                    };
                    PerformancePaintTiming: {
                        prototype: PerformancePaintTiming;
                        new (): PerformancePaintTiming;
                    };
                    PerformanceResourceTiming: {
                        prototype: PerformanceResourceTiming;
                        new (): PerformanceResourceTiming;
                    };
                    PerformanceServerTiming: {
                        prototype: PerformanceServerTiming;
                        new (): PerformanceServerTiming;
                    };
                    PerformanceTiming: {
                        prototype: PerformanceTiming;
                        new (): PerformanceTiming;
                    };
                    PeriodicWave: {
                        prototype: PeriodicWave;
                        new (context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;
                    };
                    PermissionStatus: {
                        prototype: PermissionStatus;
                        new (): PermissionStatus;
                    };
                    Permissions: {
                        prototype: Permissions;
                        new (): Permissions;
                    };
                    PictureInPictureEvent: {
                        prototype: PictureInPictureEvent;
                        new (type: string, eventInitDict: PictureInPictureEventInit): PictureInPictureEvent;
                    };
                    PictureInPictureWindow: {
                        prototype: PictureInPictureWindow;
                        new (): PictureInPictureWindow;
                    };
                    Plugin: {
                        prototype: Plugin;
                        new (): Plugin;
                    };
                    PluginArray: {
                        prototype: PluginArray;
                        new (): PluginArray;
                    };
                    PointerEvent: {
                        prototype: PointerEvent;
                        new (type: string, eventInitDict?: PointerEventInit): PointerEvent;
                    };
                    PopStateEvent: {
                        prototype: PopStateEvent;
                        new (type: string, eventInitDict?: PopStateEventInit): PopStateEvent;
                    };
                    ProcessingInstruction: {
                        prototype: ProcessingInstruction;
                        new (): ProcessingInstruction;
                    };
                    ProgressEvent: {
                        prototype: ProgressEvent;
                        new (type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
                    };
                    PromiseRejectionEvent: {
                        prototype: PromiseRejectionEvent;
                        new (type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;
                    };
                    PublicKeyCredential: {
                        prototype: PublicKeyCredential;
                        new (): PublicKeyCredential;
                        getClientCapabilities(): Promise<PublicKeyCredentialClientCapabilities>;
                        isConditionalMediationAvailable(): Promise<boolean>;
                        isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;
                        parseCreationOptionsFromJSON(options: PublicKeyCredentialCreationOptionsJSON): PublicKeyCredentialCreationOptions;
                        parseRequestOptionsFromJSON(options: PublicKeyCredentialRequestOptionsJSON): PublicKeyCredentialRequestOptions;
                    };
                    PushManager: {
                        prototype: PushManager;
                        new (): PushManager;
                        readonly supportedContentEncodings: ReadonlyArray<string>;
                    };
                    PushSubscription: {
                        prototype: PushSubscription;
                        new (): PushSubscription;
                    };
                    PushSubscriptionOptions: {
                        prototype: PushSubscriptionOptions;
                        new (): PushSubscriptionOptions;
                    };
                    RTCCertificate: {
                        prototype: RTCCertificate;
                        new (): RTCCertificate;
                    };
                    RTCDTMFSender: {
                        prototype: RTCDTMFSender;
                        new (): RTCDTMFSender;
                    };
                    RTCDTMFToneChangeEvent: {
                        prototype: RTCDTMFToneChangeEvent;
                        new (type: string, eventInitDict?: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;
                    };
                    RTCDataChannel: {
                        prototype: RTCDataChannel;
                        new (): RTCDataChannel;
                    };
                    RTCDataChannelEvent: {
                        prototype: RTCDataChannelEvent;
                        new (type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;
                    };
                    RTCDtlsTransport: {
                        prototype: RTCDtlsTransport;
                        new (): RTCDtlsTransport;
                    };
                    RTCEncodedAudioFrame: {
                        prototype: RTCEncodedAudioFrame;
                        new (): RTCEncodedAudioFrame;
                    };
                    RTCEncodedVideoFrame: {
                        prototype: RTCEncodedVideoFrame;
                        new (): RTCEncodedVideoFrame;
                    };
                    RTCError: {
                        prototype: RTCError;
                        new (init: RTCErrorInit, message?: string): RTCError;
                    };
                    RTCErrorEvent: {
                        prototype: RTCErrorEvent;
                        new (type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent;
                    };
                    RTCIceCandidate: {
                        prototype: RTCIceCandidate;
                        new (candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;
                    };
                    RTCIceTransport: {
                        prototype: RTCIceTransport;
                        new (): RTCIceTransport;
                    };
                    RTCPeerConnection: {
                        prototype: RTCPeerConnection;
                        new (configuration?: RTCConfiguration): RTCPeerConnection;
                        generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;
                    };
                    RTCPeerConnectionIceErrorEvent: {
                        prototype: RTCPeerConnectionIceErrorEvent;
                        new (type: string, eventInitDict: RTCPeerConnectionIceErrorEventInit): RTCPeerConnectionIceErrorEvent;
                    };
                    RTCPeerConnectionIceEvent: {
                        prototype: RTCPeerConnectionIceEvent;
                        new (type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;
                    };
                    RTCRtpReceiver: {
                        prototype: RTCRtpReceiver;
                        new (): RTCRtpReceiver;
                        getCapabilities(kind: string): RTCRtpCapabilities | null;
                    };
                    RTCRtpScriptTransform: {
                        prototype: RTCRtpScriptTransform;
                        new (worker: Worker, options?: any, transfer?: any[]): RTCRtpScriptTransform;
                    };
                    RTCRtpSender: {
                        prototype: RTCRtpSender;
                        new (): RTCRtpSender;
                        getCapabilities(kind: string): RTCRtpCapabilities | null;
                    };
                    RTCRtpTransceiver: {
                        prototype: RTCRtpTransceiver;
                        new (): RTCRtpTransceiver;
                    };
                    RTCSctpTransport: {
                        prototype: RTCSctpTransport;
                        new (): RTCSctpTransport;
                    };
                    RTCSessionDescription: {
                        prototype: RTCSessionDescription;
                        new (descriptionInitDict: RTCSessionDescriptionInit): RTCSessionDescription;
                    };
                    RTCStatsReport: {
                        prototype: RTCStatsReport;
                        new (): RTCStatsReport;
                    };
                    RTCTrackEvent: {
                        prototype: RTCTrackEvent;
                        new (type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;
                    };
                    RadioNodeList: {
                        prototype: RadioNodeList;
                        new (): RadioNodeList;
                    };
                    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;
                    };
                    ReadableByteStreamController: {
                        prototype: ReadableByteStreamController;
                        new (): ReadableByteStreamController;
                    };
                    ReadableStream: {
                        prototype: ReadableStream;
                        new (underlyingSource: UnderlyingByteSource, strategy?: {
                            highWaterMark?: number;
                        }): ReadableStream<Uint8Array>;
                        new <R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
                        new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
                    };
                    ReadableStreamBYOBReader: {
                        prototype: ReadableStreamBYOBReader;
                        new (stream: ReadableStream<Uint8Array>): ReadableStreamBYOBReader;
                    };
                    ReadableStreamBYOBRequest: {
                        prototype: ReadableStreamBYOBRequest;
                        new (): ReadableStreamBYOBRequest;
                    };
                    ReadableStreamDefaultController: {
                        prototype: ReadableStreamDefaultController;
                        new (): ReadableStreamDefaultController;
                    };
                    ReadableStreamDefaultReader: {
                        prototype: ReadableStreamDefaultReader;
                        new <R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
                    };
                    RemotePlayback: {
                        prototype: RemotePlayback;
                        new (): RemotePlayback;
                    };
                    Report: {
                        prototype: Report;
                        new (): Report;
                    };
                    ReportBody: {
                        prototype: ReportBody;
                        new (): ReportBody;
                    };
                    ReportingObserver: {
                        prototype: ReportingObserver;
                        new (callback: ReportingObserverCallback, options?: ReportingObserverOptions): ReportingObserver;
                    };
                    Request: {
                        prototype: Request;
                        new (input: RequestInfo | URL, init?: RequestInit): Request;
                    };
                    ResizeObserver: {
                        prototype: ResizeObserver;
                        new (callback: ResizeObserverCallback): ResizeObserver;
                    };
                    ResizeObserverEntry: {
                        prototype: ResizeObserverEntry;
                        new (): ResizeObserverEntry;
                    };
                    ResizeObserverSize: {
                        prototype: ResizeObserverSize;
                        new (): ResizeObserverSize;
                    };
                    Response: {
                        prototype: Response;
                        new (body?: BodyInit | null, init?: ResponseInit): Response;
                        error(): Response;
                        json(data: any, init?: ResponseInit): Response;
                        redirect(url: string | URL, status?: number): Response;
                    };
                    SVGAElement: {
                        prototype: SVGAElement;
                        new (): SVGAElement;
                    };
                    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;
                    };
                    SVGAnimateElement: {
                        prototype: SVGAnimateElement;
                        new (): SVGAnimateElement;
                    };
                    SVGAnimateMotionElement: {
                        prototype: SVGAnimateMotionElement;
                        new (): SVGAnimateMotionElement;
                    };
                    SVGAnimateTransformElement: {
                        prototype: SVGAnimateTransformElement;
                        new (): SVGAnimateTransformElement;
                    };
                    SVGAnimatedAngle: {
                        prototype: SVGAnimatedAngle;
                        new (): SVGAnimatedAngle;
                    };
                    SVGAnimatedBoolean: {
                        prototype: SVGAnimatedBoolean;
                        new (): SVGAnimatedBoolean;
                    };
                    SVGAnimatedEnumeration: {
                        prototype: SVGAnimatedEnumeration;
                        new (): SVGAnimatedEnumeration;
                    };
                    SVGAnimatedInteger: {
                        prototype: SVGAnimatedInteger;
                        new (): SVGAnimatedInteger;
                    };
                    SVGAnimatedLength: {
                        prototype: SVGAnimatedLength;
                        new (): SVGAnimatedLength;
                    };
                    SVGAnimatedLengthList: {
                        prototype: SVGAnimatedLengthList;
                        new (): SVGAnimatedLengthList;
                    };
                    SVGAnimatedNumber: {
                        prototype: SVGAnimatedNumber;
                        new (): SVGAnimatedNumber;
                    };
                    SVGAnimatedNumberList: {
                        prototype: SVGAnimatedNumberList;
                        new (): SVGAnimatedNumberList;
                    };
                    SVGAnimatedPreserveAspectRatio: {
                        prototype: SVGAnimatedPreserveAspectRatio;
                        new (): SVGAnimatedPreserveAspectRatio;
                    };
                    SVGAnimatedRect: {
                        prototype: SVGAnimatedRect;
                        new (): SVGAnimatedRect;
                    };
                    SVGAnimatedString: {
                        prototype: SVGAnimatedString;
                        new (): SVGAnimatedString;
                    };
                    SVGAnimatedTransformList: {
                        prototype: SVGAnimatedTransformList;
                        new (): SVGAnimatedTransformList;
                    };
                    SVGAnimationElement: {
                        prototype: SVGAnimationElement;
                        new (): SVGAnimationElement;
                    };
                    SVGCircleElement: {
                        prototype: SVGCircleElement;
                        new (): SVGCircleElement;
                    };
                    SVGClipPathElement: {
                        prototype: SVGClipPathElement;
                        new (): SVGClipPathElement;
                    };
                    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;
                    };
                    SVGDefsElement: {
                        prototype: SVGDefsElement;
                        new (): SVGDefsElement;
                    };
                    SVGDescElement: {
                        prototype: SVGDescElement;
                        new (): SVGDescElement;
                    };
                    SVGElement: {
                        prototype: SVGElement;
                        new (): SVGElement;
                    };
                    SVGEllipseElement: {
                        prototype: SVGEllipseElement;
                        new (): SVGEllipseElement;
                    };
                    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;
                    };
                    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;
                    };
                    SVGFEComponentTransferElement: {
                        prototype: SVGFEComponentTransferElement;
                        new (): SVGFEComponentTransferElement;
                    };
                    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;
                    };
                    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;
                    };
                    SVGFEDiffuseLightingElement: {
                        prototype: SVGFEDiffuseLightingElement;
                        new (): SVGFEDiffuseLightingElement;
                    };
                    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;
                    };
                    SVGFEDistantLightElement: {
                        prototype: SVGFEDistantLightElement;
                        new (): SVGFEDistantLightElement;
                    };
                    SVGFEDropShadowElement: {
                        prototype: SVGFEDropShadowElement;
                        new (): SVGFEDropShadowElement;
                    };
                    SVGFEFloodElement: {
                        prototype: SVGFEFloodElement;
                        new (): SVGFEFloodElement;
                    };
                    SVGFEFuncAElement: {
                        prototype: SVGFEFuncAElement;
                        new (): SVGFEFuncAElement;
                    };
                    SVGFEFuncBElement: {
                        prototype: SVGFEFuncBElement;
                        new (): SVGFEFuncBElement;
                    };
                    SVGFEFuncGElement: {
                        prototype: SVGFEFuncGElement;
                        new (): SVGFEFuncGElement;
                    };
                    SVGFEFuncRElement: {
                        prototype: SVGFEFuncRElement;
                        new (): SVGFEFuncRElement;
                    };
                    SVGFEGaussianBlurElement: {
                        prototype: SVGFEGaussianBlurElement;
                        new (): SVGFEGaussianBlurElement;
                    };
                    SVGFEImageElement: {
                        prototype: SVGFEImageElement;
                        new (): SVGFEImageElement;
                    };
                    SVGFEMergeElement: {
                        prototype: SVGFEMergeElement;
                        new (): SVGFEMergeElement;
                    };
                    SVGFEMergeNodeElement: {
                        prototype: SVGFEMergeNodeElement;
                        new (): SVGFEMergeNodeElement;
                    };
                    SVGFEMorphologyElement: {
                        prototype: SVGFEMorphologyElement;
                        new (): SVGFEMorphologyElement;
                        readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
                        readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
                        readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
                    };
                    SVGFEOffsetElement: {
                        prototype: SVGFEOffsetElement;
                        new (): SVGFEOffsetElement;
                    };
                    SVGFEPointLightElement: {
                        prototype: SVGFEPointLightElement;
                        new (): SVGFEPointLightElement;
                    };
                    SVGFESpecularLightingElement: {
                        prototype: SVGFESpecularLightingElement;
                        new (): SVGFESpecularLightingElement;
                    };
                    SVGFESpotLightElement: {
                        prototype: SVGFESpotLightElement;
                        new (): SVGFESpotLightElement;
                    };
                    SVGFETileElement: {
                        prototype: SVGFETileElement;
                        new (): SVGFETileElement;
                    };
                    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;
                    };
                    SVGFilterElement: {
                        prototype: SVGFilterElement;
                        new (): SVGFilterElement;
                    };
                    SVGForeignObjectElement: {
                        prototype: SVGForeignObjectElement;
                        new (): SVGForeignObjectElement;
                    };
                    SVGGElement: {
                        prototype: SVGGElement;
                        new (): SVGGElement;
                    };
                    SVGGeometryElement: {
                        prototype: SVGGeometryElement;
                        new (): SVGGeometryElement;
                    };
                    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;
                    };
                    SVGGraphicsElement: {
                        prototype: SVGGraphicsElement;
                        new (): SVGGraphicsElement;
                    };
                    SVGImageElement: {
                        prototype: SVGImageElement;
                        new (): SVGImageElement;
                    };
                    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;
                    };
                    SVGLengthList: {
                        prototype: SVGLengthList;
                        new (): SVGLengthList;
                    };
                    SVGLineElement: {
                        prototype: SVGLineElement;
                        new (): SVGLineElement;
                    };
                    SVGLinearGradientElement: {
                        prototype: SVGLinearGradientElement;
                        new (): SVGLinearGradientElement;
                    };
                    SVGMPathElement: {
                        prototype: SVGMPathElement;
                        new (): SVGMPathElement;
                    };
                    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;
                    };
                    SVGMaskElement: {
                        prototype: SVGMaskElement;
                        new (): SVGMaskElement;
                    };
                    SVGMetadataElement: {
                        prototype: SVGMetadataElement;
                        new (): SVGMetadataElement;
                    };
                    SVGNumber: {
                        prototype: SVGNumber;
                        new (): SVGNumber;
                    };
                    SVGNumberList: {
                        prototype: SVGNumberList;
                        new (): SVGNumberList;
                    };
                    SVGPathElement: {
                        prototype: SVGPathElement;
                        new (): SVGPathElement;
                    };
                    SVGPatternElement: {
                        prototype: SVGPatternElement;
                        new (): SVGPatternElement;
                    };
                    SVGPointList: {
                        prototype: SVGPointList;
                        new (): SVGPointList;
                    };
                    SVGPolygonElement: {
                        prototype: SVGPolygonElement;
                        new (): SVGPolygonElement;
                    };
                    SVGPolylineElement: {
                        prototype: SVGPolylineElement;
                        new (): SVGPolylineElement;
                    };
                    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;
                    };
                    SVGRadialGradientElement: {
                        prototype: SVGRadialGradientElement;
                        new (): SVGRadialGradientElement;
                    };
                    SVGRectElement: {
                        prototype: SVGRectElement;
                        new (): SVGRectElement;
                    };
                    SVGSVGElement: {
                        prototype: SVGSVGElement;
                        new (): SVGSVGElement;
                    };
                    SVGScriptElement: {
                        prototype: SVGScriptElement;
                        new (): SVGScriptElement;
                    };
                    SVGSetElement: {
                        prototype: SVGSetElement;
                        new (): SVGSetElement;
                    };
                    SVGStopElement: {
                        prototype: SVGStopElement;
                        new (): SVGStopElement;
                    };
                    SVGStringList: {
                        prototype: SVGStringList;
                        new (): SVGStringList;
                    };
                    SVGStyleElement: {
                        prototype: SVGStyleElement;
                        new (): SVGStyleElement;
                    };
                    SVGSwitchElement: {
                        prototype: SVGSwitchElement;
                        new (): SVGSwitchElement;
                    };
                    SVGSymbolElement: {
                        prototype: SVGSymbolElement;
                        new (): SVGSymbolElement;
                    };
                    SVGTSpanElement: {
                        prototype: SVGTSpanElement;
                        new (): SVGTSpanElement;
                    };
                    SVGTextContentElement: {
                        prototype: SVGTextContentElement;
                        new (): SVGTextContentElement;
                        readonly LENGTHADJUST_UNKNOWN: 0;
                        readonly LENGTHADJUST_SPACING: 1;
                        readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
                    };
                    SVGTextElement: {
                        prototype: SVGTextElement;
                        new (): SVGTextElement;
                    };
                    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;
                    };
                    SVGTextPositioningElement: {
                        prototype: SVGTextPositioningElement;
                        new (): SVGTextPositioningElement;
                    };
                    SVGTitleElement: {
                        prototype: SVGTitleElement;
                        new (): SVGTitleElement;
                    };
                    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;
                    };
                    SVGTransformList: {
                        prototype: SVGTransformList;
                        new (): SVGTransformList;
                    };
                    SVGUnitTypes: {
                        prototype: SVGUnitTypes;
                        new (): SVGUnitTypes;
                        readonly SVG_UNIT_TYPE_UNKNOWN: 0;
                        readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
                        readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
                    };
                    SVGUseElement: {
                        prototype: SVGUseElement;
                        new (): SVGUseElement;
                    };
                    SVGViewElement: {
                        prototype: SVGViewElement;
                        new (): SVGViewElement;
                    };
                    Screen: {
                        prototype: Screen;
                        new (): Screen;
                    };
                    ScreenOrientation: {
                        prototype: ScreenOrientation;
                        new (): ScreenOrientation;
                    };
                    ScriptProcessorNode: {
                        prototype: ScriptProcessorNode;
                        new (): ScriptProcessorNode;
                    };
                    SecurityPolicyViolationEvent: {
                        prototype: SecurityPolicyViolationEvent;
                        new (type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;
                    };
                    Selection: {
                        prototype: Selection;
                        new (): Selection;
                    };
                    ServiceWorker: {
                        prototype: ServiceWorker;
                        new (): ServiceWorker;
                    };
                    ServiceWorkerContainer: {
                        prototype: ServiceWorkerContainer;
                        new (): ServiceWorkerContainer;
                    };
                    ServiceWorkerRegistration: {
                        prototype: ServiceWorkerRegistration;
                        new (): ServiceWorkerRegistration;
                    };
                    ShadowRoot: {
                        prototype: ShadowRoot;
                        new (): ShadowRoot;
                    };
                    SharedWorker: {
                        prototype: SharedWorker;
                        new (scriptURL: string | URL, options?: string | WorkerOptions): SharedWorker;
                    };
                    SourceBuffer: {
                        prototype: SourceBuffer;
                        new (): SourceBuffer;
                    };
                    SourceBufferList: {
                        prototype: SourceBufferList;
                        new (): SourceBufferList;
                    };
                    SpeechRecognitionAlternative: {
                        prototype: SpeechRecognitionAlternative;
                        new (): SpeechRecognitionAlternative;
                    };
                    SpeechRecognitionResult: {
                        prototype: SpeechRecognitionResult;
                        new (): SpeechRecognitionResult;
                    };
                    SpeechRecognitionResultList: {
                        prototype: SpeechRecognitionResultList;
                        new (): SpeechRecognitionResultList;
                    };
                    SpeechSynthesis: {
                        prototype: SpeechSynthesis;
                        new (): SpeechSynthesis;
                    };
                    SpeechSynthesisErrorEvent: {
                        prototype: SpeechSynthesisErrorEvent;
                        new (type: string, eventInitDict: SpeechSynthesisErrorEventInit): SpeechSynthesisErrorEvent;
                    };
                    SpeechSynthesisEvent: {
                        prototype: SpeechSynthesisEvent;
                        new (type: string, eventInitDict: SpeechSynthesisEventInit): SpeechSynthesisEvent;
                    };
                    SpeechSynthesisUtterance: {
                        prototype: SpeechSynthesisUtterance;
                        new (text?: string): SpeechSynthesisUtterance;
                    };
                    SpeechSynthesisVoice: {
                        prototype: SpeechSynthesisVoice;
                        new (): SpeechSynthesisVoice;
                    };
                    StaticRange: {
                        prototype: StaticRange;
                        new (init: StaticRangeInit): StaticRange;
                    };
                    StereoPannerNode: {
                        prototype: StereoPannerNode;
                        new (context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;
                    };
                    Storage: {
                        prototype: Storage;
                        new (): Storage;
                    };
                    StorageEvent: {
                        prototype: StorageEvent;
                        new (type: string, eventInitDict?: StorageEventInit): StorageEvent;
                    };
                    StorageManager: {
                        prototype: StorageManager;
                        new (): StorageManager;
                    };
                    StylePropertyMap: {
                        prototype: StylePropertyMap;
                        new (): StylePropertyMap;
                    };
                    StylePropertyMapReadOnly: {
                        prototype: StylePropertyMapReadOnly;
                        new (): StylePropertyMapReadOnly;
                    };
                    StyleSheet: {
                        prototype: StyleSheet;
                        new (): StyleSheet;
                    };
                    StyleSheetList: {
                        prototype: StyleSheetList;
                        new (): StyleSheetList;
                    };
                    SubmitEvent: {
                        prototype: SubmitEvent;
                        new (type: string, eventInitDict?: SubmitEventInit): SubmitEvent;
                    };
                    SubtleCrypto: {
                        prototype: SubtleCrypto;
                        new (): SubtleCrypto;
                    };
                    Text: {
                        prototype: Text;
                        new (data?: string): Text;
                    };
                    TextDecoder: {
                        prototype: TextDecoder;
                        new (label?: string, options?: TextDecoderOptions): TextDecoder;
                    };
                    TextDecoderStream: {
                        prototype: TextDecoderStream;
                        new (label?: string, options?: TextDecoderOptions): TextDecoderStream;
                    };
                    TextEncoder: {
                        prototype: TextEncoder;
                        new (): TextEncoder;
                    };
                    TextEncoderStream: {
                        prototype: TextEncoderStream;
                        new (): TextEncoderStream;
                    };
                    TextEvent: {
                        prototype: TextEvent;
                        new (): TextEvent;
                    };
                    TextMetrics: {
                        prototype: TextMetrics;
                        new (): TextMetrics;
                    };
                    TextTrack: {
                        prototype: TextTrack;
                        new (): TextTrack;
                    };
                    TextTrackCue: {
                        prototype: TextTrackCue;
                        new (): TextTrackCue;
                    };
                    TextTrackCueList: {
                        prototype: TextTrackCueList;
                        new (): TextTrackCueList;
                    };
                    TextTrackList: {
                        prototype: TextTrackList;
                        new (): TextTrackList;
                    };
                    TimeRanges: {
                        prototype: TimeRanges;
                        new (): TimeRanges;
                    };
                    ToggleEvent: {
                        prototype: ToggleEvent;
                        new (type: string, eventInitDict?: ToggleEventInit): ToggleEvent;
                    };
                    Touch: {
                        prototype: Touch;
                        new (touchInitDict: TouchInit): Touch;
                    };
                    TouchEvent: {
                        prototype: TouchEvent;
                        new (type: string, eventInitDict?: TouchEventInit): TouchEvent;
                    };
                    TouchList: {
                        prototype: TouchList;
                        new (): TouchList;
                    };
                    TrackEvent: {
                        prototype: TrackEvent;
                        new (type: string, eventInitDict?: TrackEventInit): TrackEvent;
                    };
                    TransformStream: {
                        prototype: TransformStream;
                        new <I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;
                    };
                    TransformStreamDefaultController: {
                        prototype: TransformStreamDefaultController;
                        new (): TransformStreamDefaultController;
                    };
                    TransitionEvent: {
                        prototype: TransitionEvent;
                        new (type: string, transitionEventInitDict?: TransitionEventInit): TransitionEvent;
                    };
                    TreeWalker: {
                        prototype: TreeWalker;
                        new (): TreeWalker;
                    };
                    UIEvent: {
                        prototype: UIEvent;
                        new (type: string, eventInitDict?: UIEventInit): UIEvent;
                    };
                    URL: {
                        prototype: URL;
                        new (url: string | URL, base?: string | URL): URL;
                        canParse(url: string | URL, base?: string | URL): boolean;
                        createObjectURL(obj: Blob | MediaSource): string;
                        parse(url: string | URL, base?: string | URL): URL | null;
                        revokeObjectURL(url: string): void;
                    };
                    webkitURL: typeof URL;
                    URLSearchParams: {
                        prototype: URLSearchParams;
                        new (init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;
                    };
                    UserActivation: {
                        prototype: UserActivation;
                        new (): UserActivation;
                    };
                    VTTCue: {
                        prototype: VTTCue;
                        new (startTime: number, endTime: number, text: string): VTTCue;
                    };
                    VTTRegion: {
                        prototype: VTTRegion;
                        new (): VTTRegion;
                    };
                    ValidityState: {
                        prototype: ValidityState;
                        new (): ValidityState;
                    };
                    VideoColorSpace: {
                        prototype: VideoColorSpace;
                        new (init?: VideoColorSpaceInit): VideoColorSpace;
                    };
                    VideoDecoder: {
                        prototype: VideoDecoder;
                        new (init: VideoDecoderInit): VideoDecoder;
                        isConfigSupported(config: VideoDecoderConfig): Promise<VideoDecoderSupport>;
                    };
                    VideoEncoder: {
                        prototype: VideoEncoder;
                        new (init: VideoEncoderInit): VideoEncoder;
                        isConfigSupported(config: VideoEncoderConfig): Promise<VideoEncoderSupport>;
                    };
                    VideoFrame: {
                        prototype: VideoFrame;
                        new (image: CanvasImageSource, init?: VideoFrameInit): VideoFrame;
                        new (data: AllowSharedBufferSource, init: VideoFrameBufferInit): VideoFrame;
                    };
                    VideoPlaybackQuality: {
                        prototype: VideoPlaybackQuality;
                        new (): VideoPlaybackQuality;
                    };
                    ViewTransition: {
                        prototype: ViewTransition;
                        new (): ViewTransition;
                    };
                    ViewTransitionTypeSet: {
                        prototype: ViewTransitionTypeSet;
                        new (): ViewTransitionTypeSet;
                    };
                    VisualViewport: {
                        prototype: VisualViewport;
                        new (): VisualViewport;
                    };
                    WakeLock: {
                        prototype: WakeLock;
                        new (): WakeLock;
                    };
                    WakeLockSentinel: {
                        prototype: WakeLockSentinel;
                        new (): WakeLockSentinel;
                    };
                    WaveShaperNode: {
                        prototype: WaveShaperNode;
                        new (context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;
                    };
                    WebGL2RenderingContext: {
                        prototype: WebGL2RenderingContext;
                        new (): WebGL2RenderingContext;
                        readonly READ_BUFFER: 3074;
                        readonly UNPACK_ROW_LENGTH: 3314;
                        readonly UNPACK_SKIP_ROWS: 3315;
                        readonly UNPACK_SKIP_PIXELS: 3316;
                        readonly PACK_ROW_LENGTH: 3330;
                        readonly PACK_SKIP_ROWS: 3331;
                        readonly PACK_SKIP_PIXELS: 3332;
                        readonly COLOR: 6144;
                        readonly DEPTH: 6145;
                        readonly STENCIL: 6146;
                        readonly RED: 6403;
                        readonly RGB8: 32849;
                        readonly RGB10_A2: 32857;
                        readonly TEXTURE_BINDING_3D: 32874;
                        readonly UNPACK_SKIP_IMAGES: 32877;
                        readonly UNPACK_IMAGE_HEIGHT: 32878;
                        readonly TEXTURE_3D: 32879;
                        readonly TEXTURE_WRAP_R: 32882;
                        readonly MAX_3D_TEXTURE_SIZE: 32883;
                        readonly UNSIGNED_INT_2_10_10_10_REV: 33640;
                        readonly MAX_ELEMENTS_VERTICES: 33000;
                        readonly MAX_ELEMENTS_INDICES: 33001;
                        readonly TEXTURE_MIN_LOD: 33082;
                        readonly TEXTURE_MAX_LOD: 33083;
                        readonly TEXTURE_BASE_LEVEL: 33084;
                        readonly TEXTURE_MAX_LEVEL: 33085;
                        readonly MIN: 32775;
                        readonly MAX: 32776;
                        readonly DEPTH_COMPONENT24: 33190;
                        readonly MAX_TEXTURE_LOD_BIAS: 34045;
                        readonly TEXTURE_COMPARE_MODE: 34892;
                        readonly TEXTURE_COMPARE_FUNC: 34893;
                        readonly CURRENT_QUERY: 34917;
                        readonly QUERY_RESULT: 34918;
                        readonly QUERY_RESULT_AVAILABLE: 34919;
                        readonly STREAM_READ: 35041;
                        readonly STREAM_COPY: 35042;
                        readonly STATIC_READ: 35045;
                        readonly STATIC_COPY: 35046;
                        readonly DYNAMIC_READ: 35049;
                        readonly DYNAMIC_COPY: 35050;
                        readonly MAX_DRAW_BUFFERS: 34852;
                        readonly DRAW_BUFFER0: 34853;
                        readonly DRAW_BUFFER1: 34854;
                        readonly DRAW_BUFFER2: 34855;
                        readonly DRAW_BUFFER3: 34856;
                        readonly DRAW_BUFFER4: 34857;
                        readonly DRAW_BUFFER5: 34858;
                        readonly DRAW_BUFFER6: 34859;
                        readonly DRAW_BUFFER7: 34860;
                        readonly DRAW_BUFFER8: 34861;
                        readonly DRAW_BUFFER9: 34862;
                        readonly DRAW_BUFFER10: 34863;
                        readonly DRAW_BUFFER11: 34864;
                        readonly DRAW_BUFFER12: 34865;
                        readonly DRAW_BUFFER13: 34866;
                        readonly DRAW_BUFFER14: 34867;
                        readonly DRAW_BUFFER15: 34868;
                        readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 35657;
                        readonly MAX_VERTEX_UNIFORM_COMPONENTS: 35658;
                        readonly SAMPLER_3D: 35679;
                        readonly SAMPLER_2D_SHADOW: 35682;
                        readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 35723;
                        readonly PIXEL_PACK_BUFFER: 35051;
                        readonly PIXEL_UNPACK_BUFFER: 35052;
                        readonly PIXEL_PACK_BUFFER_BINDING: 35053;
                        readonly PIXEL_UNPACK_BUFFER_BINDING: 35055;
                        readonly FLOAT_MAT2x3: 35685;
                        readonly FLOAT_MAT2x4: 35686;
                        readonly FLOAT_MAT3x2: 35687;
                        readonly FLOAT_MAT3x4: 35688;
                        readonly FLOAT_MAT4x2: 35689;
                        readonly FLOAT_MAT4x3: 35690;
                        readonly SRGB: 35904;
                        readonly SRGB8: 35905;
                        readonly SRGB8_ALPHA8: 35907;
                        readonly COMPARE_REF_TO_TEXTURE: 34894;
                        readonly RGBA32F: 34836;
                        readonly RGB32F: 34837;
                        readonly RGBA16F: 34842;
                        readonly RGB16F: 34843;
                        readonly VERTEX_ATTRIB_ARRAY_INTEGER: 35069;
                        readonly MAX_ARRAY_TEXTURE_LAYERS: 35071;
                        readonly MIN_PROGRAM_TEXEL_OFFSET: 35076;
                        readonly MAX_PROGRAM_TEXEL_OFFSET: 35077;
                        readonly MAX_VARYING_COMPONENTS: 35659;
                        readonly TEXTURE_2D_ARRAY: 35866;
                        readonly TEXTURE_BINDING_2D_ARRAY: 35869;
                        readonly R11F_G11F_B10F: 35898;
                        readonly UNSIGNED_INT_10F_11F_11F_REV: 35899;
                        readonly RGB9_E5: 35901;
                        readonly UNSIGNED_INT_5_9_9_9_REV: 35902;
                        readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 35967;
                        readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 35968;
                        readonly TRANSFORM_FEEDBACK_VARYINGS: 35971;
                        readonly TRANSFORM_FEEDBACK_BUFFER_START: 35972;
                        readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 35973;
                        readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 35976;
                        readonly RASTERIZER_DISCARD: 35977;
                        readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 35978;
                        readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 35979;
                        readonly INTERLEAVED_ATTRIBS: 35980;
                        readonly SEPARATE_ATTRIBS: 35981;
                        readonly TRANSFORM_FEEDBACK_BUFFER: 35982;
                        readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 35983;
                        readonly RGBA32UI: 36208;
                        readonly RGB32UI: 36209;
                        readonly RGBA16UI: 36214;
                        readonly RGB16UI: 36215;
                        readonly RGBA8UI: 36220;
                        readonly RGB8UI: 36221;
                        readonly RGBA32I: 36226;
                        readonly RGB32I: 36227;
                        readonly RGBA16I: 36232;
                        readonly RGB16I: 36233;
                        readonly RGBA8I: 36238;
                        readonly RGB8I: 36239;
                        readonly RED_INTEGER: 36244;
                        readonly RGB_INTEGER: 36248;
                        readonly RGBA_INTEGER: 36249;
                        readonly SAMPLER_2D_ARRAY: 36289;
                        readonly SAMPLER_2D_ARRAY_SHADOW: 36292;
                        readonly SAMPLER_CUBE_SHADOW: 36293;
                        readonly UNSIGNED_INT_VEC2: 36294;
                        readonly UNSIGNED_INT_VEC3: 36295;
                        readonly UNSIGNED_INT_VEC4: 36296;
                        readonly INT_SAMPLER_2D: 36298;
                        readonly INT_SAMPLER_3D: 36299;
                        readonly INT_SAMPLER_CUBE: 36300;
                        readonly INT_SAMPLER_2D_ARRAY: 36303;
                        readonly UNSIGNED_INT_SAMPLER_2D: 36306;
                        readonly UNSIGNED_INT_SAMPLER_3D: 36307;
                        readonly UNSIGNED_INT_SAMPLER_CUBE: 36308;
                        readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 36311;
                        readonly DEPTH_COMPONENT32F: 36012;
                        readonly DEPTH32F_STENCIL8: 36013;
                        readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 36269;
                        readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 33296;
                        readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 33297;
                        readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 33298;
                        readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 33299;
                        readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 33300;
                        readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 33301;
                        readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 33302;
                        readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 33303;
                        readonly FRAMEBUFFER_DEFAULT: 33304;
                        readonly UNSIGNED_INT_24_8: 34042;
                        readonly DEPTH24_STENCIL8: 35056;
                        readonly UNSIGNED_NORMALIZED: 35863;
                        readonly DRAW_FRAMEBUFFER_BINDING: 36006;
                        readonly READ_FRAMEBUFFER: 36008;
                        readonly DRAW_FRAMEBUFFER: 36009;
                        readonly READ_FRAMEBUFFER_BINDING: 36010;
                        readonly RENDERBUFFER_SAMPLES: 36011;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 36052;
                        readonly MAX_COLOR_ATTACHMENTS: 36063;
                        readonly COLOR_ATTACHMENT1: 36065;
                        readonly COLOR_ATTACHMENT2: 36066;
                        readonly COLOR_ATTACHMENT3: 36067;
                        readonly COLOR_ATTACHMENT4: 36068;
                        readonly COLOR_ATTACHMENT5: 36069;
                        readonly COLOR_ATTACHMENT6: 36070;
                        readonly COLOR_ATTACHMENT7: 36071;
                        readonly COLOR_ATTACHMENT8: 36072;
                        readonly COLOR_ATTACHMENT9: 36073;
                        readonly COLOR_ATTACHMENT10: 36074;
                        readonly COLOR_ATTACHMENT11: 36075;
                        readonly COLOR_ATTACHMENT12: 36076;
                        readonly COLOR_ATTACHMENT13: 36077;
                        readonly COLOR_ATTACHMENT14: 36078;
                        readonly COLOR_ATTACHMENT15: 36079;
                        readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 36182;
                        readonly MAX_SAMPLES: 36183;
                        readonly HALF_FLOAT: 5131;
                        readonly RG: 33319;
                        readonly RG_INTEGER: 33320;
                        readonly R8: 33321;
                        readonly RG8: 33323;
                        readonly R16F: 33325;
                        readonly R32F: 33326;
                        readonly RG16F: 33327;
                        readonly RG32F: 33328;
                        readonly R8I: 33329;
                        readonly R8UI: 33330;
                        readonly R16I: 33331;
                        readonly R16UI: 33332;
                        readonly R32I: 33333;
                        readonly R32UI: 33334;
                        readonly RG8I: 33335;
                        readonly RG8UI: 33336;
                        readonly RG16I: 33337;
                        readonly RG16UI: 33338;
                        readonly RG32I: 33339;
                        readonly RG32UI: 33340;
                        readonly VERTEX_ARRAY_BINDING: 34229;
                        readonly R8_SNORM: 36756;
                        readonly RG8_SNORM: 36757;
                        readonly RGB8_SNORM: 36758;
                        readonly RGBA8_SNORM: 36759;
                        readonly SIGNED_NORMALIZED: 36764;
                        readonly COPY_READ_BUFFER: 36662;
                        readonly COPY_WRITE_BUFFER: 36663;
                        readonly COPY_READ_BUFFER_BINDING: 36662;
                        readonly COPY_WRITE_BUFFER_BINDING: 36663;
                        readonly UNIFORM_BUFFER: 35345;
                        readonly UNIFORM_BUFFER_BINDING: 35368;
                        readonly UNIFORM_BUFFER_START: 35369;
                        readonly UNIFORM_BUFFER_SIZE: 35370;
                        readonly MAX_VERTEX_UNIFORM_BLOCKS: 35371;
                        readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 35373;
                        readonly MAX_COMBINED_UNIFORM_BLOCKS: 35374;
                        readonly MAX_UNIFORM_BUFFER_BINDINGS: 35375;
                        readonly MAX_UNIFORM_BLOCK_SIZE: 35376;
                        readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 35377;
                        readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 35379;
                        readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 35380;
                        readonly ACTIVE_UNIFORM_BLOCKS: 35382;
                        readonly UNIFORM_TYPE: 35383;
                        readonly UNIFORM_SIZE: 35384;
                        readonly UNIFORM_BLOCK_INDEX: 35386;
                        readonly UNIFORM_OFFSET: 35387;
                        readonly UNIFORM_ARRAY_STRIDE: 35388;
                        readonly UNIFORM_MATRIX_STRIDE: 35389;
                        readonly UNIFORM_IS_ROW_MAJOR: 35390;
                        readonly UNIFORM_BLOCK_BINDING: 35391;
                        readonly UNIFORM_BLOCK_DATA_SIZE: 35392;
                        readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 35394;
                        readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 35395;
                        readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 35396;
                        readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 35398;
                        readonly INVALID_INDEX: 4294967295;
                        readonly MAX_VERTEX_OUTPUT_COMPONENTS: 37154;
                        readonly MAX_FRAGMENT_INPUT_COMPONENTS: 37157;
                        readonly MAX_SERVER_WAIT_TIMEOUT: 37137;
                        readonly OBJECT_TYPE: 37138;
                        readonly SYNC_CONDITION: 37139;
                        readonly SYNC_STATUS: 37140;
                        readonly SYNC_FLAGS: 37141;
                        readonly SYNC_FENCE: 37142;
                        readonly SYNC_GPU_COMMANDS_COMPLETE: 37143;
                        readonly UNSIGNALED: 37144;
                        readonly SIGNALED: 37145;
                        readonly ALREADY_SIGNALED: 37146;
                        readonly TIMEOUT_EXPIRED: 37147;
                        readonly CONDITION_SATISFIED: 37148;
                        readonly WAIT_FAILED: 37149;
                        readonly SYNC_FLUSH_COMMANDS_BIT: 1;
                        readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 35070;
                        readonly ANY_SAMPLES_PASSED: 35887;
                        readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 36202;
                        readonly SAMPLER_BINDING: 35097;
                        readonly RGB10_A2UI: 36975;
                        readonly INT_2_10_10_10_REV: 36255;
                        readonly TRANSFORM_FEEDBACK: 36386;
                        readonly TRANSFORM_FEEDBACK_PAUSED: 36387;
                        readonly TRANSFORM_FEEDBACK_ACTIVE: 36388;
                        readonly TRANSFORM_FEEDBACK_BINDING: 36389;
                        readonly TEXTURE_IMMUTABLE_FORMAT: 37167;
                        readonly MAX_ELEMENT_INDEX: 36203;
                        readonly TEXTURE_IMMUTABLE_LEVELS: 33503;
                        readonly TIMEOUT_IGNORED: -1;
                        readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 37447;
                        readonly DEPTH_BUFFER_BIT: 256;
                        readonly STENCIL_BUFFER_BIT: 1024;
                        readonly COLOR_BUFFER_BIT: 16384;
                        readonly POINTS: 0;
                        readonly LINES: 1;
                        readonly LINE_LOOP: 2;
                        readonly LINE_STRIP: 3;
                        readonly TRIANGLES: 4;
                        readonly TRIANGLE_STRIP: 5;
                        readonly TRIANGLE_FAN: 6;
                        readonly ZERO: 0;
                        readonly ONE: 1;
                        readonly SRC_COLOR: 768;
                        readonly ONE_MINUS_SRC_COLOR: 769;
                        readonly SRC_ALPHA: 770;
                        readonly ONE_MINUS_SRC_ALPHA: 771;
                        readonly DST_ALPHA: 772;
                        readonly ONE_MINUS_DST_ALPHA: 773;
                        readonly DST_COLOR: 774;
                        readonly ONE_MINUS_DST_COLOR: 775;
                        readonly SRC_ALPHA_SATURATE: 776;
                        readonly FUNC_ADD: 32774;
                        readonly BLEND_EQUATION: 32777;
                        readonly BLEND_EQUATION_RGB: 32777;
                        readonly BLEND_EQUATION_ALPHA: 34877;
                        readonly FUNC_SUBTRACT: 32778;
                        readonly FUNC_REVERSE_SUBTRACT: 32779;
                        readonly BLEND_DST_RGB: 32968;
                        readonly BLEND_SRC_RGB: 32969;
                        readonly BLEND_DST_ALPHA: 32970;
                        readonly BLEND_SRC_ALPHA: 32971;
                        readonly CONSTANT_COLOR: 32769;
                        readonly ONE_MINUS_CONSTANT_COLOR: 32770;
                        readonly CONSTANT_ALPHA: 32771;
                        readonly ONE_MINUS_CONSTANT_ALPHA: 32772;
                        readonly BLEND_COLOR: 32773;
                        readonly ARRAY_BUFFER: 34962;
                        readonly ELEMENT_ARRAY_BUFFER: 34963;
                        readonly ARRAY_BUFFER_BINDING: 34964;
                        readonly ELEMENT_ARRAY_BUFFER_BINDING: 34965;
                        readonly STREAM_DRAW: 35040;
                        readonly STATIC_DRAW: 35044;
                        readonly DYNAMIC_DRAW: 35048;
                        readonly BUFFER_SIZE: 34660;
                        readonly BUFFER_USAGE: 34661;
                        readonly CURRENT_VERTEX_ATTRIB: 34342;
                        readonly FRONT: 1028;
                        readonly BACK: 1029;
                        readonly FRONT_AND_BACK: 1032;
                        readonly CULL_FACE: 2884;
                        readonly BLEND: 3042;
                        readonly DITHER: 3024;
                        readonly STENCIL_TEST: 2960;
                        readonly DEPTH_TEST: 2929;
                        readonly SCISSOR_TEST: 3089;
                        readonly POLYGON_OFFSET_FILL: 32823;
                        readonly SAMPLE_ALPHA_TO_COVERAGE: 32926;
                        readonly SAMPLE_COVERAGE: 32928;
                        readonly NO_ERROR: 0;
                        readonly INVALID_ENUM: 1280;
                        readonly INVALID_VALUE: 1281;
                        readonly INVALID_OPERATION: 1282;
                        readonly OUT_OF_MEMORY: 1285;
                        readonly CW: 2304;
                        readonly CCW: 2305;
                        readonly LINE_WIDTH: 2849;
                        readonly ALIASED_POINT_SIZE_RANGE: 33901;
                        readonly ALIASED_LINE_WIDTH_RANGE: 33902;
                        readonly CULL_FACE_MODE: 2885;
                        readonly FRONT_FACE: 2886;
                        readonly DEPTH_RANGE: 2928;
                        readonly DEPTH_WRITEMASK: 2930;
                        readonly DEPTH_CLEAR_VALUE: 2931;
                        readonly DEPTH_FUNC: 2932;
                        readonly STENCIL_CLEAR_VALUE: 2961;
                        readonly STENCIL_FUNC: 2962;
                        readonly STENCIL_FAIL: 2964;
                        readonly STENCIL_PASS_DEPTH_FAIL: 2965;
                        readonly STENCIL_PASS_DEPTH_PASS: 2966;
                        readonly STENCIL_REF: 2967;
                        readonly STENCIL_VALUE_MASK: 2963;
                        readonly STENCIL_WRITEMASK: 2968;
                        readonly STENCIL_BACK_FUNC: 34816;
                        readonly STENCIL_BACK_FAIL: 34817;
                        readonly STENCIL_BACK_PASS_DEPTH_FAIL: 34818;
                        readonly STENCIL_BACK_PASS_DEPTH_PASS: 34819;
                        readonly STENCIL_BACK_REF: 36003;
                        readonly STENCIL_BACK_VALUE_MASK: 36004;
                        readonly STENCIL_BACK_WRITEMASK: 36005;
                        readonly VIEWPORT: 2978;
                        readonly SCISSOR_BOX: 3088;
                        readonly COLOR_CLEAR_VALUE: 3106;
                        readonly COLOR_WRITEMASK: 3107;
                        readonly UNPACK_ALIGNMENT: 3317;
                        readonly PACK_ALIGNMENT: 3333;
                        readonly MAX_TEXTURE_SIZE: 3379;
                        readonly MAX_VIEWPORT_DIMS: 3386;
                        readonly SUBPIXEL_BITS: 3408;
                        readonly RED_BITS: 3410;
                        readonly GREEN_BITS: 3411;
                        readonly BLUE_BITS: 3412;
                        readonly ALPHA_BITS: 3413;
                        readonly DEPTH_BITS: 3414;
                        readonly STENCIL_BITS: 3415;
                        readonly POLYGON_OFFSET_UNITS: 10752;
                        readonly POLYGON_OFFSET_FACTOR: 32824;
                        readonly TEXTURE_BINDING_2D: 32873;
                        readonly SAMPLE_BUFFERS: 32936;
                        readonly SAMPLES: 32937;
                        readonly SAMPLE_COVERAGE_VALUE: 32938;
                        readonly SAMPLE_COVERAGE_INVERT: 32939;
                        readonly COMPRESSED_TEXTURE_FORMATS: 34467;
                        readonly DONT_CARE: 4352;
                        readonly FASTEST: 4353;
                        readonly NICEST: 4354;
                        readonly GENERATE_MIPMAP_HINT: 33170;
                        readonly BYTE: 5120;
                        readonly UNSIGNED_BYTE: 5121;
                        readonly SHORT: 5122;
                        readonly UNSIGNED_SHORT: 5123;
                        readonly INT: 5124;
                        readonly UNSIGNED_INT: 5125;
                        readonly FLOAT: 5126;
                        readonly DEPTH_COMPONENT: 6402;
                        readonly ALPHA: 6406;
                        readonly RGB: 6407;
                        readonly RGBA: 6408;
                        readonly LUMINANCE: 6409;
                        readonly LUMINANCE_ALPHA: 6410;
                        readonly UNSIGNED_SHORT_4_4_4_4: 32819;
                        readonly UNSIGNED_SHORT_5_5_5_1: 32820;
                        readonly UNSIGNED_SHORT_5_6_5: 33635;
                        readonly FRAGMENT_SHADER: 35632;
                        readonly VERTEX_SHADER: 35633;
                        readonly MAX_VERTEX_ATTRIBS: 34921;
                        readonly MAX_VERTEX_UNIFORM_VECTORS: 36347;
                        readonly MAX_VARYING_VECTORS: 36348;
                        readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661;
                        readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660;
                        readonly MAX_TEXTURE_IMAGE_UNITS: 34930;
                        readonly MAX_FRAGMENT_UNIFORM_VECTORS: 36349;
                        readonly SHADER_TYPE: 35663;
                        readonly DELETE_STATUS: 35712;
                        readonly LINK_STATUS: 35714;
                        readonly VALIDATE_STATUS: 35715;
                        readonly ATTACHED_SHADERS: 35717;
                        readonly ACTIVE_UNIFORMS: 35718;
                        readonly ACTIVE_ATTRIBUTES: 35721;
                        readonly SHADING_LANGUAGE_VERSION: 35724;
                        readonly CURRENT_PROGRAM: 35725;
                        readonly NEVER: 512;
                        readonly LESS: 513;
                        readonly EQUAL: 514;
                        readonly LEQUAL: 515;
                        readonly GREATER: 516;
                        readonly NOTEQUAL: 517;
                        readonly GEQUAL: 518;
                        readonly ALWAYS: 519;
                        readonly KEEP: 7680;
                        readonly REPLACE: 7681;
                        readonly INCR: 7682;
                        readonly DECR: 7683;
                        readonly INVERT: 5386;
                        readonly INCR_WRAP: 34055;
                        readonly DECR_WRAP: 34056;
                        readonly VENDOR: 7936;
                        readonly RENDERER: 7937;
                        readonly VERSION: 7938;
                        readonly NEAREST: 9728;
                        readonly LINEAR: 9729;
                        readonly NEAREST_MIPMAP_NEAREST: 9984;
                        readonly LINEAR_MIPMAP_NEAREST: 9985;
                        readonly NEAREST_MIPMAP_LINEAR: 9986;
                        readonly LINEAR_MIPMAP_LINEAR: 9987;
                        readonly TEXTURE_MAG_FILTER: 10240;
                        readonly TEXTURE_MIN_FILTER: 10241;
                        readonly TEXTURE_WRAP_S: 10242;
                        readonly TEXTURE_WRAP_T: 10243;
                        readonly TEXTURE_2D: 3553;
                        readonly TEXTURE: 5890;
                        readonly TEXTURE_CUBE_MAP: 34067;
                        readonly TEXTURE_BINDING_CUBE_MAP: 34068;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_X: 34069;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 34070;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 34071;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 34073;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074;
                        readonly MAX_CUBE_MAP_TEXTURE_SIZE: 34076;
                        readonly TEXTURE0: 33984;
                        readonly TEXTURE1: 33985;
                        readonly TEXTURE2: 33986;
                        readonly TEXTURE3: 33987;
                        readonly TEXTURE4: 33988;
                        readonly TEXTURE5: 33989;
                        readonly TEXTURE6: 33990;
                        readonly TEXTURE7: 33991;
                        readonly TEXTURE8: 33992;
                        readonly TEXTURE9: 33993;
                        readonly TEXTURE10: 33994;
                        readonly TEXTURE11: 33995;
                        readonly TEXTURE12: 33996;
                        readonly TEXTURE13: 33997;
                        readonly TEXTURE14: 33998;
                        readonly TEXTURE15: 33999;
                        readonly TEXTURE16: 34000;
                        readonly TEXTURE17: 34001;
                        readonly TEXTURE18: 34002;
                        readonly TEXTURE19: 34003;
                        readonly TEXTURE20: 34004;
                        readonly TEXTURE21: 34005;
                        readonly TEXTURE22: 34006;
                        readonly TEXTURE23: 34007;
                        readonly TEXTURE24: 34008;
                        readonly TEXTURE25: 34009;
                        readonly TEXTURE26: 34010;
                        readonly TEXTURE27: 34011;
                        readonly TEXTURE28: 34012;
                        readonly TEXTURE29: 34013;
                        readonly TEXTURE30: 34014;
                        readonly TEXTURE31: 34015;
                        readonly ACTIVE_TEXTURE: 34016;
                        readonly REPEAT: 10497;
                        readonly CLAMP_TO_EDGE: 33071;
                        readonly MIRRORED_REPEAT: 33648;
                        readonly FLOAT_VEC2: 35664;
                        readonly FLOAT_VEC3: 35665;
                        readonly FLOAT_VEC4: 35666;
                        readonly INT_VEC2: 35667;
                        readonly INT_VEC3: 35668;
                        readonly INT_VEC4: 35669;
                        readonly BOOL: 35670;
                        readonly BOOL_VEC2: 35671;
                        readonly BOOL_VEC3: 35672;
                        readonly BOOL_VEC4: 35673;
                        readonly FLOAT_MAT2: 35674;
                        readonly FLOAT_MAT3: 35675;
                        readonly FLOAT_MAT4: 35676;
                        readonly SAMPLER_2D: 35678;
                        readonly SAMPLER_CUBE: 35680;
                        readonly VERTEX_ATTRIB_ARRAY_ENABLED: 34338;
                        readonly VERTEX_ATTRIB_ARRAY_SIZE: 34339;
                        readonly VERTEX_ATTRIB_ARRAY_STRIDE: 34340;
                        readonly VERTEX_ATTRIB_ARRAY_TYPE: 34341;
                        readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922;
                        readonly VERTEX_ATTRIB_ARRAY_POINTER: 34373;
                        readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975;
                        readonly IMPLEMENTATION_COLOR_READ_TYPE: 35738;
                        readonly IMPLEMENTATION_COLOR_READ_FORMAT: 35739;
                        readonly COMPILE_STATUS: 35713;
                        readonly LOW_FLOAT: 36336;
                        readonly MEDIUM_FLOAT: 36337;
                        readonly HIGH_FLOAT: 36338;
                        readonly LOW_INT: 36339;
                        readonly MEDIUM_INT: 36340;
                        readonly HIGH_INT: 36341;
                        readonly FRAMEBUFFER: 36160;
                        readonly RENDERBUFFER: 36161;
                        readonly RGBA4: 32854;
                        readonly RGB5_A1: 32855;
                        readonly RGBA8: 32856;
                        readonly RGB565: 36194;
                        readonly DEPTH_COMPONENT16: 33189;
                        readonly STENCIL_INDEX8: 36168;
                        readonly DEPTH_STENCIL: 34041;
                        readonly RENDERBUFFER_WIDTH: 36162;
                        readonly RENDERBUFFER_HEIGHT: 36163;
                        readonly RENDERBUFFER_INTERNAL_FORMAT: 36164;
                        readonly RENDERBUFFER_RED_SIZE: 36176;
                        readonly RENDERBUFFER_GREEN_SIZE: 36177;
                        readonly RENDERBUFFER_BLUE_SIZE: 36178;
                        readonly RENDERBUFFER_ALPHA_SIZE: 36179;
                        readonly RENDERBUFFER_DEPTH_SIZE: 36180;
                        readonly RENDERBUFFER_STENCIL_SIZE: 36181;
                        readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048;
                        readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051;
                        readonly COLOR_ATTACHMENT0: 36064;
                        readonly DEPTH_ATTACHMENT: 36096;
                        readonly STENCIL_ATTACHMENT: 36128;
                        readonly DEPTH_STENCIL_ATTACHMENT: 33306;
                        readonly NONE: 0;
                        readonly FRAMEBUFFER_COMPLETE: 36053;
                        readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054;
                        readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055;
                        readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057;
                        readonly FRAMEBUFFER_UNSUPPORTED: 36061;
                        readonly FRAMEBUFFER_BINDING: 36006;
                        readonly RENDERBUFFER_BINDING: 36007;
                        readonly MAX_RENDERBUFFER_SIZE: 34024;
                        readonly INVALID_FRAMEBUFFER_OPERATION: 1286;
                        readonly UNPACK_FLIP_Y_WEBGL: 37440;
                        readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441;
                        readonly CONTEXT_LOST_WEBGL: 37442;
                        readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443;
                        readonly BROWSER_DEFAULT_WEBGL: 37444;
                    };
                    WebGLActiveInfo: {
                        prototype: WebGLActiveInfo;
                        new (): WebGLActiveInfo;
                    };
                    WebGLBuffer: {
                        prototype: WebGLBuffer;
                        new (): WebGLBuffer;
                    };
                    WebGLContextEvent: {
                        prototype: WebGLContextEvent;
                        new (type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;
                    };
                    WebGLFramebuffer: {
                        prototype: WebGLFramebuffer;
                        new (): WebGLFramebuffer;
                    };
                    WebGLProgram: {
                        prototype: WebGLProgram;
                        new (): WebGLProgram;
                    };
                    WebGLQuery: {
                        prototype: WebGLQuery;
                        new (): WebGLQuery;
                    };
                    WebGLRenderbuffer: {
                        prototype: WebGLRenderbuffer;
                        new (): WebGLRenderbuffer;
                    };
                    WebGLRenderingContext: {
                        prototype: WebGLRenderingContext;
                        new (): WebGLRenderingContext;
                        readonly DEPTH_BUFFER_BIT: 256;
                        readonly STENCIL_BUFFER_BIT: 1024;
                        readonly COLOR_BUFFER_BIT: 16384;
                        readonly POINTS: 0;
                        readonly LINES: 1;
                        readonly LINE_LOOP: 2;
                        readonly LINE_STRIP: 3;
                        readonly TRIANGLES: 4;
                        readonly TRIANGLE_STRIP: 5;
                        readonly TRIANGLE_FAN: 6;
                        readonly ZERO: 0;
                        readonly ONE: 1;
                        readonly SRC_COLOR: 768;
                        readonly ONE_MINUS_SRC_COLOR: 769;
                        readonly SRC_ALPHA: 770;
                        readonly ONE_MINUS_SRC_ALPHA: 771;
                        readonly DST_ALPHA: 772;
                        readonly ONE_MINUS_DST_ALPHA: 773;
                        readonly DST_COLOR: 774;
                        readonly ONE_MINUS_DST_COLOR: 775;
                        readonly SRC_ALPHA_SATURATE: 776;
                        readonly FUNC_ADD: 32774;
                        readonly BLEND_EQUATION: 32777;
                        readonly BLEND_EQUATION_RGB: 32777;
                        readonly BLEND_EQUATION_ALPHA: 34877;
                        readonly FUNC_SUBTRACT: 32778;
                        readonly FUNC_REVERSE_SUBTRACT: 32779;
                        readonly BLEND_DST_RGB: 32968;
                        readonly BLEND_SRC_RGB: 32969;
                        readonly BLEND_DST_ALPHA: 32970;
                        readonly BLEND_SRC_ALPHA: 32971;
                        readonly CONSTANT_COLOR: 32769;
                        readonly ONE_MINUS_CONSTANT_COLOR: 32770;
                        readonly CONSTANT_ALPHA: 32771;
                        readonly ONE_MINUS_CONSTANT_ALPHA: 32772;
                        readonly BLEND_COLOR: 32773;
                        readonly ARRAY_BUFFER: 34962;
                        readonly ELEMENT_ARRAY_BUFFER: 34963;
                        readonly ARRAY_BUFFER_BINDING: 34964;
                        readonly ELEMENT_ARRAY_BUFFER_BINDING: 34965;
                        readonly STREAM_DRAW: 35040;
                        readonly STATIC_DRAW: 35044;
                        readonly DYNAMIC_DRAW: 35048;
                        readonly BUFFER_SIZE: 34660;
                        readonly BUFFER_USAGE: 34661;
                        readonly CURRENT_VERTEX_ATTRIB: 34342;
                        readonly FRONT: 1028;
                        readonly BACK: 1029;
                        readonly FRONT_AND_BACK: 1032;
                        readonly CULL_FACE: 2884;
                        readonly BLEND: 3042;
                        readonly DITHER: 3024;
                        readonly STENCIL_TEST: 2960;
                        readonly DEPTH_TEST: 2929;
                        readonly SCISSOR_TEST: 3089;
                        readonly POLYGON_OFFSET_FILL: 32823;
                        readonly SAMPLE_ALPHA_TO_COVERAGE: 32926;
                        readonly SAMPLE_COVERAGE: 32928;
                        readonly NO_ERROR: 0;
                        readonly INVALID_ENUM: 1280;
                        readonly INVALID_VALUE: 1281;
                        readonly INVALID_OPERATION: 1282;
                        readonly OUT_OF_MEMORY: 1285;
                        readonly CW: 2304;
                        readonly CCW: 2305;
                        readonly LINE_WIDTH: 2849;
                        readonly ALIASED_POINT_SIZE_RANGE: 33901;
                        readonly ALIASED_LINE_WIDTH_RANGE: 33902;
                        readonly CULL_FACE_MODE: 2885;
                        readonly FRONT_FACE: 2886;
                        readonly DEPTH_RANGE: 2928;
                        readonly DEPTH_WRITEMASK: 2930;
                        readonly DEPTH_CLEAR_VALUE: 2931;
                        readonly DEPTH_FUNC: 2932;
                        readonly STENCIL_CLEAR_VALUE: 2961;
                        readonly STENCIL_FUNC: 2962;
                        readonly STENCIL_FAIL: 2964;
                        readonly STENCIL_PASS_DEPTH_FAIL: 2965;
                        readonly STENCIL_PASS_DEPTH_PASS: 2966;
                        readonly STENCIL_REF: 2967;
                        readonly STENCIL_VALUE_MASK: 2963;
                        readonly STENCIL_WRITEMASK: 2968;
                        readonly STENCIL_BACK_FUNC: 34816;
                        readonly STENCIL_BACK_FAIL: 34817;
                        readonly STENCIL_BACK_PASS_DEPTH_FAIL: 34818;
                        readonly STENCIL_BACK_PASS_DEPTH_PASS: 34819;
                        readonly STENCIL_BACK_REF: 36003;
                        readonly STENCIL_BACK_VALUE_MASK: 36004;
                        readonly STENCIL_BACK_WRITEMASK: 36005;
                        readonly VIEWPORT: 2978;
                        readonly SCISSOR_BOX: 3088;
                        readonly COLOR_CLEAR_VALUE: 3106;
                        readonly COLOR_WRITEMASK: 3107;
                        readonly UNPACK_ALIGNMENT: 3317;
                        readonly PACK_ALIGNMENT: 3333;
                        readonly MAX_TEXTURE_SIZE: 3379;
                        readonly MAX_VIEWPORT_DIMS: 3386;
                        readonly SUBPIXEL_BITS: 3408;
                        readonly RED_BITS: 3410;
                        readonly GREEN_BITS: 3411;
                        readonly BLUE_BITS: 3412;
                        readonly ALPHA_BITS: 3413;
                        readonly DEPTH_BITS: 3414;
                        readonly STENCIL_BITS: 3415;
                        readonly POLYGON_OFFSET_UNITS: 10752;
                        readonly POLYGON_OFFSET_FACTOR: 32824;
                        readonly TEXTURE_BINDING_2D: 32873;
                        readonly SAMPLE_BUFFERS: 32936;
                        readonly SAMPLES: 32937;
                        readonly SAMPLE_COVERAGE_VALUE: 32938;
                        readonly SAMPLE_COVERAGE_INVERT: 32939;
                        readonly COMPRESSED_TEXTURE_FORMATS: 34467;
                        readonly DONT_CARE: 4352;
                        readonly FASTEST: 4353;
                        readonly NICEST: 4354;
                        readonly GENERATE_MIPMAP_HINT: 33170;
                        readonly BYTE: 5120;
                        readonly UNSIGNED_BYTE: 5121;
                        readonly SHORT: 5122;
                        readonly UNSIGNED_SHORT: 5123;
                        readonly INT: 5124;
                        readonly UNSIGNED_INT: 5125;
                        readonly FLOAT: 5126;
                        readonly DEPTH_COMPONENT: 6402;
                        readonly ALPHA: 6406;
                        readonly RGB: 6407;
                        readonly RGBA: 6408;
                        readonly LUMINANCE: 6409;
                        readonly LUMINANCE_ALPHA: 6410;
                        readonly UNSIGNED_SHORT_4_4_4_4: 32819;
                        readonly UNSIGNED_SHORT_5_5_5_1: 32820;
                        readonly UNSIGNED_SHORT_5_6_5: 33635;
                        readonly FRAGMENT_SHADER: 35632;
                        readonly VERTEX_SHADER: 35633;
                        readonly MAX_VERTEX_ATTRIBS: 34921;
                        readonly MAX_VERTEX_UNIFORM_VECTORS: 36347;
                        readonly MAX_VARYING_VECTORS: 36348;
                        readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661;
                        readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660;
                        readonly MAX_TEXTURE_IMAGE_UNITS: 34930;
                        readonly MAX_FRAGMENT_UNIFORM_VECTORS: 36349;
                        readonly SHADER_TYPE: 35663;
                        readonly DELETE_STATUS: 35712;
                        readonly LINK_STATUS: 35714;
                        readonly VALIDATE_STATUS: 35715;
                        readonly ATTACHED_SHADERS: 35717;
                        readonly ACTIVE_UNIFORMS: 35718;
                        readonly ACTIVE_ATTRIBUTES: 35721;
                        readonly SHADING_LANGUAGE_VERSION: 35724;
                        readonly CURRENT_PROGRAM: 35725;
                        readonly NEVER: 512;
                        readonly LESS: 513;
                        readonly EQUAL: 514;
                        readonly LEQUAL: 515;
                        readonly GREATER: 516;
                        readonly NOTEQUAL: 517;
                        readonly GEQUAL: 518;
                        readonly ALWAYS: 519;
                        readonly KEEP: 7680;
                        readonly REPLACE: 7681;
                        readonly INCR: 7682;
                        readonly DECR: 7683;
                        readonly INVERT: 5386;
                        readonly INCR_WRAP: 34055;
                        readonly DECR_WRAP: 34056;
                        readonly VENDOR: 7936;
                        readonly RENDERER: 7937;
                        readonly VERSION: 7938;
                        readonly NEAREST: 9728;
                        readonly LINEAR: 9729;
                        readonly NEAREST_MIPMAP_NEAREST: 9984;
                        readonly LINEAR_MIPMAP_NEAREST: 9985;
                        readonly NEAREST_MIPMAP_LINEAR: 9986;
                        readonly LINEAR_MIPMAP_LINEAR: 9987;
                        readonly TEXTURE_MAG_FILTER: 10240;
                        readonly TEXTURE_MIN_FILTER: 10241;
                        readonly TEXTURE_WRAP_S: 10242;
                        readonly TEXTURE_WRAP_T: 10243;
                        readonly TEXTURE_2D: 3553;
                        readonly TEXTURE: 5890;
                        readonly TEXTURE_CUBE_MAP: 34067;
                        readonly TEXTURE_BINDING_CUBE_MAP: 34068;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_X: 34069;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 34070;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 34071;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072;
                        readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 34073;
                        readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074;
                        readonly MAX_CUBE_MAP_TEXTURE_SIZE: 34076;
                        readonly TEXTURE0: 33984;
                        readonly TEXTURE1: 33985;
                        readonly TEXTURE2: 33986;
                        readonly TEXTURE3: 33987;
                        readonly TEXTURE4: 33988;
                        readonly TEXTURE5: 33989;
                        readonly TEXTURE6: 33990;
                        readonly TEXTURE7: 33991;
                        readonly TEXTURE8: 33992;
                        readonly TEXTURE9: 33993;
                        readonly TEXTURE10: 33994;
                        readonly TEXTURE11: 33995;
                        readonly TEXTURE12: 33996;
                        readonly TEXTURE13: 33997;
                        readonly TEXTURE14: 33998;
                        readonly TEXTURE15: 33999;
                        readonly TEXTURE16: 34000;
                        readonly TEXTURE17: 34001;
                        readonly TEXTURE18: 34002;
                        readonly TEXTURE19: 34003;
                        readonly TEXTURE20: 34004;
                        readonly TEXTURE21: 34005;
                        readonly TEXTURE22: 34006;
                        readonly TEXTURE23: 34007;
                        readonly TEXTURE24: 34008;
                        readonly TEXTURE25: 34009;
                        readonly TEXTURE26: 34010;
                        readonly TEXTURE27: 34011;
                        readonly TEXTURE28: 34012;
                        readonly TEXTURE29: 34013;
                        readonly TEXTURE30: 34014;
                        readonly TEXTURE31: 34015;
                        readonly ACTIVE_TEXTURE: 34016;
                        readonly REPEAT: 10497;
                        readonly CLAMP_TO_EDGE: 33071;
                        readonly MIRRORED_REPEAT: 33648;
                        readonly FLOAT_VEC2: 35664;
                        readonly FLOAT_VEC3: 35665;
                        readonly FLOAT_VEC4: 35666;
                        readonly INT_VEC2: 35667;
                        readonly INT_VEC3: 35668;
                        readonly INT_VEC4: 35669;
                        readonly BOOL: 35670;
                        readonly BOOL_VEC2: 35671;
                        readonly BOOL_VEC3: 35672;
                        readonly BOOL_VEC4: 35673;
                        readonly FLOAT_MAT2: 35674;
                        readonly FLOAT_MAT3: 35675;
                        readonly FLOAT_MAT4: 35676;
                        readonly SAMPLER_2D: 35678;
                        readonly SAMPLER_CUBE: 35680;
                        readonly VERTEX_ATTRIB_ARRAY_ENABLED: 34338;
                        readonly VERTEX_ATTRIB_ARRAY_SIZE: 34339;
                        readonly VERTEX_ATTRIB_ARRAY_STRIDE: 34340;
                        readonly VERTEX_ATTRIB_ARRAY_TYPE: 34341;
                        readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922;
                        readonly VERTEX_ATTRIB_ARRAY_POINTER: 34373;
                        readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975;
                        readonly IMPLEMENTATION_COLOR_READ_TYPE: 35738;
                        readonly IMPLEMENTATION_COLOR_READ_FORMAT: 35739;
                        readonly COMPILE_STATUS: 35713;
                        readonly LOW_FLOAT: 36336;
                        readonly MEDIUM_FLOAT: 36337;
                        readonly HIGH_FLOAT: 36338;
                        readonly LOW_INT: 36339;
                        readonly MEDIUM_INT: 36340;
                        readonly HIGH_INT: 36341;
                        readonly FRAMEBUFFER: 36160;
                        readonly RENDERBUFFER: 36161;
                        readonly RGBA4: 32854;
                        readonly RGB5_A1: 32855;
                        readonly RGBA8: 32856;
                        readonly RGB565: 36194;
                        readonly DEPTH_COMPONENT16: 33189;
                        readonly STENCIL_INDEX8: 36168;
                        readonly DEPTH_STENCIL: 34041;
                        readonly RENDERBUFFER_WIDTH: 36162;
                        readonly RENDERBUFFER_HEIGHT: 36163;
                        readonly RENDERBUFFER_INTERNAL_FORMAT: 36164;
                        readonly RENDERBUFFER_RED_SIZE: 36176;
                        readonly RENDERBUFFER_GREEN_SIZE: 36177;
                        readonly RENDERBUFFER_BLUE_SIZE: 36178;
                        readonly RENDERBUFFER_ALPHA_SIZE: 36179;
                        readonly RENDERBUFFER_DEPTH_SIZE: 36180;
                        readonly RENDERBUFFER_STENCIL_SIZE: 36181;
                        readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048;
                        readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050;
                        readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051;
                        readonly COLOR_ATTACHMENT0: 36064;
                        readonly DEPTH_ATTACHMENT: 36096;
                        readonly STENCIL_ATTACHMENT: 36128;
                        readonly DEPTH_STENCIL_ATTACHMENT: 33306;
                        readonly NONE: 0;
                        readonly FRAMEBUFFER_COMPLETE: 36053;
                        readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054;
                        readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055;
                        readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057;
                        readonly FRAMEBUFFER_UNSUPPORTED: 36061;
                        readonly FRAMEBUFFER_BINDING: 36006;
                        readonly RENDERBUFFER_BINDING: 36007;
                        readonly MAX_RENDERBUFFER_SIZE: 34024;
                        readonly INVALID_FRAMEBUFFER_OPERATION: 1286;
                        readonly UNPACK_FLIP_Y_WEBGL: 37440;
                        readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441;
                        readonly CONTEXT_LOST_WEBGL: 37442;
                        readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443;
                        readonly BROWSER_DEFAULT_WEBGL: 37444;
                    };
                    WebGLSampler: {
                        prototype: WebGLSampler;
                        new (): WebGLSampler;
                    };
                    WebGLShader: {
                        prototype: WebGLShader;
                        new (): WebGLShader;
                    };
                    WebGLShaderPrecisionFormat: {
                        prototype: WebGLShaderPrecisionFormat;
                        new (): WebGLShaderPrecisionFormat;
                    };
                    WebGLSync: {
                        prototype: WebGLSync;
                        new (): WebGLSync;
                    };
                    WebGLTexture: {
                        prototype: WebGLTexture;
                        new (): WebGLTexture;
                    };
                    WebGLTransformFeedback: {
                        prototype: WebGLTransformFeedback;
                        new (): WebGLTransformFeedback;
                    };
                    WebGLUniformLocation: {
                        prototype: WebGLUniformLocation;
                        new (): WebGLUniformLocation;
                    };
                    WebGLVertexArrayObject: {
                        prototype: WebGLVertexArrayObject;
                        new (): WebGLVertexArrayObject;
                    };
                    WebSocket: {
                        prototype: WebSocket;
                        new (url: string | URL, protocols?: string | string[]): WebSocket;
                        readonly CONNECTING: 0;
                        readonly OPEN: 1;
                        readonly CLOSING: 2;
                        readonly CLOSED: 3;
                    };
                    WebTransport: {
                        prototype: WebTransport;
                        new (url: string | URL, options?: WebTransportOptions): WebTransport;
                    };
                    WebTransportBidirectionalStream: {
                        prototype: WebTransportBidirectionalStream;
                        new (): WebTransportBidirectionalStream;
                    };
                    WebTransportDatagramDuplexStream: {
                        prototype: WebTransportDatagramDuplexStream;
                        new (): WebTransportDatagramDuplexStream;
                    };
                    WebTransportError: {
                        prototype: WebTransportError;
                        new (message?: string, options?: WebTransportErrorOptions): WebTransportError;
                    };
                    WheelEvent: {
                        prototype: WheelEvent;
                        new (type: string, eventInitDict?: WheelEventInit): WheelEvent;
                        readonly DOM_DELTA_PIXEL: 0;
                        readonly DOM_DELTA_LINE: 1;
                        readonly DOM_DELTA_PAGE: 2;
                    };
                    Window: {
                        prototype: Window;
                        new (): Window;
                    };
                    Worker: {
                        prototype: Worker;
                        new (scriptURL: string | URL, options?: WorkerOptions): Worker;
                    };
                    Worklet: {
                        prototype: Worklet;
                        new (): Worklet;
                    };
                    WritableStream: {
                        prototype: WritableStream;
                        new <W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
                    };
                    WritableStreamDefaultController: {
                        prototype: WritableStreamDefaultController;
                        new (): WritableStreamDefaultController;
                    };
                    WritableStreamDefaultWriter: {
                        prototype: WritableStreamDefaultWriter;
                        new <W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
                    };
                    XMLDocument: {
                        prototype: XMLDocument;
                        new (): XMLDocument;
                    };
                    XMLHttpRequest: {
                        prototype: XMLHttpRequest;
                        new (): XMLHttpRequest;
                        readonly UNSENT: 0;
                        readonly OPENED: 1;
                        readonly HEADERS_RECEIVED: 2;
                        readonly LOADING: 3;
                        readonly DONE: 4;
                    };
                    XMLHttpRequestEventTarget: {
                        prototype: XMLHttpRequestEventTarget;
                        new (): XMLHttpRequestEventTarget;
                    };
                    XMLHttpRequestUpload: {
                        prototype: XMLHttpRequestUpload;
                        new (): XMLHttpRequestUpload;
                    };
                    XMLSerializer: {
                        prototype: XMLSerializer;
                        new (): XMLSerializer;
                    };
                    XPathEvaluator: {
                        prototype: XPathEvaluator;
                        new (): XPathEvaluator;
                    };
                    XPathExpression: {
                        prototype: XPathExpression;
                        new (): XPathExpression;
                    };
                    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;
                    };
                    XSLTProcessor: {
                        prototype: XSLTProcessor;
                        new (): XSLTProcessor;
                    };
                    console: {
                        assert: (condition?: boolean, ...data: any[]) => void;
                        clear: () => void;
                        count: (label?: string) => void;
                        countReset: (label?: string) => void;
                        debug: (...data: any[]) => void;
                        dir: (item?: any, options?: any) => void;
                        dirxml: (...data: any[]) => void;
                        error: (...data: any[]) => void;
                        group: (...data: any[]) => void;
                        groupCollapsed: (...data: any[]) => void;
                        groupEnd: () => void;
                        info: (...data: any[]) => void;
                        log: (...data: any[]) => void;
                        table: (tabularData?: any, properties?: string[]) => void;
                        time: (label?: string) => void;
                        timeEnd: (label?: string) => void;
                        timeLog: (label?: string, ...data: any[]) => void;
                        timeStamp: (label?: string) => void;
                        trace: (...data: any[]) => void;
                        warn: (...data: any[]) => void;
                    };
                    CSS: {
                        Hz: typeof CSS.Hz;
                        Q: typeof CSS.Q;
                        cap: typeof CSS.cap;
                        ch: typeof CSS.ch;
                        cm: typeof CSS.cm;
                        cqb: typeof CSS.cqb;
                        cqh: typeof CSS.cqh;
                        cqi: typeof CSS.cqi;
                        cqmax: typeof CSS.cqmax;
                        cqmin: typeof CSS.cqmin;
                        cqw: typeof CSS.cqw;
                        deg: typeof CSS.deg;
                        dpcm: typeof CSS.dpcm;
                        dpi: typeof CSS.dpi;
                        dppx: typeof CSS.dppx;
                        dvb: typeof CSS.dvb;
                        dvh: typeof CSS.dvh;
                        dvi: typeof CSS.dvi;
                        dvmax: typeof CSS.dvmax;
                        dvmin: typeof CSS.dvmin;
                        dvw: typeof CSS.dvw;
                        em: typeof CSS.em;
                        escape: typeof CSS.escape;
                        ex: typeof CSS.ex;
                        fr: typeof CSS.fr;
                        grad: typeof CSS.grad;
                        ic: typeof CSS.ic;
                        kHz: typeof CSS.kHz;
                        lh: typeof CSS.lh;
                        lvb: typeof CSS.lvb;
                        lvh: typeof CSS.lvh;
                        lvi: typeof CSS.lvi;
                        lvmax: typeof CSS.lvmax;
                        lvmin: typeof CSS.lvmin;
                        lvw: typeof CSS.lvw;
                        mm: typeof CSS.mm;
                        ms: typeof CSS.ms;
                        number: typeof CSS.number;
                        pc: typeof CSS.pc;
                        percent: typeof CSS.percent;
                        pt: typeof CSS.pt;
                        px: typeof CSS.px;
                        rad: typeof CSS.rad;
                        rcap: typeof CSS.rcap;
                        rch: typeof CSS.rch;
                        registerProperty: typeof CSS.registerProperty;
                        rem: typeof CSS.rem;
                        rex: typeof CSS.rex;
                        ric: typeof CSS.ric;
                        rlh: typeof CSS.rlh;
                        s: typeof CSS.s;
                        supports: typeof CSS.supports;
                        svb: typeof CSS.svb;
                        svh: typeof CSS.svh;
                        svi: typeof CSS.svi;
                        svmax: typeof CSS.svmax;
                        svmin: typeof CSS.svmin;
                        svw: typeof CSS.svw;
                        turn: typeof CSS.turn;
                        vb: typeof CSS.vb;
                        vh: typeof CSS.vh;
                        vi: typeof CSS.vi;
                        vmax: typeof CSS.vmax;
                        vmin: typeof CSS.vmin;
                        vw: typeof CSS.vw;
                        highlights: {
                            forEach: (callbackfn: (value: Highlight, key: string, parent: HighlightRegistry) => void, thisArg?: any) => void;
                        };
                    };
                    WebAssembly: {
                        compile: typeof WebAssembly.compile;
                        compileStreaming: typeof WebAssembly.compileStreaming;
                        instantiate: typeof WebAssembly.instantiate;
                        instantiateStreaming: typeof WebAssembly.instantiateStreaming;
                        validate: typeof WebAssembly.validate;
                        CompileError: {
                            prototype: WebAssembly.CompileError;
                            new (message?: string): WebAssembly.CompileError;
                            (message?: string): WebAssembly.CompileError;
                        };
                        Global: {
                            prototype: WebAssembly.Global;
                            new <T extends WebAssembly.ValueType = WebAssembly.ValueType>(descriptor: WebAssembly.GlobalDescriptor<T>, v?: WebAssembly.ValueTypeMap[T]): WebAssembly.Global<T>;
                        };
                        Instance: {
                            prototype: WebAssembly.Instance;
                            new (module: WebAssembly.Module, importObject?: WebAssembly.Imports): WebAssembly.Instance;
                        };
                        LinkError: {
                            prototype: WebAssembly.LinkError;
                            new (message?: string): WebAssembly.LinkError;
                            (message?: string): WebAssembly.LinkError;
                        };
                        Memory: {
                            prototype: WebAssembly.Memory;
                            new (descriptor: WebAssembly.MemoryDescriptor): WebAssembly.Memory;
                        };
                        Module: {
                            prototype: WebAssembly.Module;
                            new (bytes: BufferSource): WebAssembly.Module;
                            customSections(moduleObject: WebAssembly.Module, sectionName: string): ArrayBuffer[];
                            exports(moduleObject: WebAssembly.Module): WebAssembly.ModuleExportDescriptor[];
                            imports(moduleObject: WebAssembly.Module): WebAssembly.ModuleImportDescriptor[];
                        };
                        RuntimeError: {
                            prototype: WebAssembly.RuntimeError;
                            new (message?: string): WebAssembly.RuntimeError;
                            (message?: string): WebAssembly.RuntimeError;
                        };
                        Table: {
                            prototype: WebAssembly.Table;
                            new (descriptor: WebAssembly.TableDescriptor, value?: any): WebAssembly.Table;
                        };
                    };
                    Audio: {
                        new (src?: string): HTMLAudioElement;
                    };
                    Image: {
                        new (width?: number, height?: number): HTMLImageElement;
                    };
                    Option: {
                        new (text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;
                    };
                    Map: MapConstructor;
                    WeakMap: WeakMapConstructor;
                    Set: SetConstructor;
                    WeakSet: WeakSetConstructor;
                    Iterator: IteratorConstructor;
                    Proxy: ProxyConstructor;
                    Reflect: {
                        apply: typeof Reflect.apply;
                        construct: typeof Reflect.construct;
                        defineProperty: typeof Reflect.defineProperty;
                        deleteProperty: typeof Reflect.deleteProperty;
                        get: typeof Reflect.get;
                        getOwnPropertyDescriptor: typeof Reflect.getOwnPropertyDescriptor;
                        getPrototypeOf: typeof Reflect.getPrototypeOf;
                        has: typeof Reflect.has;
                        isExtensible: typeof Reflect.isExtensible;
                        ownKeys: typeof Reflect.ownKeys;
                        preventExtensions: typeof Reflect.preventExtensions;
                        set: typeof Reflect.set;
                        setPrototypeOf: typeof Reflect.setPrototypeOf;
                    };
                    SharedArrayBuffer: SharedArrayBufferConstructor;
                    Atomics: {
                        add: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        and: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        compareExchange: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, expectedValue: number, replacementValue: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, expectedValue: bigint, replacementValue: bigint): bigint;
                        };
                        exchange: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        isLockFree: (size: number) => boolean;
                        load: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number): bigint;
                        };
                        or: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        store: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        sub: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        wait: {
                            (typedArray: Int32Array<ArrayBufferLike>, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out";
                            (typedArray: BigInt64Array<ArrayBufferLike>, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out";
                        };
                        notify: {
                            (typedArray: Int32Array<ArrayBufferLike>, index: number, count?: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike>, index: number, count?: number): number;
                        };
                        xor: {
                            (typedArray: Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>, index: number, value: number): number;
                            (typedArray: BigInt64Array<ArrayBufferLike> | BigUint64Array<ArrayBufferLike>, index: number, value: bigint): bigint;
                        };
                        waitAsync: {
                            (typedArray: Int32Array, index: number, value: number, timeout?: number): {
                                async: false;
                                value: "not-equal" | "timed-out";
                            } | {
                                async: true;
                                value: Promise<"ok" | "timed-out">;
                            };
                            (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): {
                                async: false;
                                value: "not-equal" | "timed-out";
                            } | {
                                async: true;
                                value: Promise<"ok" | "timed-out">;
                            };
                        };
                        readonly [Symbol.toStringTag]: "Atomics";
                    };
                    BigInt: BigIntConstructor;
                    BigInt64Array: BigInt64ArrayConstructor;
                    BigUint64Array: BigUint64ArrayConstructor;
                    AggregateError: AggregateErrorConstructor;
                    WeakRef: WeakRefConstructor;
                    FinalizationRegistry: FinalizationRegistryConstructor;
                    SuppressedError: SuppressedErrorConstructor;
                    DisposableStack: DisposableStackConstructor;
                    AsyncDisposableStack: AsyncDisposableStackConstructor;
                    Float16Array: Float16ArrayConstructor;
                    unsafeWindow: /*elided*/ any;
                    undefined: undefined;
                };
                alert: (message?: any) => void;
                blur: () => void;
                cancelIdleCallback: (handle: number) => void;
                captureEvents: () => void;
                close: () => void;
                confirm: (message?: string) => boolean;
                focus: () => void;
                getComputedStyle: (elt: Element, pseudoElt?: string | null) => CSSStyleDeclaration;
                getSelection: () => Selection | null;
                matchMedia: (query: string) => MediaQueryList;
                moveBy: (x: number, y: number) => void;
                moveTo: (x: number, y: number) => void;
                open: (url?: string | URL, target?: string, features?: string) => WindowProxy | null;
                postMessage: {
                    (message: any, targetOrigin: string, transfer?: Transferable[]): void;
                    (message: any, options?: WindowPostMessageOptions): void;
                };
                print: () => void;
                prompt: (message?: string, _default?: string) => string | null;
                releaseEvents: () => void;
                requestIdleCallback: (callback: IdleRequestCallback, options?: IdleRequestOptions) => number;
                resizeBy: (x: number, y: number) => void;
                resizeTo: (width: number, height: number) => void;
                scroll: {
                    (options?: ScrollToOptions): void;
                    (x: number, y: number): void;
                };
                scrollBy: {
                    (options?: ScrollToOptions): void;
                    (x: number, y: number): void;
                };
                scrollTo: {
                    (options?: ScrollToOptions): void;
                    (x: number, y: number): void;
                };
                stop: () => void;
                addEventListener: {
                    <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                    (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;
                    (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                };
                dispatchEvent: (event: Event) => boolean;
                cancelAnimationFrame: (handle: number) => void;
                requestAnimationFrame: (callback: FrameRequestCallback) => number;
                onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
                onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
                onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
                onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
                onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
                onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
                onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
                oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
                oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
                ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
                ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
                ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
                ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
                ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
                ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
                ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
                ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onerror: OnErrorEventHandler;
                onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
                onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
                ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
                onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
                onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
                onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
                onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
                onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
                onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
                onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
                onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
                onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
                onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                ontouchcancel: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;
                ontouchend: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;
                ontouchmove: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;
                ontouchstart: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;
                ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
                ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
                ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
                ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
                onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
                onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
                onafterprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
                onbeforeprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
                onbeforeunload: ((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) | null;
                ongamepadconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;
                ongamepaddisconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;
                onhashchange: ((this: WindowEventHandlers, ev: HashChangeEvent) => any) | null;
                onlanguagechange: ((this: WindowEventHandlers, ev: Event) => any) | null;
                onmessage: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;
                onmessageerror: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;
                onoffline: ((this: WindowEventHandlers, ev: Event) => any) | null;
                ononline: ((this: WindowEventHandlers, ev: Event) => any) | null;
                onpagehide: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;
                onpagereveal: ((this: WindowEventHandlers, ev: Event) => any) | null;
                onpageshow: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;
                onpageswap: ((this: WindowEventHandlers, ev: Event) => any) | null;
                onpopstate: ((this: WindowEventHandlers, ev: PopStateEvent) => any) | null;
                onrejectionhandled: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
                onstorage: ((this: WindowEventHandlers, ev: StorageEvent) => any) | null;
                onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
                onunload: ((this: WindowEventHandlers, ev: Event) => any) | null;
                readonly localStorage: {
                    [x: string]: any;
                    readonly length: number;
                    clear: () => void;
                    getItem: (key: string) => string | null;
                    key: (index: number) => string | null;
                    removeItem: (key: string) => void;
                    setItem: (key: string, value: string) => void;
                };
                readonly caches: {
                    delete: (cacheName: string) => Promise<boolean>;
                    has: (cacheName: string) => Promise<boolean>;
                    keys: () => Promise<string[]>;
                    match: (request: RequestInfo | URL, options?: MultiCacheQueryOptions) => Promise<Response | undefined>;
                    open: (cacheName: string) => Promise<Cache>;
                };
                readonly crossOriginIsolated: boolean;
                readonly crypto: {
                    readonly subtle: {
                        decrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                        deriveBits: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length?: number | null) => Promise<ArrayBuffer>;
                        deriveKey: (algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                        digest: (algorithm: AlgorithmIdentifier, data: BufferSource) => Promise<ArrayBuffer>;
                        encrypt: (algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                        exportKey: {
                            (format: "jwk", key: CryptoKey): Promise<JsonWebKey>;
                            (format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;
                            (format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer | JsonWebKey>;
                        };
                        generateKey: {
                            (algorithm: "Ed25519" | {
                                name: "Ed25519";
                            }, extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;
                            (algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
                            (algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                            (algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;
                        };
                        importKey: {
                            (format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
                            (format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
                        };
                        sign: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource) => Promise<ArrayBuffer>;
                        unwrapKey: (format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]) => Promise<CryptoKey>;
                        verify: (algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource) => Promise<boolean>;
                        wrapKey: (format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams) => Promise<ArrayBuffer>;
                    };
                    getRandomValues: <T extends ArrayBufferView | null>(array: T) => T;
                    randomUUID: () => `${string}-${string}-${string}-${string}-${string}`;
                };
                readonly indexedDB: {
                    cmp: (first: any, second: any) => number;
                    databases: () => Promise<IDBDatabaseInfo[]>;
                    deleteDatabase: (name: string) => IDBOpenDBRequest;
                    open: (name: string, version?: number) => IDBOpenDBRequest;
                };
                readonly isSecureContext: boolean;
                readonly origin: string;
                readonly performance: {
                    readonly eventCounts: {
                        forEach: (callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any) => void;
                    };
                    readonly navigation: {
                        readonly redirectCount: number;
                        readonly type: number;
                        toJSON: () => any;
                        readonly TYPE_NAVIGATE: 0;
                        readonly TYPE_RELOAD: 1;
                        readonly TYPE_BACK_FORWARD: 2;
                        readonly TYPE_RESERVED: 255;
                    };
                    onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;
                    readonly timeOrigin: DOMHighResTimeStamp;
                    readonly timing: {
                        readonly connectEnd: number;
                        readonly connectStart: number;
                        readonly domComplete: number;
                        readonly domContentLoadedEventEnd: number;
                        readonly domContentLoadedEventStart: number;
                        readonly domInteractive: number;
                        readonly domLoading: number;
                        readonly domainLookupEnd: number;
                        readonly domainLookupStart: number;
                        readonly fetchStart: number;
                        readonly loadEventEnd: number;
                        readonly loadEventStart: number;
                        readonly navigationStart: number;
                        readonly redirectEnd: number;
                        readonly redirectStart: number;
                        readonly requestStart: number;
                        readonly responseEnd: number;
                        readonly responseStart: number;
                        readonly secureConnectionStart: number;
                        readonly unloadEventEnd: number;
                        readonly unloadEventStart: number;
                        toJSON: () => any;
                    };
                    clearMarks: (markName?: string) => void;
                    clearMeasures: (measureName?: string) => void;
                    clearResourceTimings: () => void;
                    getEntries: () => PerformanceEntryList;
                    getEntriesByName: (name: string, type?: string) => PerformanceEntryList;
                    getEntriesByType: (type: string) => PerformanceEntryList;
                    mark: (markName: string, markOptions?: PerformanceMarkOptions) => PerformanceMark;
                    measure: (measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string) => PerformanceMeasure;
                    now: () => DOMHighResTimeStamp;
                    setResourceTimingBufferSize: (maxSize: number) => void;
                    toJSON: () => any;
                    addEventListener: {
                        <K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
                        (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;
                        (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
                    };
                    dispatchEvent: (event: Event) => boolean;
                };
                atob: (data: string) => string;
                btoa: (data: string) => string;
                clearInterval: (id: number | undefined) => void;
                clearTimeout: (id: number | undefined) => void;
                createImageBitmap: {
                    (image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;
                    (image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
                };
                fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
                queueMicrotask: (callback: VoidFunction) => void;
                reportError: (e: any) => void;
                setInterval: (handler: TimerHandler, timeout?: number, ...arguments: any[]) => number;
                setTimeout: (handler: TimerHandler, timeout?: number, ...arguments: any[]) => number;
                structuredClone: <T = any>(value: T, options?: StructuredSerializeOptions) => T;
                readonly sessionStorage: {
                    [x: string]: any;
                    readonly length: number;
                    clear: () => void;
                    getItem: (key: string) => string | null;
                    key: (index: number) => string | null;
                    removeItem: (key: string) => void;
                    setItem: (key: string, value: string) => void;
                };
            };
            targetSelector: string | null;
            data: {
                icon: import("./types/icon").PopsIconType | string;
                iconIsLoading: boolean;
                text: string | (() => string);
                callback: (clickEvent: PointerEvent, contextMenuEvent: PointerEvent, liElement: HTMLLIElement, menuListenerRootNode: HTMLElement) => boolean | void | Promise<boolean | void>;
                item: /*elided*/ any[] | null;
            }[];
            chileMenuLeftOrRightDistance: number;
            childMenuTopOrBottomDistance: number;
            className: string;
            isAnimation: boolean;
            preventDefault: boolean;
            useShadowRoot: boolean;
            only: boolean;
            zIndex: number | (() => number);
            style: string | null;
            beforeAppendToPageCallBack: ($shadowRoot: ShadowRoot | HTMLElement, $shadowContainer: HTMLDivElement) => void;
        };
        removeWindowCheckClickListener: () => void;
        addWindowCheckClickListener: () => void;
        removeContextMenuEvent: (target: HTMLElement | typeof globalThis | Window, selector?: string) => void;
        addContextMenuEvent: (target: PopsRightClickMenuDetails["target"], selector?: string) => void;
    };
    /**
     * 搜索建议
     * @param details 配置
     */
    searchSuggestion: <T = any>(details: PopsSearchSuggestionDetails<T>) => {
        selfDocument: Document | ShadowRoot | (Document | ShadowRoot)[];
        $el: {
            root: HTMLElement;
            $hintULContainer: HTMLUListElement;
            $dynamicCSS: HTMLStyleElement;
        };
        $data: {
            isEmpty: boolean;
        };
        init(parentElement?: HTMLElement): void;
        initEl(): void;
        getSearchSelectElement(): HTMLDivElement;
        getDynamicCSS(): string;
        getSearchItemLiElement(data: any, index: number): HTMLLIElement;
        getItemDataValue(data: any): any;
        setSearchItemClickEvent(liElement: HTMLLIElement): void;
        setSearchItemSelectEvent(liElement: HTMLLIElement): void;
        setInputChangeEvent(option?: AddEventListenerOptions): void;
        removeInputChangeEvent(option?: AddEventListenerOptions): void;
        showEvent(): void;
        setShowEvent(option?: AddEventListenerOptions): void;
        removeShowEvent(option?: AddEventListenerOptions): void;
        hideEvent(event: PointerEvent | MouseEvent): void;
        setHideEvent(option?: AddEventListenerOptions): void;
        removeHideEvent(option?: AddEventListenerOptions): void;
        setAllEvent(option?: AddEventListenerOptions): void;
        removeAllEvent(option?: AddEventListenerOptions): void;
        getDeleteIconHTML(size?: number, fill?: string): string;
        setPromptsInSearch(): void;
        removePromptsInSearch(): void;
        clearAllSearchItemLi(): void;
        changeHintULElementPosition(target?: HTMLElement): void;
        changeHintULElementWidth(target?: HTMLElement): void;
        updateDynamicCSS(): void;
        update(data?: any[]): void;
        clear(): void;
        hide(): void;
        show(): void;
    };
}
declare const pops: Pops;
export { pops };
