ssap_app/node_modules/react-native/flow/dom.js.flow

6290 lines
188 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
* @format
*/
// Adapted from https://github.com/flow-typed/flow-typed/blob/main/definitions/environments/dom/flow_v0.261.x-/dom.js
/* Files */
declare class Blob {
constructor(
blobParts?: Array<any>,
options?: {
type?: string,
endings?: string,
...
},
): void;
isClosed: boolean;
size: number;
type: string;
close(): void;
slice(start?: number, end?: number, contentType?: string): Blob;
arrayBuffer(): Promise<ArrayBuffer>;
text(): Promise<string>;
stream(): ReadableStream;
}
declare class FileReader extends EventTarget {
+EMPTY: 0;
+LOADING: 1;
+DONE: 2;
+error: null | DOMError;
+readyState: 0 | 1 | 2;
+result: null | string | ArrayBuffer;
abort(): void;
onabort: null | ((ev: ProgressEvent) => any);
onerror: null | ((ev: ProgressEvent) => any);
onload: null | ((ev: ProgressEvent) => any);
onloadend: null | ((ev: ProgressEvent) => any);
onloadstart: null | ((ev: ProgressEvent) => any);
onprogress: null | ((ev: ProgressEvent) => any);
readAsArrayBuffer(blob: Blob): void;
readAsBinaryString(blob: Blob): void;
readAsDataURL(blob: Blob): void;
readAsText(blob: Blob, encoding?: string): void;
}
declare type FilePropertyBag = {
type?: string,
lastModified?: number,
...
};
declare class File extends Blob {
constructor(
fileBits: $ReadOnlyArray<string | BufferDataSource | Blob>,
filename: string,
options?: FilePropertyBag,
): void;
lastModified: number;
name: string;
}
declare class FileList {
@@iterator(): Iterator<File>;
length: number;
item(index: number): File;
[index: number]: File;
}
/* DataTransfer */
declare class DataTransfer {
clearData(format?: string): void;
getData(format: string): string;
setData(format: string, data: string): void;
setDragImage(image: Element, x: number, y: number): void;
dropEffect: string;
effectAllowed: string;
files: FileList; // readonly
items: DataTransferItemList; // readonly
types: Array<string>; // readonly
}
declare class DataTransferItemList {
@@iterator(): Iterator<DataTransferItem>;
length: number; // readonly
[index: number]: DataTransferItem;
add(data: string, type: string): ?DataTransferItem;
add(data: File): ?DataTransferItem;
remove(index: number): void;
clear(): void;
}
// https://wicg.github.io/file-system-access/#drag-and-drop
declare class DataTransferItem {
kind: string; // readonly
type: string; // readonly
getAsString(_callback: ?(data: string) => mixed): void;
getAsFile(): ?File;
/*
* This is not supported by all browsers, please have a fallback plan for it.
* For more information, please checkout
* https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem/webkitGetAsEntry
*/
webkitGetAsEntry(): void | (() => any);
}
/* DOM */
declare type DOMStringMap = {[key: string]: string, ...};
declare class DOMStringList {
@@iterator(): Iterator<string>;
+[key: number]: string;
+length: number;
item(number): string | null;
contains(string): boolean;
}
declare class DOMError {
name: string;
}
declare type ElementDefinitionOptions = {extends?: string, ...};
declare interface CustomElementRegistry {
define(
name: string,
ctor: Class<Element>,
options?: ElementDefinitionOptions,
): void;
get(name: string): any;
whenDefined(name: string): Promise<void>;
}
declare interface ShadowRoot extends DocumentFragment {
+delegatesFocus: boolean;
+host: Element;
// flowlint unsafe-getters-setters:off
get innerHTML(): string;
set innerHTML(value: string | TrustedHTML): void;
// flowlint unsafe-getters-setters:error
+mode: ShadowRootMode;
// From DocumentOrShadowRoot Mixin.
+styleSheets: StyleSheetList;
adoptedStyleSheets: Array<CSSStyleSheet>;
}
declare type ShadowRootMode = 'open' | 'closed';
declare type ShadowRootInit = {
delegatesFocus?: boolean,
mode: ShadowRootMode,
...
};
declare type ScrollToOptions = {
top?: number,
left?: number,
behavior?: 'auto' | 'smooth',
...
};
type EventHandler = (event: Event) => mixed;
type EventListener = {handleEvent: EventHandler, ...} | EventHandler;
type MouseEventHandler = (event: MouseEvent) => mixed;
type MouseEventListener =
| {handleEvent: MouseEventHandler, ...}
| MouseEventHandler;
type FocusEventHandler = (event: FocusEvent) => mixed;
type FocusEventListener =
| {handleEvent: FocusEventHandler, ...}
| FocusEventHandler;
type KeyboardEventHandler = (event: KeyboardEvent) => mixed;
type KeyboardEventListener =
| {handleEvent: KeyboardEventHandler, ...}
| KeyboardEventHandler;
type InputEventHandler = (event: InputEvent) => mixed;
type InputEventListener =
| {handleEvent: InputEventHandler, ...}
| InputEventHandler;
type TouchEventHandler = (event: TouchEvent) => mixed;
type TouchEventListener =
| {handleEvent: TouchEventHandler, ...}
| TouchEventHandler;
type WheelEventHandler = (event: WheelEvent) => mixed;
type WheelEventListener =
| {handleEvent: WheelEventHandler, ...}
| WheelEventHandler;
type AbortProgressEventHandler = (event: ProgressEvent) => mixed;
type AbortProgressEventListener =
| {handleEvent: AbortProgressEventHandler, ...}
| AbortProgressEventHandler;
type ProgressEventHandler = (event: ProgressEvent) => mixed;
type ProgressEventListener =
| {handleEvent: ProgressEventHandler, ...}
| ProgressEventHandler;
type DragEventHandler = (event: DragEvent) => mixed;
type DragEventListener =
| {handleEvent: DragEventHandler, ...}
| DragEventHandler;
type PointerEventHandler = (event: PointerEvent) => mixed;
type PointerEventListener =
| {handleEvent: PointerEventHandler, ...}
| PointerEventHandler;
type AnimationEventHandler = (event: AnimationEvent) => mixed;
type AnimationEventListener =
| {handleEvent: AnimationEventHandler, ...}
| AnimationEventHandler;
type ClipboardEventHandler = (event: ClipboardEvent) => mixed;
type ClipboardEventListener =
| {handleEvent: ClipboardEventHandler, ...}
| ClipboardEventHandler;
type TransitionEventHandler = (event: TransitionEvent) => mixed;
type TransitionEventListener =
| {handleEvent: TransitionEventHandler, ...}
| TransitionEventHandler;
type MessageEventHandler = (event: MessageEvent) => mixed;
type MessageEventListener =
| {handleEvent: MessageEventHandler, ...}
| MessageEventHandler;
type BeforeUnloadEventHandler = (event: BeforeUnloadEvent) => mixed;
type BeforeUnloadEventListener =
| {handleEvent: BeforeUnloadEventHandler, ...}
| BeforeUnloadEventHandler;
type StorageEventHandler = (event: StorageEvent) => mixed;
type StorageEventListener =
| {handleEvent: StorageEventHandler, ...}
| StorageEventHandler;
type SecurityPolicyViolationEventHandler = (
event: SecurityPolicyViolationEvent,
) => mixed;
type SecurityPolicyViolationEventListener =
| {handleEvent: SecurityPolicyViolationEventHandler, ...}
| SecurityPolicyViolationEventHandler;
type USBConnectionEventHandler = (event: USBConnectionEvent) => mixed;
type USBConnectionEventListener =
| {handleEvent: USBConnectionEventHandler, ...}
| USBConnectionEventHandler;
type MediaKeySessionType = 'temporary' | 'persistent-license';
type MediaKeyStatus =
| 'usable'
| 'expired'
| 'released'
| 'output-restricted'
| 'output-downscaled'
| 'status-pending'
| 'internal-error';
type MouseEventTypes =
| 'contextmenu'
| 'mousedown'
| 'mouseenter'
| 'mouseleave'
| 'mousemove'
| 'mouseout'
| 'mouseover'
| 'mouseup'
| 'click'
| 'dblclick';
type FocusEventTypes = 'blur' | 'focus' | 'focusin' | 'focusout';
type KeyboardEventTypes = 'keydown' | 'keyup' | 'keypress';
type InputEventTypes = 'input' | 'beforeinput';
type TouchEventTypes = 'touchstart' | 'touchmove' | 'touchend' | 'touchcancel';
type WheelEventTypes = 'wheel';
type AbortProgressEventTypes = 'abort';
type ProgressEventTypes =
| 'abort'
| 'error'
| 'load'
| 'loadend'
| 'loadstart'
| 'progress'
| 'timeout';
type DragEventTypes =
| 'drag'
| 'dragend'
| 'dragenter'
| 'dragexit'
| 'dragleave'
| 'dragover'
| 'dragstart'
| 'drop';
type PointerEventTypes =
| 'pointerover'
| 'pointerenter'
| 'pointerdown'
| 'pointermove'
| 'pointerup'
| 'pointercancel'
| 'pointerout'
| 'pointerleave'
| 'gotpointercapture'
| 'lostpointercapture';
type AnimationEventTypes =
| 'animationstart'
| 'animationend'
| 'animationiteration';
type ClipboardEventTypes = 'clipboardchange' | 'cut' | 'copy' | 'paste';
type TransitionEventTypes =
| 'transitionrun'
| 'transitionstart'
| 'transitionend'
| 'transitioncancel';
type MessageEventTypes = string;
type BeforeUnloadEventTypes = 'beforeunload';
type StorageEventTypes = 'storage';
type SecurityPolicyViolationEventTypes = 'securitypolicyviolation';
type USBConnectionEventTypes = 'connect' | 'disconnect';
type EventListenerOptionsOrUseCapture =
| boolean
| {
capture?: boolean,
once?: boolean,
passive?: boolean,
signal?: AbortSignal,
...
};
declare class EventTarget {
addEventListener(
type: MouseEventTypes,
listener: MouseEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: FocusEventTypes,
listener: FocusEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: KeyboardEventTypes,
listener: KeyboardEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: InputEventTypes,
listener: InputEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: TouchEventTypes,
listener: TouchEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: WheelEventTypes,
listener: WheelEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: AbortProgressEventTypes,
listener: AbortProgressEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: ProgressEventTypes,
listener: ProgressEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: DragEventTypes,
listener: DragEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: PointerEventTypes,
listener: PointerEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: AnimationEventTypes,
listener: AnimationEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: ClipboardEventTypes,
listener: ClipboardEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: TransitionEventTypes,
listener: TransitionEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: MessageEventTypes,
listener: MessageEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: BeforeUnloadEventTypes,
listener: BeforeUnloadEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: StorageEventTypes,
listener: StorageEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: SecurityPolicyViolationEventTypes,
listener: SecurityPolicyViolationEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: USBConnectionEventTypes,
listener: USBConnectionEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
addEventListener(
type: string,
listener: EventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: MouseEventTypes,
listener: MouseEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: FocusEventTypes,
listener: FocusEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: KeyboardEventTypes,
listener: KeyboardEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: InputEventTypes,
listener: InputEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: TouchEventTypes,
listener: TouchEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: WheelEventTypes,
listener: WheelEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: AbortProgressEventTypes,
listener: AbortProgressEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: ProgressEventTypes,
listener: ProgressEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: DragEventTypes,
listener: DragEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: PointerEventTypes,
listener: PointerEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: AnimationEventTypes,
listener: AnimationEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: ClipboardEventTypes,
listener: ClipboardEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: TransitionEventTypes,
listener: TransitionEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: MessageEventTypes,
listener: MessageEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: BeforeUnloadEventTypes,
listener: BeforeUnloadEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: StorageEventTypes,
listener: StorageEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: SecurityPolicyViolationEventTypes,
listener: SecurityPolicyViolationEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: USBConnectionEventTypes,
listener: USBConnectionEventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
removeEventListener(
type: string,
listener: EventListener,
optionsOrUseCapture?: EventListenerOptionsOrUseCapture,
): void;
attachEvent?: (type: MouseEventTypes, listener: MouseEventListener) => void;
attachEvent?: (type: FocusEventTypes, listener: FocusEventListener) => void;
attachEvent?: (
type: KeyboardEventTypes,
listener: KeyboardEventListener,
) => void;
attachEvent?: (type: InputEventTypes, listener: InputEventListener) => void;
attachEvent?: (type: TouchEventTypes, listener: TouchEventListener) => void;
attachEvent?: (type: WheelEventTypes, listener: WheelEventListener) => void;
attachEvent?: (
type: AbortProgressEventTypes,
listener: AbortProgressEventListener,
) => void;
attachEvent?: (
type: ProgressEventTypes,
listener: ProgressEventListener,
) => void;
attachEvent?: (type: DragEventTypes, listener: DragEventListener) => void;
attachEvent?: (
type: PointerEventTypes,
listener: PointerEventListener,
) => void;
attachEvent?: (
type: AnimationEventTypes,
listener: AnimationEventListener,
) => void;
attachEvent?: (
type: ClipboardEventTypes,
listener: ClipboardEventListener,
) => void;
attachEvent?: (
type: TransitionEventTypes,
listener: TransitionEventListener,
) => void;
attachEvent?: (
type: MessageEventTypes,
listener: MessageEventListener,
) => void;
attachEvent?: (
type: BeforeUnloadEventTypes,
listener: BeforeUnloadEventListener,
) => void;
attachEvent?: (
type: StorageEventTypes,
listener: StorageEventListener,
) => void;
attachEvent?: (
type: USBConnectionEventTypes,
listener: USBConnectionEventListener,
) => void;
attachEvent?: (type: string, listener: EventListener) => void;
detachEvent?: (type: MouseEventTypes, listener: MouseEventListener) => void;
detachEvent?: (type: FocusEventTypes, listener: FocusEventListener) => void;
detachEvent?: (
type: KeyboardEventTypes,
listener: KeyboardEventListener,
) => void;
detachEvent?: (type: InputEventTypes, listener: InputEventListener) => void;
detachEvent?: (type: TouchEventTypes, listener: TouchEventListener) => void;
detachEvent?: (type: WheelEventTypes, listener: WheelEventListener) => void;
detachEvent?: (
type: AbortProgressEventTypes,
listener: AbortProgressEventListener,
) => void;
detachEvent?: (
type: ProgressEventTypes,
listener: ProgressEventListener,
) => void;
detachEvent?: (type: DragEventTypes, listener: DragEventListener) => void;
detachEvent?: (
type: PointerEventTypes,
listener: PointerEventListener,
) => void;
detachEvent?: (
type: AnimationEventTypes,
listener: AnimationEventListener,
) => void;
detachEvent?: (
type: ClipboardEventTypes,
listener: ClipboardEventListener,
) => void;
detachEvent?: (
type: TransitionEventTypes,
listener: TransitionEventListener,
) => void;
detachEvent?: (
type: MessageEventTypes,
listener: MessageEventListener,
) => void;
detachEvent?: (
type: BeforeUnloadEventTypes,
listener: BeforeUnloadEventListener,
) => void;
detachEvent?: (
type: StorageEventTypes,
listener: StorageEventListener,
) => void;
detachEvent?: (
type: USBConnectionEventTypes,
listener: USBConnectionEventListener,
) => void;
detachEvent?: (type: string, listener: EventListener) => void;
dispatchEvent(evt: Event): boolean;
// Deprecated
cancelBubble: boolean;
initEvent(
eventTypeArg: string,
canBubbleArg: boolean,
cancelableArg: boolean,
): void;
}
// https://dom.spec.whatwg.org/#dictdef-eventinit
type Event$Init = {
bubbles?: boolean,
cancelable?: boolean,
composed?: boolean,
/** Non-standard. See `composed` instead. */
scoped?: boolean,
...
};
// https://dom.spec.whatwg.org/#interface-event
declare class Event {
constructor(type: string, eventInitDict?: Event$Init): void;
/**
* Returns the type of event, e.g. "click", "hashchange", or "submit".
*/
+type: string;
/**
* Returns the object to which event is dispatched (its target).
*/
+target: EventTarget; // TODO: nullable
/** @deprecated */
+srcElement: Element; // TODO: nullable
/**
* Returns the object whose event listener's callback is currently being invoked.
*/
+currentTarget: EventTarget; // TODO: nullable
/**
* Returns the invocation target objects of event's path (objects on which
* listeners will be invoked), except for any nodes in shadow trees of which
* the shadow root's mode is "closed" that are not reachable from event's
* currentTarget.
*/
composedPath(): Array<EventTarget>;
+NONE: number;
+AT_TARGET: number;
+BUBBLING_PHASE: number;
+CAPTURING_PHASE: number;
/**
* Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET,
* and BUBBLING_PHASE.
*/
+eventPhase: number;
/**
* When dispatched in a tree, invoking this method prevents event from reaching
* any objects other than the current object.
*/
stopPropagation(): void;
/**
* Invoking this method prevents event from reaching any registered event
* listeners after the current one finishes running and, when dispatched in a
* tree, also prevents event from reaching any other objects.
*/
stopImmediatePropagation(): void;
/**
* Returns true or false depending on how event was initialized. True if
* event goes through its target's ancestors in reverse tree order, and
* false otherwise.
*/
+bubbles: boolean;
/**
* Returns true or false depending on how event was initialized. Its
* return value does not always carry meaning, but true can indicate
* that part of the operation during which event was dispatched, can
* be canceled by invoking the preventDefault() method.
*/
+cancelable: boolean;
// returnValue: boolean; // legacy, and some subclasses still define it as a string!
/**
* If invoked when the cancelable attribute value is true, and while
* executing a listener for the event with passive set to false, signals to
* the operation that caused event to be dispatched that it needs to be
* canceled.
*/
preventDefault(): void;
/**
* Returns true if preventDefault() was invoked successfully to indicate
* cancelation, and false otherwise.
*/
+defaultPrevented: boolean;
/**
* Returns true or false depending on how event was initialized. True if
* event invokes listeners past a ShadowRoot node that is the root of its
* target, and false otherwise.
*/
+composed: boolean;
/**
* Returns true if event was dispatched by the user agent, and false otherwise.
*/
+isTrusted: boolean;
/**
* Returns the event's timestamp as the number of milliseconds measured relative
* to the time origin.
*/
+timeStamp: number;
/** Non-standard. See Event.prototype.composedPath */
+deepPath?: () => EventTarget[];
/** Non-standard. See Event.prototype.composed */
+scoped: boolean;
/**
* @deprecated
*/
initEvent(type: string, bubbles: boolean, cancelable: boolean): void;
}
type CustomEvent$Init = {...Event$Init, detail?: any, ...};
declare class CustomEvent extends Event {
constructor(type: string, eventInitDict?: CustomEvent$Init): void;
detail: any;
// deprecated
initCustomEvent(
type: string,
bubbles: boolean,
cancelable: boolean,
detail: any,
): CustomEvent;
}
type UIEvent$Init = {...Event$Init, detail?: number, view?: any, ...};
declare class UIEvent extends Event {
constructor(typeArg: string, uiEventInit?: UIEvent$Init): void;
detail: number;
view: any;
}
declare class CompositionEvent extends UIEvent {
data: string | null;
locale: string;
}
type MouseEvent$MouseEventInit = {
screenX?: number,
screenY?: number,
clientX?: number,
clientY?: number,
ctrlKey?: boolean,
shiftKey?: boolean,
altKey?: boolean,
metaKey?: boolean,
button?: number,
buttons?: number,
region?: string | null,
relatedTarget?: EventTarget | null,
...
};
declare class MouseEvent extends UIEvent {
constructor(
typeArg: string,
mouseEventInit?: MouseEvent$MouseEventInit,
): void;
altKey: boolean;
button: number;
buttons: number;
clientX: number;
clientY: number;
ctrlKey: boolean;
metaKey: boolean;
movementX: number;
movementY: number;
offsetX: number;
offsetY: number;
pageX: number;
pageY: number;
region: string | null;
relatedTarget: EventTarget | null;
screenX: number;
screenY: number;
shiftKey: boolean;
x: number;
y: number;
getModifierState(keyArg: string): boolean;
}
declare class FocusEvent extends UIEvent {
relatedTarget: ?EventTarget;
}
type WheelEvent$Init = {
...MouseEvent$MouseEventInit,
deltaX?: number,
deltaY?: number,
deltaZ?: number,
deltaMode?: 0x00 | 0x01 | 0x02,
...
};
declare class WheelEvent extends MouseEvent {
static +DOM_DELTA_PIXEL: 0x00;
static +DOM_DELTA_LINE: 0x01;
static +DOM_DELTA_PAGE: 0x02;
constructor(type: string, eventInitDict?: WheelEvent$Init): void;
+deltaX: number;
+deltaY: number;
+deltaZ: number;
+deltaMode: 0x00 | 0x01 | 0x02;
}
declare class DragEvent extends MouseEvent {
dataTransfer: ?DataTransfer; // readonly
}
type PointerEvent$PointerEventInit = MouseEvent$MouseEventInit & {
pointerId?: number,
width?: number,
height?: number,
pressure?: number,
tangentialPressure?: number,
tiltX?: number,
tiltY?: number,
twist?: number,
pointerType?: string,
isPrimary?: boolean,
...
};
declare class PointerEvent extends MouseEvent {
constructor(
typeArg: string,
pointerEventInit?: PointerEvent$PointerEventInit,
): void;
pointerId: number;
width: number;
height: number;
pressure: number;
tangentialPressure: number;
tiltX: number;
tiltY: number;
twist: number;
pointerType: string;
isPrimary: boolean;
}
declare class ProgressEvent extends Event {
lengthComputable: boolean;
loaded: number;
total: number;
// Deprecated
initProgressEvent(
typeArg: string,
canBubbleArg: boolean,
cancelableArg: boolean,
lengthComputableArg: boolean,
loadedArg: number,
totalArg: number,
): void;
}
declare class PromiseRejectionEvent extends Event {
promise: Promise<any>;
reason: any;
}
type PageTransitionEventInit = {
...Event$Init,
persisted: boolean,
...
};
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#the-pagetransitionevent-interface
declare class PageTransitionEvent extends Event {
constructor(type: string, init?: PageTransitionEventInit): void;
+persisted: boolean;
}
// used for websockets and postMessage, for example. See:
// https://www.w3.org/TR/2011/WD-websockets-20110419/
// and
// https://www.w3.org/TR/2008/WD-html5-20080610/comms.html
// and
// https://html.spec.whatwg.org/multipage/comms.html#the-messageevent-interfaces
declare class MessageEvent extends Event {
data: mixed;
origin: string;
lastEventId: string;
source: WindowProxy;
}
// https://www.w3.org/TR/eventsource/
declare class EventSource extends EventTarget {
constructor(
url: string,
configuration?: {withCredentials: boolean, ...},
): void;
+CLOSED: 2;
+CONNECTING: 0;
+OPEN: 1;
+readyState: 0 | 1 | 2;
+url: string;
+withCredentials: boolean;
onerror: () => void;
onmessage: MessageEventListener;
onopen: () => void;
close: () => void;
}
// https://w3c.github.io/uievents/#idl-keyboardeventinit
type KeyboardEvent$Init = {
...UIEvent$Init,
/**
* Initializes the `key` attribute of the KeyboardEvent object to the unicode
* character string representing the meaning of a key after taking into
* account all keyboard modifiers (such as shift-state). This value is the
* final effective value of the key. If the key is not a printable character,
* then it should be one of the key values defined in [UIEvents-Key](https://www.w3.org/TR/uievents-key/).
*
* NOTE: not `null`, this results in `evt.key === 'null'`!
*/
key?: string | void,
/**
* Initializes the `code` attribute of the KeyboardEvent object to the unicode
* character string representing the key that was pressed, ignoring any
* keyboard modifications such as keyboard layout. This value should be one
* of the code values defined in [UIEvents-Code](https://www.w3.org/TR/uievents-code/).
*
* NOTE: not `null`, this results in `evt.code === 'null'`!
*/
code?: string | void,
/**
* Initializes the `location` attribute of the KeyboardEvent object to one of
* the following location numerical constants:
*
* DOM_KEY_LOCATION_STANDARD (numerical value 0)
* DOM_KEY_LOCATION_LEFT (numerical value 1)
* DOM_KEY_LOCATION_RIGHT (numerical value 2)
* DOM_KEY_LOCATION_NUMPAD (numerical value 3)
*/
location?: number,
/**
* Initializes the `ctrlKey` attribute of the KeyboardEvent object to true if
* the Control key modifier is to be considered active, false otherwise.
*/
ctrlKey?: boolean,
/**
* Initializes the `shiftKey` attribute of the KeyboardEvent object to true if
* the Shift key modifier is to be considered active, false otherwise.
*/
shiftKey?: boolean,
/**
* Initializes the `altKey` attribute of the KeyboardEvent object to true if
* the Alt (alternative) (or Option) key modifier is to be considered active,
* false otherwise.
*/
altKey?: boolean,
/**
* Initializes the `metaKey` attribute of the KeyboardEvent object to true if
* the Meta key modifier is to be considered active, false otherwise.
*/
metaKey?: boolean,
/**
* Initializes the `repeat` attribute of the KeyboardEvent object. This
* attribute should be set to true if the the current KeyboardEvent is
* considered part of a repeating sequence of similar events caused by the
* long depression of any single key, false otherwise.
*/
repeat?: boolean,
/**
* Initializes the `isComposing` attribute of the KeyboardEvent object. This
* attribute should be set to true if the event being constructed occurs as
* part of a composition sequence, false otherwise.
*/
isComposing?: boolean,
/**
* Initializes the `charCode` attribute of the KeyboardEvent to the Unicode
* code point for the events character.
*/
charCode?: number,
/**
* Initializes the `keyCode` attribute of the KeyboardEvent to the system-
* and implementation-dependent numerical code signifying the unmodified
* identifier associated with the key pressed.
*/
keyCode?: number,
/** Initializes the `which` attribute */
which?: number,
...
};
// https://w3c.github.io/uievents/#idl-keyboardevent
declare class KeyboardEvent extends UIEvent {
constructor(typeArg: string, init?: KeyboardEvent$Init): void;
/** `true` if the Alt (alternative) (or "Option") key modifier was active. */
+altKey: boolean;
/**
* Holds a string that identifies the physical key being pressed. The value
* is not affected by the current keyboard layout or modifier state, so a
* particular key will always return the same value.
*/
+code: string;
/** `true` if the Control (control) key modifier was active. */
+ctrlKey: boolean;
/**
* `true` if the key event occurs as part of a composition session, i.e.,
* after a `compositionstart` event and before the corresponding
* `compositionend` event.
*/
+isComposing: boolean;
/**
* Holds a [key attribute value](https://www.w3.org/TR/uievents-key/#key-attribute-value)
* corresponding to the key pressed. */
+key: string;
/** An indication of the logical location of the key on the device. */
+location: number;
/** `true` if the meta (Meta) key (or "Command") modifier was active. */
+metaKey: boolean;
/** `true` if the key has been pressed in a sustained manner. */
+repeat: boolean;
/** `true` if the shift (Shift) key modifier was active. */
+shiftKey: boolean;
/**
* Queries the state of a modifier using a key value.
*
* Returns `true` if it is a modifier key and the modifier is activated,
* `false` otherwise.
*/
getModifierState(keyArg?: string): boolean;
/**
* Holds a character value, for keypress events which generate character
* input. The value is the Unicode reference number (code point) of that
* character (e.g. event.charCode = event.key.charCodeAt(0) for printable
* characters). For keydown or keyup events, the value of charCode is 0.
*
* @deprecated You should use KeyboardEvent.key instead, if available.
*/
+charCode: number;
/**
* Holds a system- and implementation-dependent numerical code signifying
* the unmodified identifier associated with the key pressed. Unlike the
* `key` attribute, the set of possible values are not normatively defined.
* Typically, these value of the keyCode SHOULD represent the decimal
* codepoint in ASCII or Windows 1252, but MAY be drawn from a different
* appropriate character set. Implementations that are unable to identify
* a key use the key value 0.
*
* @deprecated You should use KeyboardEvent.key instead, if available.
*/
+keyCode: number;
/**
* Holds a system- and implementation-dependent numerical code signifying
* the unmodified identifier associated with the key pressed. In most cases,
* the value is identical to keyCode.
*
* @deprecated You should use KeyboardEvent.key instead, if available.
*/
+which: number;
}
type InputEvent$Init = {
...UIEvent$Init,
inputType?: string,
data?: string,
dataTransfer?: DataTransfer,
isComposing?: boolean,
ranges?: Array<any>, // TODO: StaticRange
...
};
declare class InputEvent extends UIEvent {
constructor(typeArg: string, inputEventInit: InputEvent$Init): void;
+data: string | null;
+dataTransfer: DataTransfer | null;
+inputType: string;
+isComposing: boolean;
getTargetRanges(): Array<any>; // TODO: StaticRange
}
declare class AnimationEvent extends Event {
animationName: string;
elapsedTime: number;
pseudoElement: string;
// deprecated
initAnimationEvent: (
type: 'animationstart' | 'animationend' | 'animationiteration',
canBubble: boolean,
cancelable: boolean,
animationName: string,
elapsedTime: number,
) => void;
}
// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface
declare class ErrorEvent extends Event {
constructor(
type: string,
eventInitDict?: {
...Event$Init,
message?: string,
filename?: string,
lineno?: number,
colno?: number,
error?: any,
...
},
): void;
+message: string;
+filename: string;
+lineno: number;
+colno: number;
+error: any;
}
// https://html.spec.whatwg.org/multipage/web-messaging.html#broadcasting-to-other-browsing-contexts
declare class BroadcastChannel extends EventTarget {
name: string;
onmessage: ?(event: MessageEvent) => void;
onmessageerror: ?(event: MessageEvent) => void;
constructor(name: string): void;
postMessage(msg: mixed): void;
close(): void;
}
// https://www.w3.org/TR/touch-events/#idl-def-Touch
declare class Touch {
clientX: number;
clientY: number;
identifier: number;
pageX: number;
pageY: number;
screenX: number;
screenY: number;
target: EventTarget;
}
// https://www.w3.org/TR/touch-events/#idl-def-TouchList
// TouchList#item(index) will return null if n > #length. Should #item's
// return type just been Touch?
declare class TouchList {
@@iterator(): Iterator<Touch>;
length: number;
item(index: number): null | Touch;
[index: number]: Touch;
}
// https://www.w3.org/TR/touch-events/#touchevent-interface
declare class TouchEvent extends UIEvent {
altKey: boolean;
changedTouches: TouchList;
ctrlKey: boolean;
metaKey: boolean;
shiftKey: boolean;
targetTouches: TouchList;
touches: TouchList;
}
// https://www.w3.org/TR/webstorage/#the-storageevent-interface
declare class StorageEvent extends Event {
key: ?string;
oldValue: ?string;
newValue: ?string;
url: string;
storageArea: ?Storage;
}
// https://www.w3.org/TR/clipboard-apis/#typedefdef-clipboarditemdata
// Raw string | Blob are allowed per https://webidl.spec.whatwg.org/#es-promise
type ClipboardItemData = string | Blob | Promise<string | Blob>;
type PresentationStyle = 'attachment' | 'inline' | 'unspecified';
type ClipboardItemOptions = {
presentationStyle?: PresentationStyle,
...
};
declare class ClipboardItem {
+types: $ReadOnlyArray<string>;
getType(type: string): Promise<Blob>;
constructor(
items: {[type: string]: ClipboardItemData},
options?: ClipboardItemOptions,
): void;
}
// https://w3c.github.io/clipboard-apis/ as of 15 May 2018
type ClipboardEvent$Init = {
...Event$Init,
clipboardData: DataTransfer | null,
...
};
declare class ClipboardEvent extends Event {
constructor(type: ClipboardEventTypes, eventInit?: ClipboardEvent$Init): void;
+clipboardData: ?DataTransfer; // readonly
}
// https://www.w3.org/TR/2017/WD-css-transitions-1-20171130/#interface-transitionevent
type TransitionEvent$Init = {
...Event$Init,
propertyName: string,
elapsedTime: number,
pseudoElement: string,
...
};
// $FlowFixMe[libdef-override]
declare class TransitionEvent extends Event {
constructor(
type: TransitionEventTypes,
eventInit?: TransitionEvent$Init,
): void;
+propertyName: string; // readonly
+elapsedTime: number; // readonly
+pseudoElement: string; // readonly
}
// https://www.w3.org/TR/html50/browsers.html#beforeunloadevent
declare class BeforeUnloadEvent extends Event {
returnValue: string;
}
declare class SecurityPolicyViolationEvent extends Event {
+documentURI: string;
+referrer: string;
+blockedURI: string;
+effectiveDirective: string;
+violatedDirective: string;
+originalPolicy: string;
+sourceFile: string;
+sample: string;
+disposition: 'enforce' | 'report';
+statusCode: number;
+lineNumber: number;
+columnNumber: number;
}
// https://developer.mozilla.org/en-US/docs/Web/API/USBConnectionEvent
declare class USBConnectionEvent extends Event {
device: USBDevice;
}
// TODO: *Event
declare class Node extends EventTarget {
baseURI: ?string;
childNodes: NodeList<Node>;
firstChild: ?Node;
+isConnected: boolean;
lastChild: ?Node;
nextSibling: ?Node;
nodeName: string;
nodeType: number;
nodeValue: string;
ownerDocument: Document;
parentElement: ?Element;
parentNode: ?Node;
previousSibling: ?Node;
rootNode: Node;
textContent: string;
appendChild<T: Node>(newChild: T): T;
cloneNode(deep?: boolean): this;
compareDocumentPosition(other: Node): number;
contains(other: ?Node): boolean;
getRootNode(options?: {composed: boolean, ...}): Node;
hasChildNodes(): boolean;
insertBefore<T: Node>(newChild: T, refChild?: ?Node): T;
isDefaultNamespace(namespaceURI: string): boolean;
isEqualNode(arg: Node): boolean;
isSameNode(other: Node): boolean;
lookupNamespaceURI(prefix: string): string;
lookupPrefix(namespaceURI: string): string;
normalize(): void;
removeChild<T: Node>(oldChild: T): T;
replaceChild<T: Node>(newChild: Node, oldChild: T): T;
replaceChildren(...nodes: $ReadOnlyArray<Node | string>): void;
static ATTRIBUTE_NODE: number;
static CDATA_SECTION_NODE: number;
static COMMENT_NODE: number;
static DOCUMENT_FRAGMENT_NODE: number;
static DOCUMENT_NODE: number;
static DOCUMENT_POSITION_CONTAINED_BY: number;
static DOCUMENT_POSITION_CONTAINS: number;
static DOCUMENT_POSITION_DISCONNECTED: number;
static DOCUMENT_POSITION_FOLLOWING: number;
static DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;
static DOCUMENT_POSITION_PRECEDING: number;
static DOCUMENT_TYPE_NODE: number;
static ELEMENT_NODE: number;
static ENTITY_NODE: number;
static ENTITY_REFERENCE_NODE: number;
static NOTATION_NODE: number;
static PROCESSING_INSTRUCTION_NODE: number;
static TEXT_NODE: number;
// Non-standard
innerText?: string;
outerText?: string;
}
declare class NodeList<T> {
@@iterator(): Iterator<T>;
length: number;
item(index: number): T;
[index: number]: T;
forEach<This>(
callbackfn: (this: This, value: T, index: number, list: NodeList<T>) => any,
thisArg: This,
): void;
entries(): Iterator<[number, T]>;
keys(): Iterator<number>;
values(): Iterator<T>;
}
declare class NamedNodeMap {
@@iterator(): Iterator<Attr>;
length: number;
removeNamedItemNS(namespaceURI: string, localName: string): Attr;
item(index: number): Attr;
[index: number | string]: Attr;
removeNamedItem(name: string): Attr;
getNamedItem(name: string): Attr;
setNamedItem(arg: Attr): Attr;
getNamedItemNS(namespaceURI: string, localName: string): Attr;
setNamedItemNS(arg: Attr): Attr;
}
declare class Attr extends Node {
isId: boolean;
specified: boolean;
ownerElement: Element | null;
value: string;
name: string;
namespaceURI: string | null;
prefix: string | null;
localName: string;
}
declare class HTMLCollection<+Elem: HTMLElement> {
@@iterator(): Iterator<Elem>;
length: number;
item(nameOrIndex?: any, optionalIndex?: any): Elem | null;
namedItem(name: string): Elem | null;
[index: number | string]: Elem;
}
// from https://www.w3.org/TR/custom-elements/#extensions-to-document-interface-to-register
// See also https://github.com/w3c/webcomponents/
type ElementRegistrationOptions = {
+prototype?: {
// from https://www.w3.org/TR/custom-elements/#types-of-callbacks
// See also https://github.com/w3c/webcomponents/
+createdCallback?: () => mixed,
+attachedCallback?: () => mixed,
+detachedCallback?: () => mixed,
+attributeChangedCallback?: ((
// attribute is set
attributeLocalName: string,
oldAttributeValue: null,
newAttributeValue: string,
attributeNamespace: string,
) => mixed) &
// attribute is changed
((
attributeLocalName: string,
oldAttributeValue: string,
newAttributeValue: string,
attributeNamespace: string,
) => mixed) &
// attribute is removed
((
attributeLocalName: string,
oldAttributeValue: string,
newAttributeValue: null,
attributeNamespace: string,
) => mixed),
...
},
+extends?: string,
...
};
type ElementCreationOptions = {is: string, ...};
declare class Document extends Node {
+timeline: DocumentTimeline;
getAnimations(): Array<Animation>;
+URL: string;
adoptNode<T: Node>(source: T): T;
anchors: HTMLCollection<HTMLAnchorElement>;
applets: HTMLCollection<HTMLAppletElement>;
body: HTMLBodyElement | null;
+characterSet: string;
/**
* Legacy alias of `characterSet`
* @deprecated
*/
+charset: string;
close(): void;
+contentType: string;
cookie: string;
createAttribute(name: string): Attr;
createAttributeNS(namespaceURI: string | null, qualifiedName: string): Attr;
createCDATASection(data: string): Text;
createComment(data: string): Comment;
createDocumentFragment(): DocumentFragment;
createElement(
tagName: 'a',
options?: ElementCreationOptions,
): HTMLAnchorElement;
createElement(
tagName: 'area',
options?: ElementCreationOptions,
): HTMLAreaElement;
createElement(
tagName: 'audio',
options?: ElementCreationOptions,
): HTMLAudioElement;
createElement(
tagName: 'blockquote',
options?: ElementCreationOptions,
): HTMLQuoteElement;
createElement(
tagName: 'body',
options?: ElementCreationOptions,
): HTMLBodyElement;
createElement(tagName: 'br', options?: ElementCreationOptions): HTMLBRElement;
createElement(
tagName: 'button',
options?: ElementCreationOptions,
): HTMLButtonElement;
createElement(
tagName: 'canvas',
options?: ElementCreationOptions,
): HTMLCanvasElement;
createElement(
tagName: 'col',
options?: ElementCreationOptions,
): HTMLTableColElement;
createElement(
tagName: 'colgroup',
options?: ElementCreationOptions,
): HTMLTableColElement;
createElement(
tagName: 'data',
options?: ElementCreationOptions,
): HTMLDataElement;
createElement(
tagName: 'datalist',
options?: ElementCreationOptions,
): HTMLDataListElement;
createElement(
tagName: 'del',
options?: ElementCreationOptions,
): HTMLModElement;
createElement(
tagName: 'details',
options?: ElementCreationOptions,
): HTMLDetailsElement;
createElement(
tagName: 'dialog',
options?: ElementCreationOptions,
): HTMLDialogElement;
createElement(
tagName: 'div',
options?: ElementCreationOptions,
): HTMLDivElement;
createElement(
tagName: 'dl',
options?: ElementCreationOptions,
): HTMLDListElement;
createElement(
tagName: 'embed',
options?: ElementCreationOptions,
): HTMLEmbedElement;
createElement(
tagName: 'fieldset',
options?: ElementCreationOptions,
): HTMLFieldSetElement;
createElement(
tagName: 'form',
options?: ElementCreationOptions,
): HTMLFormElement;
createElement(
tagName: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
options?: ElementCreationOptions,
): HTMLHeadingElement;
createElement(
tagName: 'head',
options?: ElementCreationOptions,
): HTMLHeadElement;
createElement(tagName: 'hr', options?: ElementCreationOptions): HTMLHRElement;
createElement(
tagName: 'html',
options?: ElementCreationOptions,
): HTMLHtmlElement;
createElement(
tagName: 'iframe',
options?: ElementCreationOptions,
): HTMLIFrameElement;
createElement(
tagName: 'img',
options?: ElementCreationOptions,
): HTMLImageElement;
createElement(
tagName: 'input',
options?: ElementCreationOptions,
): HTMLInputElement;
createElement(
tagName: 'ins',
options?: ElementCreationOptions,
): HTMLModElement;
createElement(
tagName: 'label',
options?: ElementCreationOptions,
): HTMLLabelElement;
createElement(
tagName: 'legend',
options?: ElementCreationOptions,
): HTMLLegendElement;
createElement(tagName: 'li', options?: ElementCreationOptions): HTMLLIElement;
createElement(
tagName: 'link',
options?: ElementCreationOptions,
): HTMLLinkElement;
createElement(
tagName: 'map',
options?: ElementCreationOptions,
): HTMLMapElement;
createElement(
tagName: 'meta',
options?: ElementCreationOptions,
): HTMLMetaElement;
createElement(
tagName: 'meter',
options?: ElementCreationOptions,
): HTMLMeterElement;
createElement(
tagName: 'object',
options?: ElementCreationOptions,
): HTMLObjectElement;
createElement(
tagName: 'ol',
options?: ElementCreationOptions,
): HTMLOListElement;
createElement(
tagName: 'optgroup',
options?: ElementCreationOptions,
): HTMLOptGroupElement;
createElement(
tagName: 'option',
options?: ElementCreationOptions,
): HTMLOptionElement;
createElement(
tagName: 'p',
options?: ElementCreationOptions,
): HTMLParagraphElement;
createElement(
tagName: 'param',
options?: ElementCreationOptions,
): HTMLParamElement;
createElement(
tagName: 'picture',
options?: ElementCreationOptions,
): HTMLPictureElement;
createElement(
tagName: 'pre',
options?: ElementCreationOptions,
): HTMLPreElement;
createElement(
tagName: 'progress',
options?: ElementCreationOptions,
): HTMLProgressElement;
createElement(
tagName: 'q',
options?: ElementCreationOptions,
): HTMLQuoteElement;
createElement(
tagName: 'script',
options?: ElementCreationOptions,
): HTMLScriptElement;
createElement(
tagName: 'select',
options?: ElementCreationOptions,
): HTMLSelectElement;
createElement(
tagName: 'source',
options?: ElementCreationOptions,
): HTMLSourceElement;
createElement(
tagName: 'span',
options?: ElementCreationOptions,
): HTMLSpanElement;
createElement(
tagName: 'style',
options?: ElementCreationOptions,
): HTMLStyleElement;
createElement(
tagName: 'textarea',
options?: ElementCreationOptions,
): HTMLTextAreaElement;
createElement(
tagName: 'time',
options?: ElementCreationOptions,
): HTMLTimeElement;
createElement(
tagName: 'title',
options?: ElementCreationOptions,
): HTMLTitleElement;
createElement(
tagName: 'track',
options?: ElementCreationOptions,
): HTMLTrackElement;
createElement(
tagName: 'video',
options?: ElementCreationOptions,
): HTMLVideoElement;
createElement(
tagName: 'table',
options?: ElementCreationOptions,
): HTMLTableElement;
createElement(
tagName: 'caption',
options?: ElementCreationOptions,
): HTMLTableCaptionElement;
createElement(
tagName: 'thead' | 'tfoot' | 'tbody',
options?: ElementCreationOptions,
): HTMLTableSectionElement;
createElement(
tagName: 'tr',
options?: ElementCreationOptions,
): HTMLTableRowElement;
createElement(
tagName: 'td' | 'th',
options?: ElementCreationOptions,
): HTMLTableCellElement;
createElement(
tagName: 'template',
options?: ElementCreationOptions,
): HTMLTemplateElement;
createElement(
tagName: 'ul',
options?: ElementCreationOptions,
): HTMLUListElement;
createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;
createElementNS(
namespaceURI: string | null,
qualifiedName: string,
options?: ElementCreationOptions,
): Element;
createTextNode(data: string): Text;
currentScript: HTMLScriptElement | null;
dir: 'rtl' | 'ltr';
+doctype: DocumentType | null;
+documentElement: HTMLElement | null;
documentMode: number;
+documentURI: string;
domain: string | null;
embeds: HTMLCollection<HTMLEmbedElement>;
exitFullscreen(): Promise<void>;
queryCommandSupported(cmdID: string): boolean;
execCommand(cmdID: string, showUI?: boolean, value?: any): boolean;
forms: HTMLCollection<HTMLFormElement>;
fullscreenElement: Element | null;
fullscreenEnabled: boolean;
getElementsByClassName(classNames: string): HTMLCollection<HTMLElement>;
getElementsByName(elementName: string): HTMLCollection<HTMLElement>;
getElementsByTagName(name: 'a'): HTMLCollection<HTMLAnchorElement>;
getElementsByTagName(name: 'area'): HTMLCollection<HTMLAreaElement>;
getElementsByTagName(name: 'audio'): HTMLCollection<HTMLAudioElement>;
getElementsByTagName(name: 'blockquote'): HTMLCollection<HTMLQuoteElement>;
getElementsByTagName(name: 'body'): HTMLCollection<HTMLBodyElement>;
getElementsByTagName(name: 'br'): HTMLCollection<HTMLBRElement>;
getElementsByTagName(name: 'button'): HTMLCollection<HTMLButtonElement>;
getElementsByTagName(name: 'canvas'): HTMLCollection<HTMLCanvasElement>;
getElementsByTagName(name: 'col'): HTMLCollection<HTMLTableColElement>;
getElementsByTagName(name: 'colgroup'): HTMLCollection<HTMLTableColElement>;
getElementsByTagName(name: 'data'): HTMLCollection<HTMLDataElement>;
getElementsByTagName(name: 'datalist'): HTMLCollection<HTMLDataListElement>;
getElementsByTagName(name: 'del'): HTMLCollection<HTMLModElement>;
getElementsByTagName(name: 'details'): HTMLCollection<HTMLDetailsElement>;
getElementsByTagName(name: 'dialog'): HTMLCollection<HTMLDialogElement>;
getElementsByTagName(name: 'div'): HTMLCollection<HTMLDivElement>;
getElementsByTagName(name: 'dl'): HTMLCollection<HTMLDListElement>;
getElementsByTagName(name: 'embed'): HTMLCollection<HTMLEmbedElement>;
getElementsByTagName(name: 'fieldset'): HTMLCollection<HTMLFieldSetElement>;
getElementsByTagName(name: 'form'): HTMLCollection<HTMLFormElement>;
getElementsByTagName(
name: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
): HTMLCollection<HTMLHeadingElement>;
getElementsByTagName(name: 'head'): HTMLCollection<HTMLHeadElement>;
getElementsByTagName(name: 'hr'): HTMLCollection<HTMLHRElement>;
getElementsByTagName(name: 'html'): HTMLCollection<HTMLHtmlElement>;
getElementsByTagName(name: 'iframe'): HTMLCollection<HTMLIFrameElement>;
getElementsByTagName(name: 'img'): HTMLCollection<HTMLImageElement>;
getElementsByTagName(name: 'input'): HTMLCollection<HTMLInputElement>;
getElementsByTagName(name: 'ins'): HTMLCollection<HTMLModElement>;
getElementsByTagName(name: 'label'): HTMLCollection<HTMLLabelElement>;
getElementsByTagName(name: 'legend'): HTMLCollection<HTMLLegendElement>;
getElementsByTagName(name: 'li'): HTMLCollection<HTMLLIElement>;
getElementsByTagName(name: 'link'): HTMLCollection<HTMLLinkElement>;
getElementsByTagName(name: 'map'): HTMLCollection<HTMLMapElement>;
getElementsByTagName(name: 'meta'): HTMLCollection<HTMLMetaElement>;
getElementsByTagName(name: 'meter'): HTMLCollection<HTMLMeterElement>;
getElementsByTagName(name: 'object'): HTMLCollection<HTMLObjectElement>;
getElementsByTagName(name: 'ol'): HTMLCollection<HTMLOListElement>;
getElementsByTagName(name: 'option'): HTMLCollection<HTMLOptionElement>;
getElementsByTagName(name: 'optgroup'): HTMLCollection<HTMLOptGroupElement>;
getElementsByTagName(name: 'p'): HTMLCollection<HTMLParagraphElement>;
getElementsByTagName(name: 'param'): HTMLCollection<HTMLParamElement>;
getElementsByTagName(name: 'picture'): HTMLCollection<HTMLPictureElement>;
getElementsByTagName(name: 'pre'): HTMLCollection<HTMLPreElement>;
getElementsByTagName(name: 'progress'): HTMLCollection<HTMLProgressElement>;
getElementsByTagName(name: 'q'): HTMLCollection<HTMLQuoteElement>;
getElementsByTagName(name: 'script'): HTMLCollection<HTMLScriptElement>;
getElementsByTagName(name: 'select'): HTMLCollection<HTMLSelectElement>;
getElementsByTagName(name: 'source'): HTMLCollection<HTMLSourceElement>;
getElementsByTagName(name: 'span'): HTMLCollection<HTMLSpanElement>;
getElementsByTagName(name: 'style'): HTMLCollection<HTMLStyleElement>;
getElementsByTagName(name: 'textarea'): HTMLCollection<HTMLTextAreaElement>;
getElementsByTagName(name: 'time'): HTMLCollection<HTMLTimeElement>;
getElementsByTagName(name: 'title'): HTMLCollection<HTMLTitleElement>;
getElementsByTagName(name: 'track'): HTMLCollection<HTMLTrackElement>;
getElementsByTagName(name: 'video'): HTMLCollection<HTMLVideoElement>;
getElementsByTagName(name: 'table'): HTMLCollection<HTMLTableElement>;
getElementsByTagName(
name: 'caption',
): HTMLCollection<HTMLTableCaptionElement>;
getElementsByTagName(
name: 'thead' | 'tfoot' | 'tbody',
): HTMLCollection<HTMLTableSectionElement>;
getElementsByTagName(name: 'tr'): HTMLCollection<HTMLTableRowElement>;
getElementsByTagName(name: 'td' | 'th'): HTMLCollection<HTMLTableCellElement>;
getElementsByTagName(name: 'template'): HTMLCollection<HTMLTemplateElement>;
getElementsByTagName(name: 'ul'): HTMLCollection<HTMLUListElement>;
getElementsByTagName(name: string): HTMLCollection<HTMLElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'a',
): HTMLCollection<HTMLAnchorElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'area',
): HTMLCollection<HTMLAreaElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'audio',
): HTMLCollection<HTMLAudioElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'blockquote',
): HTMLCollection<HTMLQuoteElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'body',
): HTMLCollection<HTMLBodyElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'br',
): HTMLCollection<HTMLBRElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'button',
): HTMLCollection<HTMLButtonElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'canvas',
): HTMLCollection<HTMLCanvasElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'col',
): HTMLCollection<HTMLTableColElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'colgroup',
): HTMLCollection<HTMLTableColElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'data',
): HTMLCollection<HTMLDataElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'datalist',
): HTMLCollection<HTMLDataListElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'del',
): HTMLCollection<HTMLModElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'details',
): HTMLCollection<HTMLDetailsElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'dialog',
): HTMLCollection<HTMLDialogElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'div',
): HTMLCollection<HTMLDivElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'dl',
): HTMLCollection<HTMLDListElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'embed',
): HTMLCollection<HTMLEmbedElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'fieldset',
): HTMLCollection<HTMLFieldSetElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'form',
): HTMLCollection<HTMLFormElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
): HTMLCollection<HTMLHeadingElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'head',
): HTMLCollection<HTMLHeadElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'hr',
): HTMLCollection<HTMLHRElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'html',
): HTMLCollection<HTMLHtmlElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'iframe',
): HTMLCollection<HTMLIFrameElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'img',
): HTMLCollection<HTMLImageElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'input',
): HTMLCollection<HTMLInputElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'ins',
): HTMLCollection<HTMLModElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'label',
): HTMLCollection<HTMLLabelElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'legend',
): HTMLCollection<HTMLLegendElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'li',
): HTMLCollection<HTMLLIElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'link',
): HTMLCollection<HTMLLinkElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'map',
): HTMLCollection<HTMLMapElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'meta',
): HTMLCollection<HTMLMetaElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'meter',
): HTMLCollection<HTMLMeterElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'object',
): HTMLCollection<HTMLObjectElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'ol',
): HTMLCollection<HTMLOListElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'option',
): HTMLCollection<HTMLOptionElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'optgroup',
): HTMLCollection<HTMLOptGroupElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'p',
): HTMLCollection<HTMLParagraphElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'param',
): HTMLCollection<HTMLParamElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'picture',
): HTMLCollection<HTMLPictureElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'pre',
): HTMLCollection<HTMLPreElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'progress',
): HTMLCollection<HTMLProgressElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'q',
): HTMLCollection<HTMLQuoteElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'script',
): HTMLCollection<HTMLScriptElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'select',
): HTMLCollection<HTMLSelectElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'source',
): HTMLCollection<HTMLSourceElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'span',
): HTMLCollection<HTMLSpanElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'style',
): HTMLCollection<HTMLStyleElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'textarea',
): HTMLCollection<HTMLTextAreaElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'time',
): HTMLCollection<HTMLTimeElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'title',
): HTMLCollection<HTMLTitleElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'track',
): HTMLCollection<HTMLTrackElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'video',
): HTMLCollection<HTMLVideoElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'table',
): HTMLCollection<HTMLTableElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'caption',
): HTMLCollection<HTMLTableCaptionElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'thead' | 'tfoot' | 'tbody',
): HTMLCollection<HTMLTableSectionElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'tr',
): HTMLCollection<HTMLTableRowElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'td' | 'th',
): HTMLCollection<HTMLTableCellElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'template',
): HTMLCollection<HTMLTemplateElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'ul',
): HTMLCollection<HTMLUListElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: string,
): HTMLCollection<HTMLElement>;
head: HTMLHeadElement | null;
images: HTMLCollection<HTMLImageElement>;
+implementation: DOMImplementation;
importNode<T: Node>(importedNode: T, deep: boolean): T;
/**
* Legacy alias of `characterSet`
* @deprecated
*/
+inputEncoding: string;
lastModified: string;
links: HTMLCollection<HTMLLinkElement>;
media: string;
open(url?: string, name?: string, features?: string, replace?: boolean): any;
readyState: string;
referrer: string;
scripts: HTMLCollection<HTMLScriptElement>;
scrollingElement: HTMLElement | null;
title: string;
visibilityState: 'visible' | 'hidden' | 'prerender' | 'unloaded';
write(...content: Array<string | TrustedHTML>): void;
writeln(...content: Array<string | TrustedHTML>): void;
xmlEncoding: string;
xmlStandalone: boolean;
xmlVersion: string;
registerElement(type: string, options?: ElementRegistrationOptions): any;
getSelection(): Selection | null;
// 6.4.6 Focus management APIs
activeElement: HTMLElement | null;
hasFocus(): boolean;
// extension
location: Location;
createEvent(eventInterface: 'CustomEvent'): CustomEvent;
createEvent(eventInterface: string): Event;
createRange(): Range;
elementFromPoint(x: number, y: number): HTMLElement | null;
elementsFromPoint(x: number, y: number): Array<HTMLElement>;
defaultView: any;
+compatMode: 'BackCompat' | 'CSS1Compat';
hidden: boolean;
// Pointer Lock specification
exitPointerLock(): void;
pointerLockElement: Element | null;
// from ParentNode interface
childElementCount: number;
children: HTMLCollection<HTMLElement>;
firstElementChild: ?Element;
lastElementChild: ?Element;
append(...nodes: Array<string | Node>): void;
prepend(...nodes: Array<string | Node>): void;
querySelector(selector: 'a'): HTMLAnchorElement | null;
querySelector(selector: 'area'): HTMLAreaElement | null;
querySelector(selector: 'audio'): HTMLAudioElement | null;
querySelector(selector: 'blockquote'): HTMLQuoteElement | null;
querySelector(selector: 'body'): HTMLBodyElement | null;
querySelector(selector: 'br'): HTMLBRElement | null;
querySelector(selector: 'button'): HTMLButtonElement | null;
querySelector(selector: 'canvas'): HTMLCanvasElement | null;
querySelector(selector: 'col'): HTMLTableColElement | null;
querySelector(selector: 'colgroup'): HTMLTableColElement | null;
querySelector(selector: 'data'): HTMLDataElement | null;
querySelector(selector: 'datalist'): HTMLDataListElement | null;
querySelector(selector: 'del'): HTMLModElement | null;
querySelector(selector: 'details'): HTMLDetailsElement | null;
querySelector(selector: 'dialog'): HTMLDialogElement | null;
querySelector(selector: 'div'): HTMLDivElement | null;
querySelector(selector: 'dl'): HTMLDListElement | null;
querySelector(selector: 'embed'): HTMLEmbedElement | null;
querySelector(selector: 'fieldset'): HTMLFieldSetElement | null;
querySelector(selector: 'form'): HTMLFormElement | null;
querySelector(
selector: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
): HTMLHeadingElement;
querySelector(selector: 'head'): HTMLHeadElement | null;
querySelector(selector: 'hr'): HTMLHRElement | null;
querySelector(selector: 'html'): HTMLHtmlElement | null;
querySelector(selector: 'iframe'): HTMLIFrameElement | null;
querySelector(selector: 'img'): HTMLImageElement | null;
querySelector(selector: 'ins'): HTMLModElement | null;
querySelector(selector: 'input'): HTMLInputElement | null;
querySelector(selector: 'label'): HTMLLabelElement | null;
querySelector(selector: 'legend'): HTMLLegendElement | null;
querySelector(selector: 'li'): HTMLLIElement | null;
querySelector(selector: 'link'): HTMLLinkElement | null;
querySelector(selector: 'map'): HTMLMapElement | null;
querySelector(selector: 'meta'): HTMLMetaElement | null;
querySelector(selector: 'meter'): HTMLMeterElement | null;
querySelector(selector: 'object'): HTMLObjectElement | null;
querySelector(selector: 'ol'): HTMLOListElement | null;
querySelector(selector: 'option'): HTMLOptionElement | null;
querySelector(selector: 'optgroup'): HTMLOptGroupElement | null;
querySelector(selector: 'p'): HTMLParagraphElement | null;
querySelector(selector: 'param'): HTMLParamElement | null;
querySelector(selector: 'picture'): HTMLPictureElement | null;
querySelector(selector: 'pre'): HTMLPreElement | null;
querySelector(selector: 'progress'): HTMLProgressElement | null;
querySelector(selector: 'q'): HTMLQuoteElement | null;
querySelector(selector: 'script'): HTMLScriptElement | null;
querySelector(selector: 'select'): HTMLSelectElement | null;
querySelector(selector: 'source'): HTMLSourceElement | null;
querySelector(selector: 'span'): HTMLSpanElement | null;
querySelector(selector: 'style'): HTMLStyleElement | null;
querySelector(selector: 'textarea'): HTMLTextAreaElement | null;
querySelector(selector: 'time'): HTMLTimeElement | null;
querySelector(selector: 'title'): HTMLTitleElement | null;
querySelector(selector: 'track'): HTMLTrackElement | null;
querySelector(selector: 'video'): HTMLVideoElement | null;
querySelector(selector: 'table'): HTMLTableElement | null;
querySelector(selector: 'caption'): HTMLTableCaptionElement | null;
querySelector(
selector: 'thead' | 'tfoot' | 'tbody',
): HTMLTableSectionElement | null;
querySelector(selector: 'tr'): HTMLTableRowElement | null;
querySelector(selector: 'td' | 'th'): HTMLTableCellElement | null;
querySelector(selector: 'template'): HTMLTemplateElement | null;
querySelector(selector: 'ul'): HTMLUListElement | null;
querySelector(selector: string): HTMLElement | null;
querySelectorAll(selector: 'a'): NodeList<HTMLAnchorElement>;
querySelectorAll(selector: 'area'): NodeList<HTMLAreaElement>;
querySelectorAll(selector: 'audio'): NodeList<HTMLAudioElement>;
querySelectorAll(selector: 'blockquote'): NodeList<HTMLQuoteElement>;
querySelectorAll(selector: 'body'): NodeList<HTMLBodyElement>;
querySelectorAll(selector: 'br'): NodeList<HTMLBRElement>;
querySelectorAll(selector: 'button'): NodeList<HTMLButtonElement>;
querySelectorAll(selector: 'canvas'): NodeList<HTMLCanvasElement>;
querySelectorAll(selector: 'col'): NodeList<HTMLTableColElement>;
querySelectorAll(selector: 'colgroup'): NodeList<HTMLTableColElement>;
querySelectorAll(selector: 'data'): NodeList<HTMLDataElement>;
querySelectorAll(selector: 'datalist'): NodeList<HTMLDataListElement>;
querySelectorAll(selector: 'del'): NodeList<HTMLModElement>;
querySelectorAll(selector: 'details'): NodeList<HTMLDetailsElement>;
querySelectorAll(selector: 'dialog'): NodeList<HTMLDialogElement>;
querySelectorAll(selector: 'div'): NodeList<HTMLDivElement>;
querySelectorAll(selector: 'dl'): NodeList<HTMLDListElement>;
querySelectorAll(selector: 'embed'): NodeList<HTMLEmbedElement>;
querySelectorAll(selector: 'fieldset'): NodeList<HTMLFieldSetElement>;
querySelectorAll(selector: 'form'): NodeList<HTMLFormElement>;
querySelectorAll(
selector: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
): NodeList<HTMLHeadingElement>;
querySelectorAll(selector: 'head'): NodeList<HTMLHeadElement>;
querySelectorAll(selector: 'hr'): NodeList<HTMLHRElement>;
querySelectorAll(selector: 'html'): NodeList<HTMLHtmlElement>;
querySelectorAll(selector: 'iframe'): NodeList<HTMLIFrameElement>;
querySelectorAll(selector: 'img'): NodeList<HTMLImageElement>;
querySelectorAll(selector: 'input'): NodeList<HTMLInputElement>;
querySelectorAll(selector: 'ins'): NodeList<HTMLModElement>;
querySelectorAll(selector: 'label'): NodeList<HTMLLabelElement>;
querySelectorAll(selector: 'legend'): NodeList<HTMLLegendElement>;
querySelectorAll(selector: 'li'): NodeList<HTMLLIElement>;
querySelectorAll(selector: 'link'): NodeList<HTMLLinkElement>;
querySelectorAll(selector: 'map'): NodeList<HTMLMapElement>;
querySelectorAll(selector: 'meta'): NodeList<HTMLMetaElement>;
querySelectorAll(selector: 'meter'): NodeList<HTMLMeterElement>;
querySelectorAll(selector: 'object'): NodeList<HTMLObjectElement>;
querySelectorAll(selector: 'ol'): NodeList<HTMLOListElement>;
querySelectorAll(selector: 'option'): NodeList<HTMLOptionElement>;
querySelectorAll(selector: 'optgroup'): NodeList<HTMLOptGroupElement>;
querySelectorAll(selector: 'p'): NodeList<HTMLParagraphElement>;
querySelectorAll(selector: 'param'): NodeList<HTMLParamElement>;
querySelectorAll(selector: 'picture'): NodeList<HTMLPictureElement>;
querySelectorAll(selector: 'pre'): NodeList<HTMLPreElement>;
querySelectorAll(selector: 'progress'): NodeList<HTMLProgressElement>;
querySelectorAll(selector: 'q'): NodeList<HTMLQuoteElement>;
querySelectorAll(selector: 'script'): NodeList<HTMLScriptElement>;
querySelectorAll(selector: 'select'): NodeList<HTMLSelectElement>;
querySelectorAll(selector: 'source'): NodeList<HTMLSourceElement>;
querySelectorAll(selector: 'span'): NodeList<HTMLSpanElement>;
querySelectorAll(selector: 'style'): NodeList<HTMLStyleElement>;
querySelectorAll(selector: 'textarea'): NodeList<HTMLTextAreaElement>;
querySelectorAll(selector: 'time'): NodeList<HTMLTimeElement>;
querySelectorAll(selector: 'title'): NodeList<HTMLTitleElement>;
querySelectorAll(selector: 'track'): NodeList<HTMLTrackElement>;
querySelectorAll(selector: 'video'): NodeList<HTMLVideoElement>;
querySelectorAll(selector: 'table'): NodeList<HTMLTableElement>;
querySelectorAll(selector: 'caption'): NodeList<HTMLTableCaptionElement>;
querySelectorAll(
selector: 'thead' | 'tfoot' | 'tbody',
): NodeList<HTMLTableSectionElement>;
querySelectorAll(selector: 'tr'): NodeList<HTMLTableRowElement>;
querySelectorAll(selector: 'td' | 'th'): NodeList<HTMLTableCellElement>;
querySelectorAll(selector: 'template'): NodeList<HTMLTemplateElement>;
querySelectorAll(selector: 'ul'): NodeList<HTMLUListElement>;
querySelectorAll(selector: string): NodeList<HTMLElement>;
// Interface DocumentTraversal
// http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/traversal.html#Traversal-Document
// Not all combinations of RootNodeT and whatToShow are logically possible.
// The bitmasks NodeFilter.SHOW_CDATA_SECTION,
// NodeFilter.SHOW_ENTITY_REFERENCE, NodeFilter.SHOW_ENTITY, and
// NodeFilter.SHOW_NOTATION are deprecated and do not correspond to types
// that Flow knows about.
// NodeFilter.SHOW_ATTRIBUTE is also deprecated, but corresponds to the
// type Attr. While there is no reason to prefer it to Node.attributes,
// it does have meaning and can be typed: When (whatToShow &
// NodeFilter.SHOW_ATTRIBUTE === 1), RootNodeT must be Attr, and when
// RootNodeT is Attr, bitmasks other than NodeFilter.SHOW_ATTRIBUTE are
// meaningless.
createNodeIterator<RootNodeT: Attr>(
root: RootNodeT,
whatToShow: 2,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Attr>;
createTreeWalker<RootNodeT: Attr>(
root: RootNodeT,
whatToShow: 2,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Attr>;
// NodeFilter.SHOW_PROCESSING_INSTRUCTION is not implemented because Flow
// does not currently define a ProcessingInstruction class.
// When (whatToShow & NodeFilter.SHOW_DOCUMENT === 1 || whatToShow &
// NodeFilter.SHOW_DOCUMENT_TYPE === 1), RootNodeT must be Document.
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 256,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Document>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 257,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Document | Element>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 260,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Document | Text>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 261,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Document | Element | Text>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 384,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Document | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 385,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Document | Element | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 388,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Document | Text | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 389,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Document | Element | Text | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 512,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 513,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Element>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 516,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Text>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 517,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Element | Text>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 640,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 641,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Element | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 644,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Text | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 645,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Element | Text | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 768,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Document>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 769,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Document | Element>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 772,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Document | Text>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 773,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Document | Element | Text>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 896,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Document | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 897,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Document | Element | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 900,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentType | Document | Text | Comment>;
createNodeIterator<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 901,
filter?: NodeFilterInterface,
): NodeIterator<
RootNodeT,
DocumentType | Document | Element | Text | Comment,
>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 256,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Document>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 257,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Document | Element>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 260,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Document | Text>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 261,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Document | Element | Text>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 384,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Document | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 385,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Document | Element | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 388,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Document | Text | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 389,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Document | Element | Text | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 512,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 513,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Element>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 516,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Text>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 517,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Element | Text>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 640,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 641,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Element | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 644,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Text | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 645,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Element | Text | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 768,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Document>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 769,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Document | Element>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 772,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Document | Text>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 773,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Document | Element | Text>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 896,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Document | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 897,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Document | Element | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 900,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Document | Text | Comment>;
createTreeWalker<RootNodeT: Document>(
root: RootNodeT,
whatToShow: 901,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentType | Document | Element | Text | Comment>;
// When (whatToShow & NodeFilter.SHOW_DOCUMENT_FRAGMENT === 1), RootNodeT
// must be a DocumentFragment.
createNodeIterator<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1024,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentFragment>;
createNodeIterator<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1025,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentFragment | Element>;
createNodeIterator<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1028,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentFragment | Text>;
createNodeIterator<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1029,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentFragment | Element | Text>;
createNodeIterator<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1152,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentFragment | Comment>;
createNodeIterator<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1153,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentFragment | Element | Comment>;
createNodeIterator<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1156,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentFragment | Text | Comment>;
createNodeIterator<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1157,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, DocumentFragment | Element | Text | Comment>;
createTreeWalker<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1024,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentFragment>;
createTreeWalker<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1025,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentFragment | Element>;
createTreeWalker<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1028,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentFragment | Text>;
createTreeWalker<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1029,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentFragment | Element | Text>;
createTreeWalker<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1152,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentFragment | Comment>;
createTreeWalker<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1153,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentFragment | Element | Comment>;
createTreeWalker<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1156,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentFragment | Text | Comment>;
createTreeWalker<RootNodeT: DocumentFragment>(
root: RootNodeT,
whatToShow: 1157,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, DocumentFragment | Element | Text | Comment>;
// In the general case, RootNodeT may be any Node and whatToShow may be
// NodeFilter.SHOW_ALL or any combination of NodeFilter.SHOW_ELEMENT,
// NodeFilter.SHOW_TEXT and/or NodeFilter.SHOW_COMMENT
createNodeIterator<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 1,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Element>;
createNodeIterator<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 4,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Text>;
createNodeIterator<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 5,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Element | Text>;
createNodeIterator<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 128,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Comment>;
createNodeIterator<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 129,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Element | Comment>;
createNodeIterator<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 132,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Text | Comment>;
createNodeIterator<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 133,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Text | Element | Comment>;
createTreeWalker<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 1,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Element>;
createTreeWalker<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 4,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Text>;
createTreeWalker<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 5,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Element | Text>;
createTreeWalker<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 128,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Comment>;
createTreeWalker<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 129,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Element | Comment>;
createTreeWalker<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 132,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Text | Comment>;
createTreeWalker<RootNodeT: Node>(
root: RootNodeT,
whatToShow: 133,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Text | Element | Comment>;
// Catch all for when we don't know the value of `whatToShow`
// And for when whatToShow is not provided, it is assumed to be SHOW_ALL
createNodeIterator<RootNodeT: Node>(
root: RootNodeT,
whatToShow?: number,
filter?: NodeFilterInterface,
): NodeIterator<RootNodeT, Node>;
createTreeWalker<RootNodeT: Node>(
root: RootNodeT,
whatToShow?: number,
filter?: NodeFilterInterface,
entityReferenceExpansion?: boolean,
): TreeWalker<RootNodeT, Node>;
// From NonElementParentNode Mixin.
getElementById(elementId: string): HTMLElement | null;
// From DocumentOrShadowRoot Mixin.
+styleSheets: StyleSheetList;
adoptedStyleSheets: Array<CSSStyleSheet>;
}
declare class DocumentFragment extends Node {
// from ParentNode interface
childElementCount: number;
children: HTMLCollection<HTMLElement>;
firstElementChild: ?Element;
lastElementChild: ?Element;
append(...nodes: Array<string | Node>): void;
prepend(...nodes: Array<string | Node>): void;
querySelector(selector: string): HTMLElement | null;
querySelectorAll(selector: string): NodeList<HTMLElement>;
// From NonElementParentNode Mixin.
getElementById(elementId: string): HTMLElement | null;
}
declare class Selection {
anchorNode: Node | null;
anchorOffset: number;
focusNode: Node | null;
focusOffset: number;
isCollapsed: boolean;
rangeCount: number;
type: string;
addRange(range: Range): void;
getRangeAt(index: number): Range;
removeRange(range: Range): void;
removeAllRanges(): void;
collapse(parentNode: Node | null, offset?: number): void;
collapseToStart(): void;
collapseToEnd(): void;
containsNode(aNode: Node, aPartlyContained?: boolean): boolean;
deleteFromDocument(): void;
extend(parentNode: Node, offset?: number): void;
empty(): void;
selectAllChildren(parentNode: Node): void;
setPosition(aNode: Node | null, offset?: number): void;
setBaseAndExtent(
anchorNode: Node,
anchorOffset: number,
focusNode: Node,
focusOffset: number,
): void;
toString(): string;
}
declare class Range {
// extension
startOffset: number;
collapsed: boolean;
endOffset: number;
startContainer: Node;
endContainer: Node;
commonAncestorContainer: Node;
setStart(refNode: Node, offset: number): void;
setEndBefore(refNode: Node): void;
setStartBefore(refNode: Node): void;
selectNode(refNode: Node): void;
detach(): void;
getBoundingClientRect(): DOMRect;
toString(): string;
compareBoundaryPoints(how: number, sourceRange: Range): number;
insertNode(newNode: Node): void;
collapse(toStart: boolean): void;
selectNodeContents(refNode: Node): void;
cloneContents(): DocumentFragment;
setEnd(refNode: Node, offset: number): void;
cloneRange(): Range;
getClientRects(): DOMRectList;
surroundContents(newParent: Node): void;
deleteContents(): void;
setStartAfter(refNode: Node): void;
extractContents(): DocumentFragment;
setEndAfter(refNode: Node): void;
createContextualFragment(fragment: string | TrustedHTML): DocumentFragment;
intersectsNode(refNode: Node): boolean;
isPointInRange(refNode: Node, offset: number): boolean;
static END_TO_END: number;
static START_TO_START: number;
static START_TO_END: number;
static END_TO_START: number;
}
declare var document: Document;
// TODO: HTMLDocument
type FocusOptions = {preventScroll?: boolean, ...};
declare class DOMTokenList {
@@iterator(): Iterator<string>;
length: number;
item(index: number): string;
contains(token: string): boolean;
add(...token: Array<string>): void;
remove(...token: Array<string>): void;
toggle(token: string, force?: boolean): boolean;
replace(oldToken: string, newToken: string): boolean;
forEach(
callbackfn: (value: string, index: number, list: DOMTokenList) => any,
thisArg?: any,
): void;
entries(): Iterator<[number, string]>;
keys(): Iterator<number>;
values(): Iterator<string>;
[index: number]: string;
}
declare class Element extends Node implements Animatable {
animate(
keyframes: Keyframe[] | PropertyIndexedKeyframes | null,
options?: number | KeyframeAnimationOptions,
): Animation;
getAnimations(options?: GetAnimationsOptions): Animation[];
assignedSlot: ?HTMLSlotElement;
attachShadow(shadowRootInitDict: ShadowRootInit): ShadowRoot;
attributes: NamedNodeMap;
classList: DOMTokenList;
className: string;
clientHeight: number;
clientLeft: number;
clientTop: number;
clientWidth: number;
id: string;
// flowlint unsafe-getters-setters:off
get innerHTML(): string;
set innerHTML(value: string | TrustedHTML): void;
// flowlint unsafe-getters-setters:error
localName: string;
namespaceURI: ?string;
nextElementSibling: ?Element;
// flowlint unsafe-getters-setters:off
get outerHTML(): string;
set outerHTML(value: string | TrustedHTML): void;
// flowlint unsafe-getters-setters:error
prefix: string | null;
previousElementSibling: ?Element;
scrollHeight: number;
scrollLeft: number;
scrollTop: number;
scrollWidth: number;
+tagName: string;
// TODO: a lot more ARIA properties
ariaHidden: void | 'true' | 'false';
closest(selectors: string): ?Element;
getAttribute(name?: string): ?string;
getAttributeNames(): Array<string>;
getAttributeNS(namespaceURI: string | null, localName: string): string | null;
getAttributeNode(name: string): Attr | null;
getAttributeNodeNS(
namespaceURI: string | null,
localName: string,
): Attr | null;
getBoundingClientRect(): DOMRect;
getClientRects(): DOMRectList;
getElementsByClassName(names: string): HTMLCollection<HTMLElement>;
getElementsByTagName(name: 'a'): HTMLCollection<HTMLAnchorElement>;
getElementsByTagName(name: 'audio'): HTMLCollection<HTMLAudioElement>;
getElementsByTagName(name: 'br'): HTMLCollection<HTMLBRElement>;
getElementsByTagName(name: 'button'): HTMLCollection<HTMLButtonElement>;
getElementsByTagName(name: 'canvas'): HTMLCollection<HTMLCanvasElement>;
getElementsByTagName(name: 'col'): HTMLCollection<HTMLTableColElement>;
getElementsByTagName(name: 'colgroup'): HTMLCollection<HTMLTableColElement>;
getElementsByTagName(name: 'data'): HTMLCollection<HTMLDataElement>;
getElementsByTagName(name: 'datalist'): HTMLCollection<HTMLDataElement>;
getElementsByTagName(name: 'del'): HTMLCollection<HTMLModElement>;
getElementsByTagName(name: 'details'): HTMLCollection<HTMLDetailsElement>;
getElementsByTagName(name: 'dialog'): HTMLCollection<HTMLDialogElement>;
getElementsByTagName(name: 'div'): HTMLCollection<HTMLDivElement>;
getElementsByTagName(name: 'dl'): HTMLCollection<HTMLDListElement>;
getElementsByTagName(name: 'fieldset'): HTMLCollection<HTMLFieldSetElement>;
getElementsByTagName(name: 'form'): HTMLCollection<HTMLFormElement>;
getElementsByTagName(
name: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
): HTMLCollection<HTMLHeadingElement>;
getElementsByTagName(name: 'head'): HTMLCollection<HTMLHeadElement>;
getElementsByTagName(name: 'hr'): HTMLCollection<HTMLHRElement>;
getElementsByTagName(name: 'iframe'): HTMLCollection<HTMLIFrameElement>;
getElementsByTagName(name: 'img'): HTMLCollection<HTMLImageElement>;
getElementsByTagName(name: 'input'): HTMLCollection<HTMLInputElement>;
getElementsByTagName(name: 'ins'): HTMLCollection<HTMLModElement>;
getElementsByTagName(name: 'label'): HTMLCollection<HTMLLabelElement>;
getElementsByTagName(name: 'legend'): HTMLCollection<HTMLLegendElement>;
getElementsByTagName(name: 'li'): HTMLCollection<HTMLLIElement>;
getElementsByTagName(name: 'link'): HTMLCollection<HTMLLinkElement>;
getElementsByTagName(name: 'meta'): HTMLCollection<HTMLMetaElement>;
getElementsByTagName(name: 'meter'): HTMLCollection<HTMLMeterElement>;
getElementsByTagName(name: 'object'): HTMLCollection<HTMLObjectElement>;
getElementsByTagName(name: 'ol'): HTMLCollection<HTMLOListElement>;
getElementsByTagName(name: 'option'): HTMLCollection<HTMLOptionElement>;
getElementsByTagName(name: 'optgroup'): HTMLCollection<HTMLOptGroupElement>;
getElementsByTagName(name: 'p'): HTMLCollection<HTMLParagraphElement>;
getElementsByTagName(name: 'param'): HTMLCollection<HTMLParamElement>;
getElementsByTagName(name: 'picture'): HTMLCollection<HTMLPictureElement>;
getElementsByTagName(name: 'pre'): HTMLCollection<HTMLPreElement>;
getElementsByTagName(name: 'progress'): HTMLCollection<HTMLProgressElement>;
getElementsByTagName(name: 'script'): HTMLCollection<HTMLScriptElement>;
getElementsByTagName(name: 'select'): HTMLCollection<HTMLSelectElement>;
getElementsByTagName(name: 'source'): HTMLCollection<HTMLSourceElement>;
getElementsByTagName(name: 'span'): HTMLCollection<HTMLSpanElement>;
getElementsByTagName(name: 'style'): HTMLCollection<HTMLStyleElement>;
getElementsByTagName(name: 'textarea'): HTMLCollection<HTMLTextAreaElement>;
getElementsByTagName(name: 'video'): HTMLCollection<HTMLVideoElement>;
getElementsByTagName(name: 'table'): HTMLCollection<HTMLTableElement>;
getElementsByTagName(name: 'title'): HTMLCollection<HTMLTitleElement>;
getElementsByTagName(
name: 'caption',
): HTMLCollection<HTMLTableCaptionElement>;
getElementsByTagName(
name: 'thead' | 'tfoot' | 'tbody',
): HTMLCollection<HTMLTableSectionElement>;
getElementsByTagName(name: 'tr'): HTMLCollection<HTMLTableRowElement>;
getElementsByTagName(name: 'td' | 'th'): HTMLCollection<HTMLTableCellElement>;
getElementsByTagName(name: 'template'): HTMLCollection<HTMLTemplateElement>;
getElementsByTagName(name: 'ul'): HTMLCollection<HTMLUListElement>;
getElementsByTagName(name: string): HTMLCollection<HTMLElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'a',
): HTMLCollection<HTMLAnchorElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'audio',
): HTMLCollection<HTMLAudioElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'br',
): HTMLCollection<HTMLBRElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'button',
): HTMLCollection<HTMLButtonElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'canvas',
): HTMLCollection<HTMLCanvasElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'col',
): HTMLCollection<HTMLTableColElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'colgroup',
): HTMLCollection<HTMLTableColElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'data',
): HTMLCollection<HTMLDataElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'datalist',
): HTMLCollection<HTMLDataListElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'del',
): HTMLCollection<HTMLModElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'details',
): HTMLCollection<HTMLDetailsElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'dialog',
): HTMLCollection<HTMLDialogElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'div',
): HTMLCollection<HTMLDivElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'dl',
): HTMLCollection<HTMLDListElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'fieldset',
): HTMLCollection<HTMLFieldSetElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'form',
): HTMLCollection<HTMLFormElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
): HTMLCollection<HTMLHeadingElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'head',
): HTMLCollection<HTMLHeadElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'hr',
): HTMLCollection<HTMLHRElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'iframe',
): HTMLCollection<HTMLIFrameElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'img',
): HTMLCollection<HTMLImageElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'input',
): HTMLCollection<HTMLInputElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'ins',
): HTMLCollection<HTMLModElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'label',
): HTMLCollection<HTMLLabelElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'legend',
): HTMLCollection<HTMLLegendElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'li',
): HTMLCollection<HTMLLIElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'link',
): HTMLCollection<HTMLLinkElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'meta',
): HTMLCollection<HTMLMetaElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'meter',
): HTMLCollection<HTMLMeterElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'object',
): HTMLCollection<HTMLObjectElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'ol',
): HTMLCollection<HTMLOListElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'option',
): HTMLCollection<HTMLOptionElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'optgroup',
): HTMLCollection<HTMLOptGroupElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'p',
): HTMLCollection<HTMLParagraphElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'param',
): HTMLCollection<HTMLParamElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'picture',
): HTMLCollection<HTMLPictureElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'pre',
): HTMLCollection<HTMLPreElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'progress',
): HTMLCollection<HTMLProgressElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'script',
): HTMLCollection<HTMLScriptElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'select',
): HTMLCollection<HTMLSelectElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'source',
): HTMLCollection<HTMLSourceElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'span',
): HTMLCollection<HTMLSpanElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'style',
): HTMLCollection<HTMLStyleElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'textarea',
): HTMLCollection<HTMLTextAreaElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'video',
): HTMLCollection<HTMLVideoElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'table',
): HTMLCollection<HTMLTableElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'title',
): HTMLCollection<HTMLTitleElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'caption',
): HTMLCollection<HTMLTableCaptionElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'thead' | 'tfoot' | 'tbody',
): HTMLCollection<HTMLTableSectionElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'tr',
): HTMLCollection<HTMLTableRowElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'td' | 'th',
): HTMLCollection<HTMLTableCellElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'template',
): HTMLCollection<HTMLTemplateElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: 'ul',
): HTMLCollection<HTMLUListElement>;
getElementsByTagNameNS(
namespaceURI: string | null,
localName: string,
): HTMLCollection<HTMLElement>;
hasAttribute(name: string): boolean;
hasAttributeNS(namespaceURI: string | null, localName: string): boolean;
hasAttributes(): boolean;
hasPointerCapture(pointerId: number): boolean;
insertAdjacentElement(
position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend',
element: Element,
): void;
insertAdjacentHTML(
position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend',
html: string | TrustedHTML,
): void;
insertAdjacentText(
position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend',
text: string,
): void;
matches(selector: string): boolean;
releasePointerCapture(pointerId: number): void;
removeAttribute(name?: string): void;
removeAttributeNode(attributeNode: Attr): Attr;
removeAttributeNS(namespaceURI: string | null, localName: string): void;
requestFullscreen(options?: {
navigationUI: 'auto' | 'show' | 'hide',
...
}): Promise<void>;
requestPointerLock(): void;
scrollIntoView(
arg?:
| boolean
| {
behavior?: 'auto' | 'instant' | 'smooth',
block?: 'start' | 'center' | 'end' | 'nearest',
inline?: 'start' | 'center' | 'end' | 'nearest',
...
},
): void;
scroll(x: number, y: number): void;
scroll(options: ScrollToOptions): void;
scrollTo(x: number, y: number): void;
scrollTo(options: ScrollToOptions): void;
scrollBy(x: number, y: number): void;
scrollBy(options: ScrollToOptions): void;
setAttribute(name?: string, value?: string): void;
toggleAttribute(name?: string, force?: boolean): void;
setAttributeNS(
namespaceURI: string | null,
qualifiedName: string,
value: string,
): void;
setAttributeNode(newAttr: Attr): Attr | null;
setAttributeNodeNS(newAttr: Attr): Attr | null;
setPointerCapture(pointerId: number): void;
shadowRoot?: ShadowRoot;
slot?: string;
// from ParentNode interface
childElementCount: number;
children: HTMLCollection<HTMLElement>;
firstElementChild: ?Element;
lastElementChild: ?Element;
append(...nodes: Array<string | Node>): void;
prepend(...nodes: Array<string | Node>): void;
querySelector(selector: 'a'): HTMLAnchorElement | null;
querySelector(selector: 'area'): HTMLAreaElement | null;
querySelector(selector: 'audio'): HTMLAudioElement | null;
querySelector(selector: 'blockquote'): HTMLQuoteElement | null;
querySelector(selector: 'body'): HTMLBodyElement | null;
querySelector(selector: 'br'): HTMLBRElement | null;
querySelector(selector: 'button'): HTMLButtonElement | null;
querySelector(selector: 'canvas'): HTMLCanvasElement | null;
querySelector(selector: 'col'): HTMLTableColElement | null;
querySelector(selector: 'colgroup'): HTMLTableColElement | null;
querySelector(selector: 'data'): HTMLDataElement | null;
querySelector(selector: 'datalist'): HTMLDataListElement | null;
querySelector(selector: 'del'): HTMLModElement | null;
querySelector(selector: 'details'): HTMLDetailsElement | null;
querySelector(selector: 'dialog'): HTMLDialogElement | null;
querySelector(selector: 'div'): HTMLDivElement | null;
querySelector(selector: 'dl'): HTMLDListElement | null;
querySelector(selector: 'embed'): HTMLEmbedElement | null;
querySelector(selector: 'fieldset'): HTMLFieldSetElement | null;
querySelector(selector: 'form'): HTMLFormElement | null;
querySelector(
selector: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
): HTMLHeadingElement;
querySelector(selector: 'head'): HTMLHeadElement | null;
querySelector(selector: 'hr'): HTMLHRElement | null;
querySelector(selector: 'html'): HTMLHtmlElement | null;
querySelector(selector: 'iframe'): HTMLIFrameElement | null;
querySelector(selector: 'img'): HTMLImageElement | null;
querySelector(selector: 'ins'): HTMLModElement | null;
querySelector(selector: 'input'): HTMLInputElement | null;
querySelector(selector: 'label'): HTMLLabelElement | null;
querySelector(selector: 'legend'): HTMLLegendElement | null;
querySelector(selector: 'li'): HTMLLIElement | null;
querySelector(selector: 'link'): HTMLLinkElement | null;
querySelector(selector: 'map'): HTMLMapElement | null;
querySelector(selector: 'meta'): HTMLMetaElement | null;
querySelector(selector: 'meter'): HTMLMeterElement | null;
querySelector(selector: 'object'): HTMLObjectElement | null;
querySelector(selector: 'ol'): HTMLOListElement | null;
querySelector(selector: 'option'): HTMLOptionElement | null;
querySelector(selector: 'optgroup'): HTMLOptGroupElement | null;
querySelector(selector: 'p'): HTMLParagraphElement | null;
querySelector(selector: 'param'): HTMLParamElement | null;
querySelector(selector: 'picture'): HTMLPictureElement | null;
querySelector(selector: 'pre'): HTMLPreElement | null;
querySelector(selector: 'progress'): HTMLProgressElement | null;
querySelector(selector: 'q'): HTMLQuoteElement | null;
querySelector(selector: 'script'): HTMLScriptElement | null;
querySelector(selector: 'select'): HTMLSelectElement | null;
querySelector(selector: 'source'): HTMLSourceElement | null;
querySelector(selector: 'span'): HTMLSpanElement | null;
querySelector(selector: 'style'): HTMLStyleElement | null;
querySelector(selector: 'textarea'): HTMLTextAreaElement | null;
querySelector(selector: 'time'): HTMLTimeElement | null;
querySelector(selector: 'title'): HTMLTitleElement | null;
querySelector(selector: 'track'): HTMLTrackElement | null;
querySelector(selector: 'video'): HTMLVideoElement | null;
querySelector(selector: 'table'): HTMLTableElement | null;
querySelector(selector: 'caption'): HTMLTableCaptionElement | null;
querySelector(
selector: 'thead' | 'tfoot' | 'tbody',
): HTMLTableSectionElement | null;
querySelector(selector: 'tr'): HTMLTableRowElement | null;
querySelector(selector: 'td' | 'th'): HTMLTableCellElement | null;
querySelector(selector: 'template'): HTMLTemplateElement | null;
querySelector(selector: 'ul'): HTMLUListElement | null;
querySelector(selector: string): HTMLElement | null;
querySelectorAll(selector: 'a'): NodeList<HTMLAnchorElement>;
querySelectorAll(selector: 'area'): NodeList<HTMLAreaElement>;
querySelectorAll(selector: 'audio'): NodeList<HTMLAudioElement>;
querySelectorAll(selector: 'blockquote'): NodeList<HTMLQuoteElement>;
querySelectorAll(selector: 'body'): NodeList<HTMLBodyElement>;
querySelectorAll(selector: 'br'): NodeList<HTMLBRElement>;
querySelectorAll(selector: 'button'): NodeList<HTMLButtonElement>;
querySelectorAll(selector: 'canvas'): NodeList<HTMLCanvasElement>;
querySelectorAll(selector: 'col'): NodeList<HTMLTableColElement>;
querySelectorAll(selector: 'colgroup'): NodeList<HTMLTableColElement>;
querySelectorAll(selector: 'data'): NodeList<HTMLDataElement>;
querySelectorAll(selector: 'datalist'): NodeList<HTMLDataListElement>;
querySelectorAll(selector: 'del'): NodeList<HTMLModElement>;
querySelectorAll(selector: 'details'): NodeList<HTMLDetailsElement>;
querySelectorAll(selector: 'dialog'): NodeList<HTMLDialogElement>;
querySelectorAll(selector: 'div'): NodeList<HTMLDivElement>;
querySelectorAll(selector: 'dl'): NodeList<HTMLDListElement>;
querySelectorAll(selector: 'embed'): NodeList<HTMLEmbedElement>;
querySelectorAll(selector: 'fieldset'): NodeList<HTMLFieldSetElement>;
querySelectorAll(selector: 'form'): NodeList<HTMLFormElement>;
querySelectorAll(
selector: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
): NodeList<HTMLHeadingElement>;
querySelectorAll(selector: 'head'): NodeList<HTMLHeadElement>;
querySelectorAll(selector: 'hr'): NodeList<HTMLHRElement>;
querySelectorAll(selector: 'html'): NodeList<HTMLHtmlElement>;
querySelectorAll(selector: 'iframe'): NodeList<HTMLIFrameElement>;
querySelectorAll(selector: 'img'): NodeList<HTMLImageElement>;
querySelectorAll(selector: 'input'): NodeList<HTMLInputElement>;
querySelectorAll(selector: 'ins'): NodeList<HTMLModElement>;
querySelectorAll(selector: 'label'): NodeList<HTMLLabelElement>;
querySelectorAll(selector: 'legend'): NodeList<HTMLLegendElement>;
querySelectorAll(selector: 'li'): NodeList<HTMLLIElement>;
querySelectorAll(selector: 'link'): NodeList<HTMLLinkElement>;
querySelectorAll(selector: 'map'): NodeList<HTMLMapElement>;
querySelectorAll(selector: 'meta'): NodeList<HTMLMetaElement>;
querySelectorAll(selector: 'meter'): NodeList<HTMLMeterElement>;
querySelectorAll(selector: 'object'): NodeList<HTMLObjectElement>;
querySelectorAll(selector: 'ol'): NodeList<HTMLOListElement>;
querySelectorAll(selector: 'option'): NodeList<HTMLOptionElement>;
querySelectorAll(selector: 'optgroup'): NodeList<HTMLOptGroupElement>;
querySelectorAll(selector: 'p'): NodeList<HTMLParagraphElement>;
querySelectorAll(selector: 'param'): NodeList<HTMLParamElement>;
querySelectorAll(selector: 'picture'): NodeList<HTMLPictureElement>;
querySelectorAll(selector: 'pre'): NodeList<HTMLPreElement>;
querySelectorAll(selector: 'progress'): NodeList<HTMLProgressElement>;
querySelectorAll(selector: 'q'): NodeList<HTMLQuoteElement>;
querySelectorAll(selector: 'script'): NodeList<HTMLScriptElement>;
querySelectorAll(selector: 'select'): NodeList<HTMLSelectElement>;
querySelectorAll(selector: 'source'): NodeList<HTMLSourceElement>;
querySelectorAll(selector: 'span'): NodeList<HTMLSpanElement>;
querySelectorAll(selector: 'style'): NodeList<HTMLStyleElement>;
querySelectorAll(selector: 'textarea'): NodeList<HTMLTextAreaElement>;
querySelectorAll(selector: 'time'): NodeList<HTMLTimeElement>;
querySelectorAll(selector: 'title'): NodeList<HTMLTitleElement>;
querySelectorAll(selector: 'track'): NodeList<HTMLTrackElement>;
querySelectorAll(selector: 'video'): NodeList<HTMLVideoElement>;
querySelectorAll(selector: 'table'): NodeList<HTMLTableElement>;
querySelectorAll(selector: 'caption'): NodeList<HTMLTableCaptionElement>;
querySelectorAll(
selector: 'thead' | 'tfoot' | 'tbody',
): NodeList<HTMLTableSectionElement>;
querySelectorAll(selector: 'tr'): NodeList<HTMLTableRowElement>;
querySelectorAll(selector: 'td' | 'th'): NodeList<HTMLTableCellElement>;
querySelectorAll(selector: 'template'): NodeList<HTMLTemplateElement>;
querySelectorAll(selector: 'ul'): NodeList<HTMLUListElement>;
querySelectorAll(selector: string): NodeList<HTMLElement>;
// from ChildNode interface
after(...nodes: Array<string | Node>): void;
before(...nodes: Array<string | Node>): void;
replaceWith(...nodes: Array<string | Node>): void;
remove(): void;
}
declare class HTMLElement extends Element {
blur(): void;
click(): void;
focus(options?: FocusOptions): void;
getBoundingClientRect(): DOMRect;
forceSpellcheck(): void;
accessKey: string;
accessKeyLabel: string;
contentEditable: string;
contextMenu: ?HTMLMenuElement;
dataset: DOMStringMap;
dir: 'ltr' | 'rtl' | 'auto';
draggable: boolean;
dropzone: any;
hidden: boolean;
inert: boolean;
isContentEditable: boolean;
itemProp: any;
itemScope: boolean;
itemType: any;
itemValue: Object;
lang: string;
offsetHeight: number;
offsetLeft: number;
offsetParent: ?Element;
offsetTop: number;
offsetWidth: number;
onabort: ?Function;
onblur: ?Function;
oncancel: ?Function;
oncanplay: ?Function;
oncanplaythrough: ?Function;
onchange: ?Function;
onclick: ?Function;
oncontextmenu: ?Function;
oncuechange: ?Function;
ondblclick: ?Function;
ondurationchange: ?Function;
onemptied: ?Function;
onended: ?Function;
onerror: ?Function;
onfocus: ?Function;
onfullscreenchange: ?Function;
onfullscreenerror: ?Function;
ongotpointercapture: ?Function;
oninput: ?Function;
oninvalid: ?Function;
onkeydown: ?Function;
onkeypress: ?Function;
onkeyup: ?Function;
onload: ?Function;
onloadeddata: ?Function;
onloadedmetadata: ?Function;
onloadstart: ?Function;
onlostpointercapture: ?Function;
onmousedown: ?Function;
onmouseenter: ?Function;
onmouseleave: ?Function;
onmousemove: ?Function;
onmouseout: ?Function;
onmouseover: ?Function;
onmouseup: ?Function;
onmousewheel: ?Function;
onpause: ?Function;
onplay: ?Function;
onplaying: ?Function;
onpointercancel: ?Function;
onpointerdown: ?Function;
onpointerenter: ?Function;
onpointerleave: ?Function;
onpointermove: ?Function;
onpointerout: ?Function;
onpointerover: ?Function;
onpointerup: ?Function;
onprogress: ?Function;
onratechange: ?Function;
onreadystatechange: ?Function;
onreset: ?Function;
onresize: ?Function;
onscroll: ?Function;
onseeked: ?Function;
onseeking: ?Function;
onselect: ?Function;
onshow: ?Function;
onstalled: ?Function;
onsubmit: ?Function;
onsuspend: ?Function;
ontimeupdate: ?Function;
ontoggle: ?Function;
onvolumechange: ?Function;
onwaiting: ?Function;
properties: any;
spellcheck: boolean;
style: CSSStyleDeclaration;
tabIndex: number;
title: string;
translate: boolean;
}
declare class HTMLSlotElement extends HTMLElement {
name: string;
assignedNodes(options?: {flatten: boolean, ...}): Node[];
}
declare class HTMLTableElement extends HTMLElement {
tagName: 'TABLE';
caption: HTMLTableCaptionElement | null;
tHead: HTMLTableSectionElement | null;
tFoot: HTMLTableSectionElement | null;
+tBodies: HTMLCollection<HTMLTableSectionElement>;
+rows: HTMLCollection<HTMLTableRowElement>;
createTHead(): HTMLTableSectionElement;
deleteTHead(): void;
createTFoot(): HTMLTableSectionElement;
deleteTFoot(): void;
createCaption(): HTMLTableCaptionElement;
deleteCaption(): void;
insertRow(index?: number): HTMLTableRowElement;
deleteRow(index: number): void;
}
declare class HTMLTableCaptionElement extends HTMLElement {
tagName: 'CAPTION';
}
declare class HTMLTableColElement extends HTMLElement {
tagName: 'COL' | 'COLGROUP';
span: number;
}
declare class HTMLTableSectionElement extends HTMLElement {
tagName: 'THEAD' | 'TFOOT' | 'TBODY';
+rows: HTMLCollection<HTMLTableRowElement>;
insertRow(index?: number): HTMLTableRowElement;
deleteRow(index: number): void;
}
declare class HTMLTableCellElement extends HTMLElement {
tagName: 'TD' | 'TH';
colSpan: number;
rowSpan: number;
+cellIndex: number;
}
declare class HTMLTableRowElement extends HTMLElement {
tagName: 'TR';
align: 'left' | 'right' | 'center';
+rowIndex: number;
+sectionRowIndex: number;
+cells: HTMLCollection<HTMLTableCellElement>;
deleteCell(index: number): void;
insertCell(index?: number): HTMLTableCellElement;
}
declare class HTMLMenuElement extends HTMLElement {
getCompact(): boolean;
setCompact(compact: boolean): void;
}
declare class HTMLBaseElement extends HTMLElement {
href: string;
target: string;
}
declare class HTMLTemplateElement extends HTMLElement {
content: DocumentFragment;
}
declare class CanvasGradient {
addColorStop(offset: number, color: string): void;
}
declare class CanvasPattern {
setTransform(matrix: SVGMatrix): void;
}
declare class ImageBitmap {
close(): void;
width: number;
height: number;
}
type CanvasFillRule = string;
type CanvasImageSource =
| HTMLImageElement
| HTMLVideoElement
| HTMLCanvasElement
| CanvasRenderingContext2D
| ImageBitmap;
declare class HitRegionOptions {
path?: Path2D;
fillRule?: CanvasFillRule;
id?: string;
parentID?: string;
cursor?: string;
control?: Element;
label: ?string;
role: ?string;
}
declare class CanvasDrawingStyles {
lineWidth: number;
lineCap: string;
lineJoin: string;
miterLimit: number;
// dashed lines
setLineDash(segments: Array<number>): void;
getLineDash(): Array<number>;
lineDashOffset: number;
// text
font: string;
textAlign: string;
textBaseline: string;
direction: string;
}
declare class SVGMatrix {
getComponent(index: number): number;
mMultiply(secondMatrix: SVGMatrix): SVGMatrix;
inverse(): SVGMatrix;
mTranslate(x: number, y: number): SVGMatrix;
mScale(scaleFactor: number): SVGMatrix;
mRotate(angle: number): SVGMatrix;
}
declare class TextMetrics {
// x-direction
width: number;
actualBoundingBoxLeft: number;
actualBoundingBoxRight: number;
// y-direction
fontBoundingBoxAscent: number;
fontBoundingBoxDescent: number;
actualBoundingBoxAscent: number;
actualBoundingBoxDescent: number;
emHeightAscent: number;
emHeightDescent: number;
hangingBaseline: number;
alphabeticBaseline: number;
ideographicBaseline: number;
}
declare class Path2D {
constructor(path?: Path2D | string): void;
addPath(path: Path2D, transformation?: ?SVGMatrix): void;
addPathByStrokingPath(
path: Path2D,
styles: CanvasDrawingStyles,
transformation?: ?SVGMatrix,
): void;
addText(
text: string,
styles: CanvasDrawingStyles,
transformation: ?SVGMatrix,
x: number,
y: number,
maxWidth?: number,
): void;
addPathByStrokingText(
text: string,
styles: CanvasDrawingStyles,
transformation: ?SVGMatrix,
x: number,
y: number,
maxWidth?: number,
): void;
addText(
text: string,
styles: CanvasDrawingStyles,
transformation: ?SVGMatrix,
path: Path2D,
maxWidth?: number,
): void;
addPathByStrokingText(
text: string,
styles: CanvasDrawingStyles,
transformation: ?SVGMatrix,
path: Path2D,
maxWidth?: number,
): void;
// CanvasPathMethods
// shared path API methods
arc(
x: number,
y: number,
radius: number,
startAngle: number,
endAngle: number,
anticlockwise?: boolean,
): void;
arcTo(
x1: number,
y1: number,
x2: number,
y2: number,
radius: number,
_: void,
_: void,
): void;
arcTo(
x1: number,
y1: number,
x2: number,
y2: number,
radiusX: number,
radiusY: number,
rotation: number,
): void;
bezierCurveTo(
cp1x: number,
cp1y: number,
cp2x: number,
cp2y: number,
x: number,
y: number,
): void;
closePath(): void;
ellipse(
x: number,
y: number,
radiusX: number,
radiusY: number,
rotation: number,
startAngle: number,
endAngle: number,
anticlockwise?: boolean,
): void;
lineTo(x: number, y: number): void;
moveTo(x: number, y: number): void;
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
rect(x: number, y: number, w: number, h: number): void;
}
declare class ImageData {
width: number;
height: number;
data: Uint8ClampedArray;
// constructor methods are used in Worker where CanvasRenderingContext2D
// is unavailable.
// https://html.spec.whatwg.org/multipage/scripting.html#dom-imagedata
constructor(data: Uint8ClampedArray, width: number, height: number): void;
constructor(width: number, height: number): void;
}
interface DOMPointInit {
w?: number;
x?: number;
y?: number;
z?: number;
}
declare class CanvasRenderingContext2D {
canvas: HTMLCanvasElement;
// canvas dimensions
width: number;
height: number;
// for contexts that aren't directly fixed to a specific canvas
commit(): void;
// state
save(): void;
restore(): void;
// transformations
currentTransform: SVGMatrix;
scale(x: number, y: number): void;
rotate(angle: number): void;
translate(x: number, y: number): void;
transform(
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
): void;
setTransform(
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
): void;
resetTransform(): void;
// compositing
globalAlpha: number;
globalCompositeOperation: string;
// image smoothing
imageSmoothingEnabled: boolean;
imageSmoothingQuality: 'low' | 'medium' | 'high';
// filters
filter: string;
// colours and styles
strokeStyle: string | CanvasGradient | CanvasPattern;
fillStyle: string | CanvasGradient | CanvasPattern;
createLinearGradient(
x0: number,
y0: number,
x1: number,
y1: number,
): CanvasGradient;
createRadialGradient(
x0: number,
y0: number,
r0: number,
x1: number,
y1: number,
r1: number,
): CanvasGradient;
createPattern(image: CanvasImageSource, repetition: ?string): CanvasPattern;
// shadows
shadowOffsetX: number;
shadowOffsetY: number;
shadowBlur: number;
shadowColor: string;
// rects
clearRect(x: number, y: number, w: number, h: number): void;
fillRect(x: number, y: number, w: number, h: number): void;
roundRect(
x: number,
y: number,
w: number,
h: number,
radii?: number | DOMPointInit | $ReadOnlyArray<number | DOMPointInit>,
): void;
strokeRect(x: number, y: number, w: number, h: number): void;
// path API
beginPath(): void;
fill(fillRule?: CanvasFillRule): void;
fill(path: Path2D, fillRule?: CanvasFillRule): void;
stroke(): void;
stroke(path: Path2D): void;
drawFocusIfNeeded(element: Element): void;
drawFocusIfNeeded(path: Path2D, element: Element): void;
scrollPathIntoView(): void;
scrollPathIntoView(path: Path2D): void;
clip(fillRule?: CanvasFillRule): void;
clip(path: Path2D, fillRule?: CanvasFillRule): void;
resetClip(): void;
isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
isPointInPath(
path: Path2D,
x: number,
y: number,
fillRule?: CanvasFillRule,
): boolean;
isPointInStroke(x: number, y: number): boolean;
isPointInStroke(path: Path2D, x: number, y: number): boolean;
// text (see also the CanvasDrawingStyles interface)
fillText(text: string, x: number, y: number, maxWidth?: number): void;
strokeText(text: string, x: number, y: number, maxWidth?: number): void;
measureText(text: string): TextMetrics;
// drawing images
drawImage(image: CanvasImageSource, dx: number, dy: number): void;
drawImage(
image: CanvasImageSource,
dx: number,
dy: number,
dw: number,
dh: number,
): void;
drawImage(
image: CanvasImageSource,
sx: number,
sy: number,
sw: number,
sh: number,
dx: number,
dy: number,
dw: number,
dh: number,
): void;
// hit regions
addHitRegion(options?: HitRegionOptions): void;
removeHitRegion(id: string): void;
clearHitRegions(): void;
// pixel manipulation
createImageData(sw: number, sh: number): ImageData;
createImageData(imagedata: ImageData): ImageData;
getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;
putImageData(imagedata: ImageData, dx: number, dy: number): void;
putImageData(
imagedata: ImageData,
dx: number,
dy: number,
dirtyX: number,
dirtyY: number,
dirtyWidth: number,
dirtyHeight: number,
): void;
// CanvasDrawingStyles
// line caps/joins
lineWidth: number;
lineCap: string;
lineJoin: string;
miterLimit: number;
// dashed lines
setLineDash(segments: Array<number>): void;
getLineDash(): Array<number>;
lineDashOffset: number;
// text
font: string;
textAlign: string;
textBaseline: string;
direction: string;
// CanvasPathMethods
// shared path API methods
closePath(): void;
moveTo(x: number, y: number): void;
lineTo(x: number, y: number): void;
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
bezierCurveTo(
cp1x: number,
cp1y: number,
cp2x: number,
cp2y: number,
x: number,
y: number,
): void;
arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
arcTo(
x1: number,
y1: number,
x2: number,
y2: number,
radiusX: number,
radiusY: number,
rotation: number,
): void;
rect(x: number, y: number, w: number, h: number): void;
arc(
x: number,
y: number,
radius: number,
startAngle: number,
endAngle: number,
anticlockwise?: boolean,
): void;
ellipse(
x: number,
y: number,
radiusX: number,
radiusY: number,
rotation: number,
startAngle: number,
endAngle: number,
anticlockwise?: boolean,
): void;
}
// WebGL idl: https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl
type WebGLContextAttributes = {
alpha: boolean,
depth: boolean,
stencil: boolean,
antialias: boolean,
premultipliedAlpha: boolean,
preserveDrawingBuffer: boolean,
preferLowPowerToHighPerformance: boolean,
failIfMajorPerformanceCaveat: boolean,
...
};
interface WebGLObject {}
interface WebGLBuffer extends WebGLObject {}
interface WebGLFramebuffer extends WebGLObject {}
interface WebGLProgram extends WebGLObject {}
interface WebGLRenderbuffer extends WebGLObject {}
interface WebGLShader extends WebGLObject {}
interface WebGLTexture extends WebGLObject {}
interface WebGLUniformLocation {}
interface WebGLActiveInfo {
size: number;
type: number;
name: string;
}
interface WebGLShaderPrecisionFormat {
rangeMin: number;
rangeMax: number;
precision: number;
}
type BufferDataSource = ArrayBuffer | $ArrayBufferView;
type TexImageSource =
| ImageBitmap
| ImageData
| HTMLImageElement
| HTMLCanvasElement
| HTMLVideoElement;
type VertexAttribFVSource = Float32Array | Array<number>;
/* flow */
declare class WebGLRenderingContext {
static DEPTH_BUFFER_BIT: 0x00000100;
DEPTH_BUFFER_BIT: 0x00000100;
static STENCIL_BUFFER_BIT: 0x00000400;
STENCIL_BUFFER_BIT: 0x00000400;
static COLOR_BUFFER_BIT: 0x00004000;
COLOR_BUFFER_BIT: 0x00004000;
static POINTS: 0x0000;
POINTS: 0x0000;
static LINES: 0x0001;
LINES: 0x0001;
static LINE_LOOP: 0x0002;
LINE_LOOP: 0x0002;
static LINE_STRIP: 0x0003;
LINE_STRIP: 0x0003;
static TRIANGLES: 0x0004;
TRIANGLES: 0x0004;
static TRIANGLE_STRIP: 0x0005;
TRIANGLE_STRIP: 0x0005;
static TRIANGLE_FAN: 0x0006;
TRIANGLE_FAN: 0x0006;
static ZERO: 0;
ZERO: 0;
static ONE: 1;
ONE: 1;
static SRC_COLOR: 0x0300;
SRC_COLOR: 0x0300;
static ONE_MINUS_SRC_COLOR: 0x0301;
ONE_MINUS_SRC_COLOR: 0x0301;
static SRC_ALPHA: 0x0302;
SRC_ALPHA: 0x0302;
static ONE_MINUS_SRC_ALPHA: 0x0303;
ONE_MINUS_SRC_ALPHA: 0x0303;
static DST_ALPHA: 0x0304;
DST_ALPHA: 0x0304;
static ONE_MINUS_DST_ALPHA: 0x0305;
ONE_MINUS_DST_ALPHA: 0x0305;
static DST_COLOR: 0x0306;
DST_COLOR: 0x0306;
static ONE_MINUS_DST_COLOR: 0x0307;
ONE_MINUS_DST_COLOR: 0x0307;
static SRC_ALPHA_SATURATE: 0x0308;
SRC_ALPHA_SATURATE: 0x0308;
static FUNC_ADD: 0x8006;
FUNC_ADD: 0x8006;
static BLEND_EQUATION: 0x8009;
BLEND_EQUATION: 0x8009;
static BLEND_EQUATION_RGB: 0x8009;
BLEND_EQUATION_RGB: 0x8009;
static BLEND_EQUATION_ALPHA: 0x883d;
BLEND_EQUATION_ALPHA: 0x883d;
static FUNC_SUBTRACT: 0x800a;
FUNC_SUBTRACT: 0x800a;
static FUNC_REVERSE_SUBTRACT: 0x800b;
FUNC_REVERSE_SUBTRACT: 0x800b;
static BLEND_DST_RGB: 0x80c8;
BLEND_DST_RGB: 0x80c8;
static BLEND_SRC_RGB: 0x80c9;
BLEND_SRC_RGB: 0x80c9;
static BLEND_DST_ALPHA: 0x80ca;
BLEND_DST_ALPHA: 0x80ca;
static BLEND_SRC_ALPHA: 0x80cb;
BLEND_SRC_ALPHA: 0x80cb;
static CONSTANT_COLOR: 0x8001;
CONSTANT_COLOR: 0x8001;
static ONE_MINUS_CONSTANT_COLOR: 0x8002;
ONE_MINUS_CONSTANT_COLOR: 0x8002;
static CONSTANT_ALPHA: 0x8003;
CONSTANT_ALPHA: 0x8003;
static ONE_MINUS_CONSTANT_ALPHA: 0x8004;
ONE_MINUS_CONSTANT_ALPHA: 0x8004;
static BLEND_COLOR: 0x8005;
BLEND_COLOR: 0x8005;
static ARRAY_BUFFER: 0x8892;
ARRAY_BUFFER: 0x8892;
static ELEMENT_ARRAY_BUFFER: 0x8893;
ELEMENT_ARRAY_BUFFER: 0x8893;
static ARRAY_BUFFER_BINDING: 0x8894;
ARRAY_BUFFER_BINDING: 0x8894;
static ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
static STREAM_DRAW: 0x88e0;
STREAM_DRAW: 0x88e0;
static STATIC_DRAW: 0x88e4;
STATIC_DRAW: 0x88e4;
static DYNAMIC_DRAW: 0x88e8;
DYNAMIC_DRAW: 0x88e8;
static BUFFER_SIZE: 0x8764;
BUFFER_SIZE: 0x8764;
static BUFFER_USAGE: 0x8765;
BUFFER_USAGE: 0x8765;
static CURRENT_VERTEX_ATTRIB: 0x8626;
CURRENT_VERTEX_ATTRIB: 0x8626;
static FRONT: 0x0404;
FRONT: 0x0404;
static BACK: 0x0405;
BACK: 0x0405;
static FRONT_AND_BACK: 0x0408;
FRONT_AND_BACK: 0x0408;
static CULL_FACE: 0x0b44;
CULL_FACE: 0x0b44;
static BLEND: 0x0be2;
BLEND: 0x0be2;
static DITHER: 0x0bd0;
DITHER: 0x0bd0;
static STENCIL_TEST: 0x0b90;
STENCIL_TEST: 0x0b90;
static DEPTH_TEST: 0x0b71;
DEPTH_TEST: 0x0b71;
static SCISSOR_TEST: 0x0c11;
SCISSOR_TEST: 0x0c11;
static POLYGON_OFFSET_FILL: 0x8037;
POLYGON_OFFSET_FILL: 0x8037;
static SAMPLE_ALPHA_TO_COVERAGE: 0x809e;
SAMPLE_ALPHA_TO_COVERAGE: 0x809e;
static SAMPLE_COVERAGE: 0x80a0;
SAMPLE_COVERAGE: 0x80a0;
static NO_ERROR: 0;
NO_ERROR: 0;
static INVALID_ENUM: 0x0500;
INVALID_ENUM: 0x0500;
static INVALID_VALUE: 0x0501;
INVALID_VALUE: 0x0501;
static INVALID_OPERATION: 0x0502;
INVALID_OPERATION: 0x0502;
static OUT_OF_MEMORY: 0x0505;
OUT_OF_MEMORY: 0x0505;
static CW: 0x0900;
CW: 0x0900;
static CCW: 0x0901;
CCW: 0x0901;
static LINE_WIDTH: 0x0b21;
LINE_WIDTH: 0x0b21;
static ALIASED_POINT_SIZE_RANGE: 0x846d;
ALIASED_POINT_SIZE_RANGE: 0x846d;
static ALIASED_LINE_WIDTH_RANGE: 0x846e;
ALIASED_LINE_WIDTH_RANGE: 0x846e;
static CULL_FACE_MODE: 0x0b45;
CULL_FACE_MODE: 0x0b45;
static FRONT_FACE: 0x0b46;
FRONT_FACE: 0x0b46;
static DEPTH_RANGE: 0x0b70;
DEPTH_RANGE: 0x0b70;
static DEPTH_WRITEMASK: 0x0b72;
DEPTH_WRITEMASK: 0x0b72;
static DEPTH_CLEAR_VALUE: 0x0b73;
DEPTH_CLEAR_VALUE: 0x0b73;
static DEPTH_FUNC: 0x0b74;
DEPTH_FUNC: 0x0b74;
static STENCIL_CLEAR_VALUE: 0x0b91;
STENCIL_CLEAR_VALUE: 0x0b91;
static STENCIL_FUNC: 0x0b92;
STENCIL_FUNC: 0x0b92;
static STENCIL_FAIL: 0x0b94;
STENCIL_FAIL: 0x0b94;
static STENCIL_PASS_DEPTH_FAIL: 0x0b95;
STENCIL_PASS_DEPTH_FAIL: 0x0b95;
static STENCIL_PASS_DEPTH_PASS: 0x0b96;
STENCIL_PASS_DEPTH_PASS: 0x0b96;
static STENCIL_REF: 0x0b97;
STENCIL_REF: 0x0b97;
static STENCIL_VALUE_MASK: 0x0b93;
STENCIL_VALUE_MASK: 0x0b93;
static STENCIL_WRITEMASK: 0x0b98;
STENCIL_WRITEMASK: 0x0b98;
static STENCIL_BACK_FUNC: 0x8800;
STENCIL_BACK_FUNC: 0x8800;
static STENCIL_BACK_FAIL: 0x8801;
STENCIL_BACK_FAIL: 0x8801;
static STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
static STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
static STENCIL_BACK_REF: 0x8ca3;
STENCIL_BACK_REF: 0x8ca3;
static STENCIL_BACK_VALUE_MASK: 0x8ca4;
STENCIL_BACK_VALUE_MASK: 0x8ca4;
static STENCIL_BACK_WRITEMASK: 0x8ca5;
STENCIL_BACK_WRITEMASK: 0x8ca5;
static VIEWPORT: 0x0ba2;
VIEWPORT: 0x0ba2;
static SCISSOR_BOX: 0x0c10;
SCISSOR_BOX: 0x0c10;
static COLOR_CLEAR_VALUE: 0x0c22;
COLOR_CLEAR_VALUE: 0x0c22;
static COLOR_WRITEMASK: 0x0c23;
COLOR_WRITEMASK: 0x0c23;
static UNPACK_ALIGNMENT: 0x0cf5;
UNPACK_ALIGNMENT: 0x0cf5;
static PACK_ALIGNMENT: 0x0d05;
PACK_ALIGNMENT: 0x0d05;
static MAX_TEXTURE_SIZE: 0x0d33;
MAX_TEXTURE_SIZE: 0x0d33;
static MAX_VIEWPORT_DIMS: 0x0d3a;
MAX_VIEWPORT_DIMS: 0x0d3a;
static SUBPIXEL_BITS: 0x0d50;
SUBPIXEL_BITS: 0x0d50;
static RED_BITS: 0x0d52;
RED_BITS: 0x0d52;
static GREEN_BITS: 0x0d53;
GREEN_BITS: 0x0d53;
static BLUE_BITS: 0x0d54;
BLUE_BITS: 0x0d54;
static ALPHA_BITS: 0x0d55;
ALPHA_BITS: 0x0d55;
static DEPTH_BITS: 0x0d56;
DEPTH_BITS: 0x0d56;
static STENCIL_BITS: 0x0d57;
STENCIL_BITS: 0x0d57;
static POLYGON_OFFSET_UNITS: 0x2a00;
POLYGON_OFFSET_UNITS: 0x2a00;
static POLYGON_OFFSET_FACTOR: 0x8038;
POLYGON_OFFSET_FACTOR: 0x8038;
static TEXTURE_BINDING_2D: 0x8069;
TEXTURE_BINDING_2D: 0x8069;
static SAMPLE_BUFFERS: 0x80a8;
SAMPLE_BUFFERS: 0x80a8;
static SAMPLES: 0x80a9;
SAMPLES: 0x80a9;
static SAMPLE_COVERAGE_VALUE: 0x80aa;
SAMPLE_COVERAGE_VALUE: 0x80aa;
static SAMPLE_COVERAGE_INVERT: 0x80ab;
SAMPLE_COVERAGE_INVERT: 0x80ab;
static COMPRESSED_TEXTURE_FORMATS: 0x86a3;
COMPRESSED_TEXTURE_FORMATS: 0x86a3;
static DONT_CARE: 0x1100;
DONT_CARE: 0x1100;
static FASTEST: 0x1101;
FASTEST: 0x1101;
static NICEST: 0x1102;
NICEST: 0x1102;
static GENERATE_MIPMAP_HINT: 0x8192;
GENERATE_MIPMAP_HINT: 0x8192;
static BYTE: 0x1400;
BYTE: 0x1400;
static UNSIGNED_BYTE: 0x1401;
UNSIGNED_BYTE: 0x1401;
static SHORT: 0x1402;
SHORT: 0x1402;
static UNSIGNED_SHORT: 0x1403;
UNSIGNED_SHORT: 0x1403;
static INT: 0x1404;
INT: 0x1404;
static UNSIGNED_INT: 0x1405;
UNSIGNED_INT: 0x1405;
static FLOAT: 0x1406;
FLOAT: 0x1406;
static DEPTH_COMPONENT: 0x1902;
DEPTH_COMPONENT: 0x1902;
static ALPHA: 0x1906;
ALPHA: 0x1906;
static RGB: 0x1907;
RGB: 0x1907;
static RGBA: 0x1908;
RGBA: 0x1908;
static LUMINANCE: 0x1909;
LUMINANCE: 0x1909;
static LUMINANCE_ALPHA: 0x190a;
LUMINANCE_ALPHA: 0x190a;
static UNSIGNED_SHORT_4_4_4_4: 0x8033;
UNSIGNED_SHORT_4_4_4_4: 0x8033;
static UNSIGNED_SHORT_5_5_5_1: 0x8034;
UNSIGNED_SHORT_5_5_5_1: 0x8034;
static UNSIGNED_SHORT_5_6_5: 0x8363;
UNSIGNED_SHORT_5_6_5: 0x8363;
static FRAGMENT_SHADER: 0x8b30;
FRAGMENT_SHADER: 0x8b30;
static VERTEX_SHADER: 0x8b31;
VERTEX_SHADER: 0x8b31;
static MAX_VERTEX_ATTRIBS: 0x8869;
MAX_VERTEX_ATTRIBS: 0x8869;
static MAX_VERTEX_UNIFORM_VECTORS: 0x8dfb;
MAX_VERTEX_UNIFORM_VECTORS: 0x8dfb;
static MAX_VARYING_VECTORS: 0x8dfc;
MAX_VARYING_VECTORS: 0x8dfc;
static MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8b4d;
MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8b4d;
static MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8b4c;
MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8b4c;
static MAX_TEXTURE_IMAGE_UNITS: 0x8872;
MAX_TEXTURE_IMAGE_UNITS: 0x8872;
static MAX_FRAGMENT_UNIFORM_VECTORS: 0x8dfd;
MAX_FRAGMENT_UNIFORM_VECTORS: 0x8dfd;
static SHADER_TYPE: 0x8b4f;
SHADER_TYPE: 0x8b4f;
static DELETE_STATUS: 0x8b80;
DELETE_STATUS: 0x8b80;
static LINK_STATUS: 0x8b82;
LINK_STATUS: 0x8b82;
static VALIDATE_STATUS: 0x8b83;
VALIDATE_STATUS: 0x8b83;
static ATTACHED_SHADERS: 0x8b85;
ATTACHED_SHADERS: 0x8b85;
static ACTIVE_UNIFORMS: 0x8b86;
ACTIVE_UNIFORMS: 0x8b86;
static ACTIVE_ATTRIBUTES: 0x8b89;
ACTIVE_ATTRIBUTES: 0x8b89;
static SHADING_LANGUAGE_VERSION: 0x8b8c;
SHADING_LANGUAGE_VERSION: 0x8b8c;
static CURRENT_PROGRAM: 0x8b8d;
CURRENT_PROGRAM: 0x8b8d;
static NEVER: 0x0200;
NEVER: 0x0200;
static LESS: 0x0201;
LESS: 0x0201;
static EQUAL: 0x0202;
EQUAL: 0x0202;
static LEQUAL: 0x0203;
LEQUAL: 0x0203;
static GREATER: 0x0204;
GREATER: 0x0204;
static NOTEQUAL: 0x0205;
NOTEQUAL: 0x0205;
static GEQUAL: 0x0206;
GEQUAL: 0x0206;
static ALWAYS: 0x0207;
ALWAYS: 0x0207;
static KEEP: 0x1e00;
KEEP: 0x1e00;
static REPLACE: 0x1e01;
REPLACE: 0x1e01;
static INCR: 0x1e02;
INCR: 0x1e02;
static DECR: 0x1e03;
DECR: 0x1e03;
static INVERT: 0x150a;
INVERT: 0x150a;
static INCR_WRAP: 0x8507;
INCR_WRAP: 0x8507;
static DECR_WRAP: 0x8508;
DECR_WRAP: 0x8508;
static VENDOR: 0x1f00;
VENDOR: 0x1f00;
static RENDERER: 0x1f01;
RENDERER: 0x1f01;
static VERSION: 0x1f02;
VERSION: 0x1f02;
static NEAREST: 0x2600;
NEAREST: 0x2600;
static LINEAR: 0x2601;
LINEAR: 0x2601;
static NEAREST_MIPMAP_NEAREST: 0x2700;
NEAREST_MIPMAP_NEAREST: 0x2700;
static LINEAR_MIPMAP_NEAREST: 0x2701;
LINEAR_MIPMAP_NEAREST: 0x2701;
static NEAREST_MIPMAP_LINEAR: 0x2702;
NEAREST_MIPMAP_LINEAR: 0x2702;
static LINEAR_MIPMAP_LINEAR: 0x2703;
LINEAR_MIPMAP_LINEAR: 0x2703;
static TEXTURE_MAG_FILTER: 0x2800;
TEXTURE_MAG_FILTER: 0x2800;
static TEXTURE_MIN_FILTER: 0x2801;
TEXTURE_MIN_FILTER: 0x2801;
static TEXTURE_WRAP_S: 0x2802;
TEXTURE_WRAP_S: 0x2802;
static TEXTURE_WRAP_T: 0x2803;
TEXTURE_WRAP_T: 0x2803;
static TEXTURE_2D: 0x0de1;
TEXTURE_2D: 0x0de1;
static TEXTURE: 0x1702;
TEXTURE: 0x1702;
static TEXTURE_CUBE_MAP: 0x8513;
TEXTURE_CUBE_MAP: 0x8513;
static TEXTURE_BINDING_CUBE_MAP: 0x8514;
TEXTURE_BINDING_CUBE_MAP: 0x8514;
static TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
static TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
static TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
static TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
static TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
static TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851a;
TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851a;
static MAX_CUBE_MAP_TEXTURE_SIZE: 0x851c;
MAX_CUBE_MAP_TEXTURE_SIZE: 0x851c;
static TEXTURE0: 0x84c0;
TEXTURE0: 0x84c0;
static TEXTURE1: 0x84c1;
TEXTURE1: 0x84c1;
static TEXTURE2: 0x84c2;
TEXTURE2: 0x84c2;
static TEXTURE3: 0x84c3;
TEXTURE3: 0x84c3;
static TEXTURE4: 0x84c4;
TEXTURE4: 0x84c4;
static TEXTURE5: 0x84c5;
TEXTURE5: 0x84c5;
static TEXTURE6: 0x84c6;
TEXTURE6: 0x84c6;
static TEXTURE7: 0x84c7;
TEXTURE7: 0x84c7;
static TEXTURE8: 0x84c8;
TEXTURE8: 0x84c8;
static TEXTURE9: 0x84c9;
TEXTURE9: 0x84c9;
static TEXTURE10: 0x84ca;
TEXTURE10: 0x84ca;
static TEXTURE11: 0x84cb;
TEXTURE11: 0x84cb;
static TEXTURE12: 0x84cc;
TEXTURE12: 0x84cc;
static TEXTURE13: 0x84cd;
TEXTURE13: 0x84cd;
static TEXTURE14: 0x84ce;
TEXTURE14: 0x84ce;
static TEXTURE15: 0x84cf;
TEXTURE15: 0x84cf;
static TEXTURE16: 0x84d0;
TEXTURE16: 0x84d0;
static TEXTURE17: 0x84d1;
TEXTURE17: 0x84d1;
static TEXTURE18: 0x84d2;
TEXTURE18: 0x84d2;
static TEXTURE19: 0x84d3;
TEXTURE19: 0x84d3;
static TEXTURE20: 0x84d4;
TEXTURE20: 0x84d4;
static TEXTURE21: 0x84d5;
TEXTURE21: 0x84d5;
static TEXTURE22: 0x84d6;
TEXTURE22: 0x84d6;
static TEXTURE23: 0x84d7;
TEXTURE23: 0x84d7;
static TEXTURE24: 0x84d8;
TEXTURE24: 0x84d8;
static TEXTURE25: 0x84d9;
TEXTURE25: 0x84d9;
static TEXTURE26: 0x84da;
TEXTURE26: 0x84da;
static TEXTURE27: 0x84db;
TEXTURE27: 0x84db;
static TEXTURE28: 0x84dc;
TEXTURE28: 0x84dc;
static TEXTURE29: 0x84dd;
TEXTURE29: 0x84dd;
static TEXTURE30: 0x84de;
TEXTURE30: 0x84de;
static TEXTURE31: 0x84df;
TEXTURE31: 0x84df;
static ACTIVE_TEXTURE: 0x84e0;
ACTIVE_TEXTURE: 0x84e0;
static REPEAT: 0x2901;
REPEAT: 0x2901;
static CLAMP_TO_EDGE: 0x812f;
CLAMP_TO_EDGE: 0x812f;
static MIRRORED_REPEAT: 0x8370;
MIRRORED_REPEAT: 0x8370;
static FLOAT_VEC2: 0x8b50;
FLOAT_VEC2: 0x8b50;
static FLOAT_VEC3: 0x8b51;
FLOAT_VEC3: 0x8b51;
static FLOAT_VEC4: 0x8b52;
FLOAT_VEC4: 0x8b52;
static INT_VEC2: 0x8b53;
INT_VEC2: 0x8b53;
static INT_VEC3: 0x8b54;
INT_VEC3: 0x8b54;
static INT_VEC4: 0x8b55;
INT_VEC4: 0x8b55;
static BOOL: 0x8b56;
BOOL: 0x8b56;
static BOOL_VEC2: 0x8b57;
BOOL_VEC2: 0x8b57;
static BOOL_VEC3: 0x8b58;
BOOL_VEC3: 0x8b58;
static BOOL_VEC4: 0x8b59;
BOOL_VEC4: 0x8b59;
static FLOAT_MAT2: 0x8b5a;
FLOAT_MAT2: 0x8b5a;
static FLOAT_MAT3: 0x8b5b;
FLOAT_MAT3: 0x8b5b;
static FLOAT_MAT4: 0x8b5c;
FLOAT_MAT4: 0x8b5c;
static SAMPLER_2D: 0x8b5e;
SAMPLER_2D: 0x8b5e;
static SAMPLER_CUBE: 0x8b60;
SAMPLER_CUBE: 0x8b60;
static VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
static VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
static VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
static VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
static VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886a;
VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886a;
static VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
static VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889f;
VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889f;
static IMPLEMENTATION_COLOR_READ_TYPE: 0x8b9a;
IMPLEMENTATION_COLOR_READ_TYPE: 0x8b9a;
static IMPLEMENTATION_COLOR_READ_FORMAT: 0x8b9b;
IMPLEMENTATION_COLOR_READ_FORMAT: 0x8b9b;
static COMPILE_STATUS: 0x8b81;
COMPILE_STATUS: 0x8b81;
static LOW_FLOAT: 0x8df0;
LOW_FLOAT: 0x8df0;
static MEDIUM_FLOAT: 0x8df1;
MEDIUM_FLOAT: 0x8df1;
static HIGH_FLOAT: 0x8df2;
HIGH_FLOAT: 0x8df2;
static LOW_INT: 0x8df3;
LOW_INT: 0x8df3;
static MEDIUM_INT: 0x8df4;
MEDIUM_INT: 0x8df4;
static HIGH_INT: 0x8df5;
HIGH_INT: 0x8df5;
static FRAMEBUFFER: 0x8d40;
FRAMEBUFFER: 0x8d40;
static RENDERBUFFER: 0x8d41;
RENDERBUFFER: 0x8d41;
static RGBA4: 0x8056;
RGBA4: 0x8056;
static RGB5_A1: 0x8057;
RGB5_A1: 0x8057;
static RGB565: 0x8d62;
RGB565: 0x8d62;
static DEPTH_COMPONENT16: 0x81a5;
DEPTH_COMPONENT16: 0x81a5;
static STENCIL_INDEX: 0x1901;
STENCIL_INDEX: 0x1901;
static STENCIL_INDEX8: 0x8d48;
STENCIL_INDEX8: 0x8d48;
static DEPTH_STENCIL: 0x84f9;
DEPTH_STENCIL: 0x84f9;
static RENDERBUFFER_WIDTH: 0x8d42;
RENDERBUFFER_WIDTH: 0x8d42;
static RENDERBUFFER_HEIGHT: 0x8d43;
RENDERBUFFER_HEIGHT: 0x8d43;
static RENDERBUFFER_INTERNAL_FORMAT: 0x8d44;
RENDERBUFFER_INTERNAL_FORMAT: 0x8d44;
static RENDERBUFFER_RED_SIZE: 0x8d50;
RENDERBUFFER_RED_SIZE: 0x8d50;
static RENDERBUFFER_GREEN_SIZE: 0x8d51;
RENDERBUFFER_GREEN_SIZE: 0x8d51;
static RENDERBUFFER_BLUE_SIZE: 0x8d52;
RENDERBUFFER_BLUE_SIZE: 0x8d52;
static RENDERBUFFER_ALPHA_SIZE: 0x8d53;
RENDERBUFFER_ALPHA_SIZE: 0x8d53;
static RENDERBUFFER_DEPTH_SIZE: 0x8d54;
RENDERBUFFER_DEPTH_SIZE: 0x8d54;
static RENDERBUFFER_STENCIL_SIZE: 0x8d55;
RENDERBUFFER_STENCIL_SIZE: 0x8d55;
static FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8cd0;
FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8cd0;
static FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8cd1;
FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8cd1;
static FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8cd2;
FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8cd2;
static FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8cd3;
FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8cd3;
static COLOR_ATTACHMENT0: 0x8ce0;
COLOR_ATTACHMENT0: 0x8ce0;
static DEPTH_ATTACHMENT: 0x8d00;
DEPTH_ATTACHMENT: 0x8d00;
static STENCIL_ATTACHMENT: 0x8d20;
STENCIL_ATTACHMENT: 0x8d20;
static DEPTH_STENCIL_ATTACHMENT: 0x821a;
DEPTH_STENCIL_ATTACHMENT: 0x821a;
static NONE: 0;
NONE: 0;
static FRAMEBUFFER_COMPLETE: 0x8cd5;
FRAMEBUFFER_COMPLETE: 0x8cd5;
static FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8cd6;
FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8cd6;
static FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8cd7;
FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8cd7;
static FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8cd9;
FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8cd9;
static FRAMEBUFFER_UNSUPPORTED: 0x8cdd;
FRAMEBUFFER_UNSUPPORTED: 0x8cdd;
static FRAMEBUFFER_BINDING: 0x8ca6;
FRAMEBUFFER_BINDING: 0x8ca6;
static RENDERBUFFER_BINDING: 0x8ca7;
RENDERBUFFER_BINDING: 0x8ca7;
static MAX_RENDERBUFFER_SIZE: 0x84e8;
MAX_RENDERBUFFER_SIZE: 0x84e8;
static INVALID_FRAMEBUFFER_OPERATION: 0x0506;
INVALID_FRAMEBUFFER_OPERATION: 0x0506;
static UNPACK_FLIP_Y_WEBGL: 0x9240;
UNPACK_FLIP_Y_WEBGL: 0x9240;
static UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
static CONTEXT_LOST_WEBGL: 0x9242;
CONTEXT_LOST_WEBGL: 0x9242;
static UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
static BROWSER_DEFAULT_WEBGL: 0x9244;
BROWSER_DEFAULT_WEBGL: 0x9244;
canvas: HTMLCanvasElement;
drawingBufferWidth: number;
drawingBufferHeight: number;
getContextAttributes(): ?WebGLContextAttributes;
isContextLost(): boolean;
getSupportedExtensions(): ?Array<string>;
getExtension(name: string): any;
activeTexture(texture: number): void;
attachShader(program: WebGLProgram, shader: WebGLShader): void;
bindAttribLocation(program: WebGLProgram, index: number, name: string): void;
bindBuffer(target: number, buffer: ?WebGLBuffer): void;
bindFramebuffer(target: number, framebuffer: ?WebGLFramebuffer): void;
bindRenderbuffer(target: number, renderbuffer: ?WebGLRenderbuffer): void;
bindTexture(target: number, texture: ?WebGLTexture): void;
blendColor(red: number, green: number, blue: number, alpha: number): void;
blendEquation(mode: number): void;
blendEquationSeparate(modeRGB: number, modeAlpha: number): void;
blendFunc(sfactor: number, dfactor: number): void;
blendFuncSeparate(
srcRGB: number,
dstRGB: number,
srcAlpha: number,
dstAlpha: number,
): void;
bufferData(target: number, size: number, usage: number): void;
bufferData(target: number, data: ?ArrayBuffer, usage: number): void;
bufferData(target: number, data: $ArrayBufferView, usage: number): void;
bufferSubData(target: number, offset: number, data: BufferDataSource): void;
checkFramebufferStatus(target: number): number;
clear(mask: number): void;
clearColor(red: number, green: number, blue: number, alpha: number): void;
clearDepth(depth: number): void;
clearStencil(s: number): void;
colorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
compileShader(shader: WebGLShader): void;
compressedTexImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
data: $ArrayBufferView,
): void;
compressedTexSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
width: number,
height: number,
format: number,
data: $ArrayBufferView,
): void;
copyTexImage2D(
target: number,
level: number,
internalformat: number,
x: number,
y: number,
width: number,
height: number,
border: number,
): void;
copyTexSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
x: number,
y: number,
width: number,
height: number,
): void;
createBuffer(): ?WebGLBuffer;
createFramebuffer(): ?WebGLFramebuffer;
createProgram(): ?WebGLProgram;
createRenderbuffer(): ?WebGLRenderbuffer;
createShader(type: number): ?WebGLShader;
createTexture(): ?WebGLTexture;
cullFace(mode: number): void;
deleteBuffer(buffer: ?WebGLBuffer): void;
deleteFramebuffer(framebuffer: ?WebGLFramebuffer): void;
deleteProgram(program: ?WebGLProgram): void;
deleteRenderbuffer(renderbuffer: ?WebGLRenderbuffer): void;
deleteShader(shader: ?WebGLShader): void;
deleteTexture(texture: ?WebGLTexture): void;
depthFunc(func: number): void;
depthMask(flag: boolean): void;
depthRange(zNear: number, zFar: number): void;
detachShader(program: WebGLProgram, shader: WebGLShader): void;
disable(cap: number): void;
disableVertexAttribArray(index: number): void;
drawArrays(mode: number, first: number, count: number): void;
drawElements(mode: number, count: number, type: number, offset: number): void;
enable(cap: number): void;
enableVertexAttribArray(index: number): void;
finish(): void;
flush(): void;
framebufferRenderbuffer(
target: number,
attachment: number,
renderbuffertarget: number,
renderbuffer: ?WebGLRenderbuffer,
): void;
framebufferTexture2D(
target: number,
attachment: number,
textarget: number,
texture: ?WebGLTexture,
level: number,
): void;
frontFace(mode: number): void;
generateMipmap(target: number): void;
getActiveAttrib(program: WebGLProgram, index: number): ?WebGLActiveInfo;
getActiveUniform(program: WebGLProgram, index: number): ?WebGLActiveInfo;
getAttachedShaders(program: WebGLProgram): ?Array<WebGLShader>;
getAttribLocation(program: WebGLProgram, name: string): number;
getBufferParameter(target: number, pname: number): any;
getParameter(pname: number): any;
getError(): number;
getFramebufferAttachmentParameter(
target: number,
attachment: number,
pname: number,
): any;
getProgramParameter(program: WebGLProgram, pname: number): any;
getProgramInfoLog(program: WebGLProgram): ?string;
getRenderbufferParameter(target: number, pname: number): any;
getShaderParameter(shader: WebGLShader, pname: number): any;
getShaderPrecisionFormat(
shadertype: number,
precisiontype: number,
): ?WebGLShaderPrecisionFormat;
getShaderInfoLog(shader: WebGLShader): ?string;
getShaderSource(shader: WebGLShader): ?string;
getTexParameter(target: number, pname: number): any;
getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;
getUniformLocation(
program: WebGLProgram,
name: string,
): ?WebGLUniformLocation;
getVertexAttrib(index: number, pname: number): any;
getVertexAttribOffset(index: number, pname: number): number;
hint(target: number, mode: number): void;
isBuffer(buffer: ?WebGLBuffer): boolean;
isEnabled(cap: number): boolean;
isFramebuffer(framebuffer: ?WebGLFramebuffer): boolean;
isProgram(program: ?WebGLProgram): boolean;
isRenderbuffer(renderbuffer: ?WebGLRenderbuffer): boolean;
isShader(shader: ?WebGLShader): boolean;
isTexture(texture: ?WebGLTexture): boolean;
lineWidth(width: number): void;
linkProgram(program: WebGLProgram): void;
pixelStorei(pname: number, param: number): void;
polygonOffset(factor: number, units: number): void;
readPixels(
x: number,
y: number,
width: number,
height: number,
format: number,
type: number,
pixels: ?$ArrayBufferView,
): void;
renderbufferStorage(
target: number,
internalformat: number,
width: number,
height: number,
): void;
sampleCoverage(value: number, invert: boolean): void;
scissor(x: number, y: number, width: number, height: number): void;
shaderSource(shader: WebGLShader, source: string): void;
stencilFunc(func: number, ref: number, mask: number): void;
stencilFuncSeparate(
face: number,
func: number,
ref: number,
mask: number,
): void;
stencilMask(mask: number): void;
stencilMaskSeparate(face: number, mask: number): void;
stencilOp(fail: number, zfail: number, zpass: number): void;
stencilOpSeparate(
face: number,
fail: number,
zfail: number,
zpass: number,
): void;
texImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
format: number,
type: number,
pixels: ?$ArrayBufferView,
): void;
texImage2D(
target: number,
level: number,
internalformat: number,
format: number,
type: number,
source: TexImageSource,
): void;
texParameterf(target: number, pname: number, param: number): void;
texParameteri(target: number, pname: number, param: number): void;
texSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
width: number,
height: number,
format: number,
type: number,
pixels: ?$ArrayBufferView,
): void;
texSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
format: number,
type: number,
source: TexImageSource,
): void;
uniform1f(location: ?WebGLUniformLocation, x: number): void;
uniform1fv(location: ?WebGLUniformLocation, v: Float32Array): void;
uniform1fv(location: ?WebGLUniformLocation, v: Array<number>): void;
uniform1fv(location: ?WebGLUniformLocation, v: [number]): void;
uniform1i(location: ?WebGLUniformLocation, x: number): void;
uniform1iv(location: ?WebGLUniformLocation, v: Int32Array): void;
uniform1iv(location: ?WebGLUniformLocation, v: Array<number>): void;
uniform1iv(location: ?WebGLUniformLocation, v: [number]): void;
uniform2f(location: ?WebGLUniformLocation, x: number, y: number): void;
uniform2fv(location: ?WebGLUniformLocation, v: Float32Array): void;
uniform2fv(location: ?WebGLUniformLocation, v: Array<number>): void;
uniform2fv(location: ?WebGLUniformLocation, v: [number, number]): void;
uniform2i(location: ?WebGLUniformLocation, x: number, y: number): void;
uniform2iv(location: ?WebGLUniformLocation, v: Int32Array): void;
uniform2iv(location: ?WebGLUniformLocation, v: Array<number>): void;
uniform2iv(location: ?WebGLUniformLocation, v: [number, number]): void;
uniform3f(
location: ?WebGLUniformLocation,
x: number,
y: number,
z: number,
): void;
uniform3fv(location: ?WebGLUniformLocation, v: Float32Array): void;
uniform3fv(location: ?WebGLUniformLocation, v: Array<number>): void;
uniform3fv(
location: ?WebGLUniformLocation,
v: [number, number, number],
): void;
uniform3i(
location: ?WebGLUniformLocation,
x: number,
y: number,
z: number,
): void;
uniform3iv(location: ?WebGLUniformLocation, v: Int32Array): void;
uniform3iv(location: ?WebGLUniformLocation, v: Array<number>): void;
uniform3iv(
location: ?WebGLUniformLocation,
v: [number, number, number],
): void;
uniform4f(
location: ?WebGLUniformLocation,
x: number,
y: number,
z: number,
w: number,
): void;
uniform4fv(location: ?WebGLUniformLocation, v: Float32Array): void;
uniform4fv(location: ?WebGLUniformLocation, v: Array<number>): void;
uniform4fv(
location: ?WebGLUniformLocation,
v: [number, number, number, number],
): void;
uniform4i(
location: ?WebGLUniformLocation,
x: number,
y: number,
z: number,
w: number,
): void;
uniform4iv(location: ?WebGLUniformLocation, v: Int32Array): void;
uniform4iv(location: ?WebGLUniformLocation, v: Array<number>): void;
uniform4iv(
location: ?WebGLUniformLocation,
v: [number, number, number, number],
): void;
uniformMatrix2fv(
location: ?WebGLUniformLocation,
transpose: boolean,
value: Float32Array,
): void;
uniformMatrix2fv(
location: ?WebGLUniformLocation,
transpose: boolean,
value: Array<number>,
): void;
uniformMatrix3fv(
location: ?WebGLUniformLocation,
transpose: boolean,
value: Float32Array,
): void;
uniformMatrix3fv(
location: ?WebGLUniformLocation,
transpose: boolean,
value: Array<number>,
): void;
uniformMatrix4fv(
location: ?WebGLUniformLocation,
transpose: boolean,
value: Float32Array,
): void;
uniformMatrix4fv(
location: ?WebGLUniformLocation,
transpose: boolean,
value: Array<number>,
): void;
useProgram(program: ?WebGLProgram): void;
validateProgram(program: WebGLProgram): void;
vertexAttrib1f(index: number, x: number): void;
vertexAttrib1fv(index: number, values: VertexAttribFVSource): void;
vertexAttrib2f(index: number, x: number, y: number): void;
vertexAttrib2fv(index: number, values: VertexAttribFVSource): void;
vertexAttrib3f(index: number, x: number, y: number, z: number): void;
vertexAttrib3fv(index: number, values: VertexAttribFVSource): void;
vertexAttrib4f(
index: number,
x: number,
y: number,
z: number,
w: number,
): void;
vertexAttrib4fv(index: number, values: VertexAttribFVSource): void;
vertexAttribPointer(
index: number,
size: number,
type: number,
normalized: boolean,
stride: number,
offset: number,
): void;
viewport(x: number, y: number, width: number, height: number): void;
}
declare class WebGLContextEvent extends Event {
statusMessage: string;
}
// http://www.w3.org/TR/html5/scripting-1.html#renderingcontext
type RenderingContext = CanvasRenderingContext2D | WebGLRenderingContext;
// https://www.w3.org/TR/html5/scripting-1.html#htmlcanvaselement
declare class HTMLCanvasElement extends HTMLElement {
tagName: 'CANVAS';
width: number;
height: number;
getContext(contextId: '2d', ...args: any): CanvasRenderingContext2D;
getContext(
contextId: 'webgl',
contextAttributes?: Partial<WebGLContextAttributes>,
): ?WebGLRenderingContext;
// IE currently only supports "experimental-webgl"
getContext(
contextId: 'experimental-webgl',
contextAttributes?: Partial<WebGLContextAttributes>,
): ?WebGLRenderingContext;
getContext(contextId: string, ...args: any): ?RenderingContext; // fallback
toDataURL(type?: string, ...args: any): string;
toBlob(callback: (v: File) => void, type?: string, ...args: any): void;
captureStream(frameRate?: number): CanvasCaptureMediaStream;
}
// https://html.spec.whatwg.org/multipage/forms.html#the-details-element
declare class HTMLDetailsElement extends HTMLElement {
tagName: 'DETAILS';
open: boolean;
}
declare class HTMLFormElement extends HTMLElement {
tagName: 'FORM';
@@iterator(): Iterator<HTMLElement>;
[index: number | string]: HTMLElement | null;
acceptCharset: string;
action: string;
elements: HTMLCollection<HTMLElement>;
encoding: string;
enctype: string;
length: number;
method: string;
name: string;
rel: string;
target: string;
checkValidity(): boolean;
reportValidity(): boolean;
reset(): void;
submit(): void;
}
// https://www.w3.org/TR/html5/forms.html#the-fieldset-element
declare class HTMLFieldSetElement extends HTMLElement {
tagName: 'FIELDSET';
disabled: boolean;
elements: HTMLCollection<HTMLElement>; // readonly
form: HTMLFormElement | null; // readonly
name: string;
type: string; // readonly
checkValidity(): boolean;
setCustomValidity(error: string): void;
}
declare class HTMLLegendElement extends HTMLElement {
tagName: 'LEGEND';
form: HTMLFormElement | null; // readonly
}
declare class HTMLIFrameElement extends HTMLElement {
tagName: 'IFRAME';
allowFullScreen: boolean;
contentDocument: Document;
contentWindow: any;
frameBorder: string;
height: string;
marginHeight: string;
marginWidth: string;
name: string;
scrolling: string;
sandbox: DOMTokenList;
src: string;
// flowlint unsafe-getters-setters:off
get srcdoc(): string;
set srcdoc(value: string | TrustedHTML): void;
// flowlint unsafe-getters-setters:error
width: string;
}
declare class HTMLImageElement extends HTMLElement {
tagName: 'IMG';
alt: string;
complete: boolean; // readonly
crossOrigin: ?string;
currentSrc: string; // readonly
height: number;
decode(): Promise<void>;
isMap: boolean;
naturalHeight: number; // readonly
naturalWidth: number; // readonly
sizes: string;
src: string;
srcset: string;
useMap: string;
width: number;
}
declare class Image extends HTMLImageElement {
constructor(width?: number, height?: number): void;
}
declare class MediaError {
MEDIA_ERR_ABORTED: number;
MEDIA_ERR_NETWORK: number;
MEDIA_ERR_DECODE: number;
MEDIA_ERR_SRC_NOT_SUPPORTED: number;
code: number;
message: ?string;
}
declare class TimeRanges {
length: number;
start(index: number): number;
end(index: number): number;
}
declare class Audio extends HTMLAudioElement {
constructor(URLString?: string): void;
}
declare class AudioTrack {
id: string;
kind: string;
label: string;
language: string;
enabled: boolean;
}
declare class AudioTrackList extends EventTarget {
length: number;
[index: number]: AudioTrack;
getTrackById(id: string): ?AudioTrack;
onchange: (ev: any) => any;
onaddtrack: (ev: any) => any;
onremovetrack: (ev: any) => any;
}
declare class VideoTrack {
id: string;
kind: string;
label: string;
language: string;
selected: boolean;
}
declare class VideoTrackList extends EventTarget {
length: number;
[index: number]: VideoTrack;
getTrackById(id: string): ?VideoTrack;
selectedIndex: number;
onchange: (ev: any) => any;
onaddtrack: (ev: any) => any;
onremovetrack: (ev: any) => any;
}
declare class TextTrackCue extends EventTarget {
constructor(startTime: number, endTime: number, text: string): void;
track: TextTrack;
id: string;
startTime: number;
endTime: number;
pauseOnExit: boolean;
vertical: string;
snapToLines: boolean;
lines: number;
position: number;
size: number;
align: string;
text: string;
getCueAsHTML(): Node;
onenter: (ev: any) => any;
onexit: (ev: any) => any;
}
declare class TextTrackCueList {
@@iterator(): Iterator<TextTrackCue>;
length: number;
[index: number]: TextTrackCue;
getCueById(id: string): ?TextTrackCue;
}
declare class TextTrack extends EventTarget {
kind: string;
label: string;
language: string;
mode: string;
cues: TextTrackCueList;
activeCues: TextTrackCueList;
addCue(cue: TextTrackCue): void;
removeCue(cue: TextTrackCue): void;
oncuechange: (ev: any) => any;
}
declare class TextTrackList extends EventTarget {
length: number;
[index: number]: TextTrack;
onaddtrack: (ev: any) => any;
onremovetrack: (ev: any) => any;
}
declare class MediaKeyStatusMap<BufferDataSource, MediaKeyStatus> {
@@iterator(): Iterator<[BufferDataSource, MediaKeyStatus]>;
size: number;
entries(): Iterator<[BufferDataSource, MediaKeyStatus]>;
forEach(
callbackfn: (
value: MediaKeyStatus,
key: BufferDataSource,
map: MediaKeyStatusMap<BufferDataSource, MediaKeyStatus>,
) => any,
thisArg?: any,
): void;
get(key: BufferDataSource): MediaKeyStatus;
has(key: BufferDataSource): boolean;
keys(): Iterator<BufferDataSource>;
values(): Iterator<MediaKeyStatus>;
}
declare class MediaKeySession extends EventTarget {
sessionId: string;
expiration: number;
closed: Promise<void>;
keyStatuses: MediaKeyStatusMap<BufferDataSource, MediaKeyStatus>;
generateRequest(
initDataType: string,
initData: BufferDataSource,
): Promise<void>;
load(sessionId: string): Promise<boolean>;
update(response: BufferDataSource): Promise<void>;
close(): Promise<void>;
remove(): Promise<void>;
onkeystatuschange: (ev: any) => any;
onmessage: (ev: any) => any;
}
declare class MediaKeys {
createSession(mediaKeySessionType: MediaKeySessionType): MediaKeySession;
setServerCertificate(serverCertificate: BufferDataSource): Promise<boolean>;
}
declare class HTMLMediaElement extends HTMLElement {
// error state
error: ?MediaError;
// network state
src: string;
srcObject: ?any;
currentSrc: string;
crossOrigin: ?string;
NETWORK_EMPTY: number;
NETWORK_IDLE: number;
NETWORK_LOADING: number;
NETWORK_NO_SOURCE: number;
networkState: number;
preload: string;
buffered: TimeRanges;
load(): void;
canPlayType(type: string): string;
// ready state
HAVE_NOTHING: number;
HAVE_METADATA: number;
HAVE_CURRENT_DATA: number;
HAVE_FUTURE_DATA: number;
HAVE_ENOUGH_DATA: number;
readyState: number;
seeking: boolean;
// playback state
currentTime: number;
duration: number;
startDate: Date;
paused: boolean;
defaultPlaybackRate: number;
playbackRate: number;
played: TimeRanges;
seekable: TimeRanges;
ended: boolean;
autoplay: boolean;
loop: boolean;
play(): Promise<void>;
pause(): void;
fastSeek(): void;
captureStream(): MediaStream;
// media controller
mediaGroup: string;
controller: ?any;
// controls
controls: boolean;
volume: number;
muted: boolean;
defaultMuted: boolean;
controlsList?: DOMTokenList;
// tracks
audioTracks: AudioTrackList;
videoTracks: VideoTrackList;
textTracks: TextTrackList;
addTextTrack(kind: string, label?: string, language?: string): TextTrack;
// media keys
mediaKeys?: ?MediaKeys;
setMediakeys?: (mediakeys: ?MediaKeys) => Promise<?MediaKeys>;
}
declare class HTMLAudioElement extends HTMLMediaElement {
tagName: 'AUDIO';
}
declare class HTMLVideoElement extends HTMLMediaElement {
tagName: 'VIDEO';
width: number;
height: number;
videoWidth: number;
videoHeight: number;
poster: string;
}
declare class HTMLSourceElement extends HTMLElement {
tagName: 'SOURCE';
src: string;
type: string;
//when used with the picture element
srcset: string;
sizes: string;
media: string;
}
declare class ValidityState {
badInput: boolean;
customError: boolean;
patternMismatch: boolean;
rangeOverflow: boolean;
rangeUnderflow: boolean;
stepMismatch: boolean;
tooLong: boolean;
tooShort: boolean;
typeMismatch: boolean;
valueMissing: boolean;
valid: boolean;
}
// https://w3c.github.io/html/sec-forms.html#dom-selectionapielements-setselectionrange
type SelectionDirection = 'backward' | 'forward' | 'none';
type SelectionMode = 'select' | 'start' | 'end' | 'preserve';
declare class HTMLInputElement extends HTMLElement {
tagName: 'INPUT';
accept: string;
align: string;
alt: string;
autocomplete: string;
autofocus: boolean;
border: string;
checked: boolean;
complete: boolean;
defaultChecked: boolean;
defaultValue: string;
dirname: string;
disabled: boolean;
dynsrc: string;
files: FileList;
form: HTMLFormElement | null;
formAction: string;
formEncType: string;
formMethod: string;
formNoValidate: boolean;
formTarget: string;
height: string;
hspace: number;
indeterminate: boolean;
labels: NodeList<HTMLLabelElement>;
list: HTMLElement | null;
loop: number;
lowsrc: string;
max: string;
maxLength: number;
min: string;
multiple: boolean;
name: string;
pattern: string;
placeholder: string;
readOnly: boolean;
required: boolean;
selectionDirection: SelectionDirection;
selectionEnd: number;
selectionStart: number;
size: number;
src: string;
start: string;
status: boolean;
step: string;
type: string;
useMap: string;
validationMessage: string;
validity: ValidityState;
value: string;
valueAsDate: Date;
valueAsNumber: number;
vrml: string;
vspace: number;
width: string;
willValidate: boolean;
checkValidity(): boolean;
reportValidity(): boolean;
setCustomValidity(error: string): void;
createTextRange(): TextRange;
select(): void;
setRangeText(
replacement: string,
start?: void,
end?: void,
selectMode?: void,
): void;
setRangeText(
replacement: string,
start: number,
end: number,
selectMode?: SelectionMode,
): void;
setSelectionRange(
start: number,
end: number,
direction?: SelectionDirection,
): void;
showPicker(): void;
stepDown(stepDecrement?: number): void;
stepUp(stepIncrement?: number): void;
}
declare class HTMLButtonElement extends HTMLElement {
tagName: 'BUTTON';
autofocus: boolean;
disabled: boolean;
form: HTMLFormElement | null;
labels: NodeList<HTMLLabelElement> | null;
name: string;
type: string;
validationMessage: string;
validity: ValidityState;
value: string;
willValidate: boolean;
checkValidity(): boolean;
reportValidity(): boolean;
setCustomValidity(error: string): void;
}
// https://w3c.github.io/html/sec-forms.html#the-textarea-element
declare class HTMLTextAreaElement extends HTMLElement {
tagName: 'TEXTAREA';
autofocus: boolean;
cols: number;
dirName: string;
disabled: boolean;
form: HTMLFormElement | null;
maxLength: number;
name: string;
placeholder: string;
readOnly: boolean;
required: boolean;
rows: number;
wrap: string;
type: string;
defaultValue: string;
value: string;
textLength: number;
willValidate: boolean;
validity: ValidityState;
validationMessage: string;
checkValidity(): boolean;
setCustomValidity(error: string): void;
labels: NodeList<HTMLLabelElement>;
select(): void;
selectionStart: number;
selectionEnd: number;
selectionDirection: SelectionDirection;
setSelectionRange(
start: number,
end: number,
direction?: SelectionDirection,
): void;
}
declare class HTMLSelectElement extends HTMLElement {
tagName: 'SELECT';
autocomplete: string;
autofocus: boolean;
disabled: boolean;
form: HTMLFormElement | null;
labels: NodeList<HTMLLabelElement>;
length: number;
multiple: boolean;
name: string;
options: HTMLOptionsCollection;
required: boolean;
selectedIndex: number;
selectedOptions: HTMLCollection<HTMLOptionElement>;
size: number;
type: string;
validationMessage: string;
validity: ValidityState;
value: string;
willValidate: boolean;
add(element: HTMLElement, before?: HTMLElement): void;
checkValidity(): boolean;
item(index: number): HTMLOptionElement | null;
namedItem(name: string): HTMLOptionElement | null;
remove(index?: number): void;
setCustomValidity(error: string): void;
}
declare class HTMLOptionsCollection extends HTMLCollection<HTMLOptionElement> {
selectedIndex: number;
add(
element: HTMLOptionElement | HTMLOptGroupElement,
before?: HTMLElement | number,
): void;
remove(index: number): void;
}
declare class HTMLOptionElement extends HTMLElement {
tagName: 'OPTION';
defaultSelected: boolean;
disabled: boolean;
form: HTMLFormElement | null;
index: number;
label: string;
selected: boolean;
text: string;
value: string;
}
declare class HTMLOptGroupElement extends HTMLElement {
tagName: 'OPTGROUP';
disabled: boolean;
label: string;
}
declare class HTMLAnchorElement extends HTMLElement {
tagName: 'A';
charset: string;
coords: string;
download: string;
hash: string;
host: string;
hostname: string;
href: string;
hreflang: string;
media: string;
name: string;
origin: string;
password: string;
pathname: string;
port: string;
protocol: string;
rel: string;
rev: string;
search: string;
shape: string;
target: string;
text: string;
type: string;
username: string;
}
// https://w3c.github.io/html/sec-forms.html#the-label-element
declare class HTMLLabelElement extends HTMLElement {
tagName: 'LABEL';
form: HTMLFormElement | null;
htmlFor: string;
control: HTMLElement | null;
}
declare class HTMLLinkElement extends HTMLElement {
tagName: 'LINK';
crossOrigin: ?('anonymous' | 'use-credentials');
href: string;
hreflang: string;
media: string;
rel: string;
sizes: DOMTokenList;
type: string;
as: string;
}
declare class HTMLScriptElement extends HTMLElement {
tagName: 'SCRIPT';
async: boolean;
charset: string;
crossOrigin?: string;
defer: boolean;
// flowlint unsafe-getters-setters:off
get src(): string;
set src(value: string | TrustedScriptURL): void;
get text(): string;
set text(value: string | TrustedScript): void;
// flowlint unsafe-getters-setters:error
type: string;
}
declare class HTMLStyleElement extends HTMLElement {
tagName: 'STYLE';
disabled: boolean;
media: string;
scoped: boolean;
sheet: ?CSSStyleSheet;
type: string;
}
declare class HTMLParagraphElement extends HTMLElement {
tagName: 'P';
align: 'left' | 'center' | 'right' | 'justify'; // deprecated in HTML 4.01
}
declare class HTMLHtmlElement extends HTMLElement {
tagName: 'HTML';
}
declare class HTMLBodyElement extends HTMLElement {
tagName: 'BODY';
}
declare class HTMLHeadElement extends HTMLElement {
tagName: 'HEAD';
}
declare class HTMLDivElement extends HTMLElement {
tagName: 'DIV';
}
declare class HTMLSpanElement extends HTMLElement {
tagName: 'SPAN';
}
declare class HTMLAppletElement extends HTMLElement {}
declare class HTMLHeadingElement extends HTMLElement {
tagName: 'H1' | 'H2' | 'H3' | 'H4' | 'H5' | 'H6';
}
declare class HTMLHRElement extends HTMLElement {
tagName: 'HR';
}
declare class HTMLBRElement extends HTMLElement {
tagName: 'BR';
}
declare class HTMLDListElement extends HTMLElement {
tagName: 'DL';
}
declare class HTMLAreaElement extends HTMLElement {
tagName: 'AREA';
alt: string;
coords: string;
shape: string;
target: string;
download: string;
ping: string;
rel: string;
relList: DOMTokenList;
referrerPolicy: string;
}
declare class HTMLDataElement extends HTMLElement {
tagName: 'DATA';
value: string;
}
declare class HTMLDataListElement extends HTMLElement {
tagName: 'DATALIST';
options: HTMLCollection<HTMLOptionElement>;
}
declare class HTMLDialogElement extends HTMLElement {
tagName: 'DIALOG';
open: boolean;
returnValue: string;
show(): void;
showModal(): void;
close(returnValue: ?string): void;
}
declare class HTMLEmbedElement extends HTMLElement {
tagName: 'EMBED';
src: string;
type: string;
width: string;
height: string;
getSVGDocument(): ?Document;
}
declare class HTMLMapElement extends HTMLElement {
tagName: 'MAP';
areas: HTMLCollection<HTMLAreaElement>;
images: HTMLCollection<HTMLImageElement>;
name: string;
}
declare class HTMLMeterElement extends HTMLElement {
tagName: 'METER';
high: number;
low: number;
max: number;
min: number;
optimum: number;
value: number;
labels: NodeList<HTMLLabelElement>;
}
declare class HTMLModElement extends HTMLElement {
tagName: 'DEL' | 'INS';
cite: string;
dateTime: string;
}
declare class HTMLObjectElement extends HTMLElement {
tagName: 'OBJECT';
contentDocument: ?Document;
contentWindow: ?WindowProxy;
data: string;
form: ?HTMLFormElement;
height: string;
name: string;
type: string;
typeMustMatch: boolean;
useMap: string;
validationMessage: string;
validity: ValidityState;
width: string;
willValidate: boolean;
checkValidity(): boolean;
getSVGDocument(): ?Document;
reportValidity(): boolean;
setCustomValidity(error: string): void;
}
declare class HTMLOutputElement extends HTMLElement {
defaultValue: string;
form: ?HTMLFormElement;
htmlFor: DOMTokenList;
labels: NodeList<HTMLLabelElement>;
name: string;
type: string;
validationMessage: string;
validity: ValidityState;
value: string;
willValidate: boolean;
checkValidity(): boolean;
reportValidity(): boolean;
setCustomValidity(error: string): void;
}
declare class HTMLParamElement extends HTMLElement {
tagName: 'PARAM';
name: string;
value: string;
}
declare class HTMLProgressElement extends HTMLElement {
tagName: 'PROGRESS';
labels: NodeList<HTMLLabelElement>;
max: number;
position: number;
value: number;
}
declare class HTMLPictureElement extends HTMLElement {
tagName: 'PICTURE';
}
declare class HTMLTimeElement extends HTMLElement {
tagName: 'TIME';
dateTime: string;
}
declare class HTMLTitleElement extends HTMLElement {
tagName: 'TITLE';
text: string;
}
declare class HTMLTrackElement extends HTMLElement {
tagName: 'TRACK';
static NONE: 0;
static LOADING: 1;
static LOADED: 2;
static ERROR: 3;
default: boolean;
kind: string;
label: string;
readyState: 0 | 1 | 2 | 3;
src: string;
srclang: string;
track: TextTrack;
}
declare class HTMLQuoteElement extends HTMLElement {
tagName: 'BLOCKQUOTE' | 'Q';
cite: string;
}
declare class HTMLOListElement extends HTMLElement {
tagName: 'OL';
reversed: boolean;
start: number;
type: string;
}
declare class HTMLUListElement extends HTMLElement {
tagName: 'UL';
}
declare class HTMLLIElement extends HTMLElement {
tagName: 'LI';
value: number;
}
declare class HTMLPreElement extends HTMLElement {
tagName: 'PRE';
}
declare class HTMLMetaElement extends HTMLElement {
tagName: 'META';
content: string;
httpEquiv: string;
name: string;
}
declare class HTMLUnknownElement extends HTMLElement {}
declare class TextRange {
boundingLeft: number;
htmlText: string;
offsetLeft: number;
boundingWidth: number;
boundingHeight: number;
boundingTop: number;
text: string;
offsetTop: number;
moveToPoint(x: number, y: number): void;
queryCommandValue(cmdID: string): any;
getBookmark(): string;
move(unit: string, count?: number): number;
queryCommandIndeterm(cmdID: string): boolean;
scrollIntoView(fStart?: boolean): void;
findText(string: string, count?: number, flags?: number): boolean;
execCommand(cmdID: string, showUI?: boolean, value?: any): boolean;
getBoundingClientRect(): DOMRect;
moveToBookmark(bookmark: string): boolean;
isEqual(range: TextRange): boolean;
duplicate(): TextRange;
collapse(start?: boolean): void;
queryCommandText(cmdID: string): string;
select(): void;
pasteHTML(html: string): void;
inRange(range: TextRange): boolean;
moveEnd(unit: string, count?: number): number;
getClientRects(): DOMRectList;
moveStart(unit: string, count?: number): number;
parentElement(): Element;
queryCommandState(cmdID: string): boolean;
compareEndPoints(how: string, sourceRange: TextRange): number;
execCommandShowHelp(cmdID: string): boolean;
moveToElementText(element: Element): void;
expand(Unit: string): boolean;
queryCommandSupported(cmdID: string): boolean;
setEndPoint(how: string, SourceRange: TextRange): void;
queryCommandEnabled(cmdID: string): boolean;
}
// These types used to exist as a copy of DOMRect/DOMRectList, which is
// incorrect because there are no ClientRect/ClientRectList globals on the DOM.
// Keep these as type aliases for backwards compatibility.
declare type ClientRect = DOMRect;
declare type ClientRectList = DOMRectList;
// TODO: HTML*Element
declare class DOMImplementation {
createDocumentType(
qualifiedName: string,
publicId: string,
systemId: string,
): DocumentType;
createDocument(
namespaceURI: string | null,
qualifiedName: string,
doctype?: DocumentType | null,
): Document;
hasFeature(feature: string, version?: string): boolean;
// non-standard
createHTMLDocument(title?: string): Document;
}
declare class DocumentType extends Node {
name: string;
notations: NamedNodeMap;
systemId: string;
internalSubset: string;
entities: NamedNodeMap;
publicId: string;
// from ChildNode interface
after(...nodes: Array<string | Node>): void;
before(...nodes: Array<string | Node>): void;
replaceWith(...nodes: Array<string | Node>): void;
remove(): void;
}
declare class CharacterData extends Node {
length: number;
data: string;
deleteData(offset: number, count: number): void;
replaceData(offset: number, count: number, arg: string): void;
appendData(arg: string): void;
insertData(offset: number, arg: string): void;
substringData(offset: number, count: number): string;
// from ChildNode interface
after(...nodes: Array<string | Node>): void;
before(...nodes: Array<string | Node>): void;
replaceWith(...nodes: Array<string | Node>): void;
remove(): void;
}
declare class Text extends CharacterData {
assignedSlot?: HTMLSlotElement;
wholeText: string;
splitText(offset: number): Text;
replaceWholeText(content: string): Text;
}
declare class Comment extends CharacterData {
text: string;
}
declare class URL {
static canParse(url: string, base?: string): boolean;
static createObjectURL(blob: Blob): string;
static createObjectURL(mediaSource: MediaSource): string;
static revokeObjectURL(url: string): void;
constructor(url: string, base?: string | URL): void;
hash: string;
host: string;
hostname: string;
href: string;
+origin: string;
password: string;
pathname: string;
port: string;
protocol: string;
search: string;
+searchParams: URLSearchParams;
username: string;
toString(): string;
toJSON(): string;
}
declare interface MediaSourceHandle {}
declare class MediaSource extends EventTarget {
sourceBuffers: SourceBufferList;
activeSourceBuffers: SourceBufferList;
// https://w3c.github.io/media-source/#dom-readystate
readyState: 'closed' | 'open' | 'ended';
duration: number;
handle: MediaSourceHandle;
addSourceBuffer(type: string): SourceBuffer;
removeSourceBuffer(sourceBuffer: SourceBuffer): void;
endOfStream(error?: string): void;
static isTypeSupported(type: string): boolean;
}
declare class SourceBuffer extends EventTarget {
mode: 'segments' | 'sequence';
updating: boolean;
buffered: TimeRanges;
timestampOffset: number;
audioTracks: AudioTrackList;
videoTracks: VideoTrackList;
textTracks: TextTrackList;
appendWindowStart: number;
appendWindowEnd: number;
appendBuffer(data: ArrayBuffer | $ArrayBufferView): void;
// TODO: Add ReadableStream
// appendStream(stream: ReadableStream, maxSize?: number): void;
abort(): void;
remove(start: number, end: number): void;
trackDefaults: TrackDefaultList;
}
declare class SourceBufferList extends EventTarget {
@@iterator(): Iterator<SourceBuffer>;
[index: number]: SourceBuffer;
length: number;
}
declare class Storage {
length: number;
getItem(key: string): ?string;
setItem(key: string, data: string): void;
clear(): void;
removeItem(key: string): void;
key(index: number): ?string;
[name: string]: ?string;
}
declare class TrackDefaultList {
[index: number]: TrackDefault;
length: number;
}
declare class TrackDefault {
type: 'audio' | 'video' | 'text';
byteStreamTrackID: string;
language: string;
label: string;
kinds: Array<string>;
}
// TODO: The use of `typeof` makes this function signature effectively
// (node: Node) => number, but it should be (node: Node) => 1|2|3
type NodeFilterCallback = (
node: Node,
) =>
| typeof NodeFilter.FILTER_ACCEPT
| typeof NodeFilter.FILTER_REJECT
| typeof NodeFilter.FILTER_SKIP;
type NodeFilterInterface =
| NodeFilterCallback
| {acceptNode: NodeFilterCallback, ...};
// TODO: window.NodeFilter exists at runtime and behaves as a constructor
// as far as `instanceof` is concerned, but it is not callable.
declare class NodeFilter {
static SHOW_ALL: -1;
static SHOW_ELEMENT: 1;
static SHOW_ATTRIBUTE: 2; // deprecated
static SHOW_TEXT: 4;
static SHOW_CDATA_SECTION: 8; // deprecated
static SHOW_ENTITY_REFERENCE: 16; // deprecated
static SHOW_ENTITY: 32; // deprecated
static SHOW_PROCESSING_INSTRUCTION: 64;
static SHOW_COMMENT: 128;
static SHOW_DOCUMENT: 256;
static SHOW_DOCUMENT_TYPE: 512;
static SHOW_DOCUMENT_FRAGMENT: 1024;
static SHOW_NOTATION: 2048; // deprecated
static FILTER_ACCEPT: 1;
static FILTER_REJECT: 2;
static FILTER_SKIP: 3;
acceptNode: NodeFilterCallback;
}
// TODO: window.NodeIterator exists at runtime and behaves as a constructor
// as far as `instanceof` is concerned, but it is not callable.
declare class NodeIterator<RootNodeT, WhatToShowT> {
root: RootNodeT;
whatToShow: number;
filter: NodeFilter;
expandEntityReferences: boolean;
referenceNode: RootNodeT | WhatToShowT;
pointerBeforeReferenceNode: boolean;
detach(): void;
previousNode(): WhatToShowT | null;
nextNode(): WhatToShowT | null;
}
// TODO: window.TreeWalker exists at runtime and behaves as a constructor
// as far as `instanceof` is concerned, but it is not callable.
declare class TreeWalker<RootNodeT, WhatToShowT> {
root: RootNodeT;
whatToShow: number;
filter: NodeFilter;
expandEntityReferences: boolean;
currentNode: RootNodeT | WhatToShowT;
parentNode(): WhatToShowT | null;
firstChild(): WhatToShowT | null;
lastChild(): WhatToShowT | null;
previousSibling(): WhatToShowT | null;
nextSibling(): WhatToShowT | null;
previousNode(): WhatToShowT | null;
nextNode(): WhatToShowT | null;
}
/* window */
declare type WindowProxy = any;
declare function alert(message?: any): void;
declare function prompt(message?: any, value?: any): string;
declare function close(): void;
declare function confirm(message?: string): boolean;
declare function getComputedStyle(
elt: Element,
pseudoElt?: string,
): CSSStyleDeclaration;
declare opaque type AnimationFrameID;
declare function requestAnimationFrame(
callback: (timestamp: number) => void,
): AnimationFrameID;
declare function cancelAnimationFrame(requestId: AnimationFrameID): void;
declare opaque type IdleCallbackID;
declare function requestIdleCallback(
cb: (deadline: {
didTimeout: boolean,
timeRemaining: () => number,
...
}) => void,
opts?: {timeout: number, ...},
): IdleCallbackID;
declare function cancelIdleCallback(id: IdleCallbackID): void;
declare var localStorage: Storage;
declare var devicePixelRatio: number;
declare function focus(): void;
declare function onfocus(ev: Event): any;
declare function onmessage(ev: MessageEvent): any;
declare function open(
url?: string,
target?: string,
features?: string,
replace?: boolean,
): any;
declare var parent: WindowProxy;
declare function print(): void;
declare var self: any;
declare var sessionStorage: Storage;
declare var top: WindowProxy;
declare function getSelection(): Selection | null;
declare var customElements: CustomElementRegistry;
declare function scroll(x: number, y: number): void;
declare function scroll(options: ScrollToOptions): void;
declare function scrollTo(x: number, y: number): void;
declare function scrollTo(options: ScrollToOptions): void;
declare function scrollBy(x: number, y: number): void;
declare function scrollBy(options: ScrollToOptions): void;
/* Window file picker */
type WindowFileSystemPickerFileType = {|
description?: string,
/*
* An Object with the keys set to the MIME type
* and the values an Array of file extensions
* Example:
* accept: {
* "image/*": [".png", ".gif", ".jpeg", ".jpg"],
* },
*/
accept: {
[string]: Array<string>,
},
|};
type WindowBaseFilePickerOptions = {|
id?: number,
startIn?:
| FileSystemHandle
| 'desktop'
| 'documents'
| 'downloads'
| 'music'
| 'pictures'
| 'videos',
|};
type WindowFilePickerOptions = WindowBaseFilePickerOptions & {|
excludeAcceptAllOption?: boolean,
types?: Array<WindowFileSystemPickerFileType>,
|};
type WindowOpenFilePickerOptions = WindowFilePickerOptions & {|
multiple?: boolean,
|};
type WindowSaveFilePickerOptions = WindowFilePickerOptions & {|
suggestedName?: string,
|};
type WindowDirectoryFilePickerOptions = WindowBaseFilePickerOptions & {|
mode?: 'read' | 'readwrite',
|};
// https://wicg.github.io/file-system-access/#api-showopenfilepicker
declare function showOpenFilePicker(
options?: WindowOpenFilePickerOptions,
): Promise<Array<FileSystemFileHandle>>;
// https://wicg.github.io/file-system-access/#api-showsavefilepicker
declare function showSaveFilePicker(
options?: WindowSaveFilePickerOptions,
): Promise<FileSystemFileHandle>;
// https://wicg.github.io/file-system-access/#api-showdirectorypicker
declare function showDirectoryPicker(
options?: WindowDirectoryFilePickerOptions,
): Promise<FileSystemDirectoryHandle>;
/* Notification */
type NotificationPermission = 'default' | 'denied' | 'granted';
type NotificationDirection = 'auto' | 'ltr' | 'rtl';
type VibratePattern = number | Array<number>;
type NotificationAction = {
action: string,
title: string,
icon?: string,
...
};
type NotificationOptions = {
dir?: NotificationDirection,
lang?: string,
body?: string,
tag?: string,
image?: string,
icon?: string,
badge?: string,
sound?: string,
vibrate?: VibratePattern,
timestamp?: number,
renotify?: boolean,
silent?: boolean,
requireInteraction?: boolean,
data?: ?any,
actions?: Array<NotificationAction>,
...
};
declare class Notification extends EventTarget {
constructor(title: string, options?: NotificationOptions): void;
static +permission: NotificationPermission;
static requestPermission(
callback?: (perm: NotificationPermission) => mixed,
): Promise<NotificationPermission>;
static +maxActions: number;
onclick: ?(evt: Event) => mixed;
onclose: ?(evt: Event) => mixed;
onerror: ?(evt: Event) => mixed;
onshow: ?(evt: Event) => mixed;
+title: string;
+dir: NotificationDirection;
+lang: string;
+body: string;
+tag: string;
+image?: string;
+icon?: string;
+badge?: string;
+vibrate?: Array<number>;
+timestamp: number;
+renotify: boolean;
+silent: boolean;
+requireInteraction: boolean;
+data: any;
+actions: Array<NotificationAction>;
close(): void;
}
/* Trusted Types
* https://w3c.github.io/trusted-types/dist/spec/#trusted-types
*/
declare class TrustedHTML {
toString(): string;
toJSON(): string;
}
declare class TrustedScript {
toString(): string;
toJSON(): string;
}
declare class TrustedScriptURL {
toString(): string;
toJSON(): string;
}