export type Vector2 = [number, number] export type WebKitGestureEvent = PointerEvent & { scale: number; rotation: number } export type Target = EventTarget | { current: EventTarget | null } export type PointerType = 'mouse' | 'touch' | 'pen' // replaces NonUndefined from 4.7 and inferior versions export type NonUndefined = T extends undefined ? never : T export type EventHandler = (event: E) => void // rip off from React types export interface DOMHandlers { // Clipboard Events onCopy?: EventHandler onCopyCapture?: EventHandler onCut?: EventHandler onCutCapture?: EventHandler onPaste?: EventHandler onPasteCapture?: EventHandler // Composition Events onCompositionEnd?: EventHandler onCompositionEndCapture?: EventHandler onCompositionStart?: EventHandler onCompositionStartCapture?: EventHandler onCompositionUpdate?: EventHandler onCompositionUpdateCapture?: EventHandler // Focus Events onFocus?: EventHandler onFocusCapture?: EventHandler onBlur?: EventHandler onBlurCapture?: EventHandler // Form Events onChange?: EventHandler onChangeCapture?: EventHandler onBeforeInput?: EventHandler onBeforeInputCapture?: EventHandler onInput?: EventHandler onInputCapture?: EventHandler onReset?: EventHandler onResetCapture?: EventHandler onSubmit?: EventHandler onSubmitCapture?: EventHandler onInvalid?: EventHandler onInvalidCapture?: EventHandler // Image Events onLoad?: EventHandler onLoadCapture?: EventHandler onError?: EventHandler // also a Media Event onErrorCapture?: EventHandler // also a Media Event // Keyboard Events onKeyDown?: EventHandler onKeyDownCapture?: EventHandler onKeyUp?: EventHandler onKeyUpCapture?: EventHandler // Media Events onAbort?: EventHandler onAbortCapture?: EventHandler onCanPlay?: EventHandler onCanPlayCapture?: EventHandler onCanPlayThrough?: EventHandler onCanPlayThroughCapture?: EventHandler onDurationChange?: EventHandler onDurationChangeCapture?: EventHandler onEmptied?: EventHandler onEmptiedCapture?: EventHandler onEncrypted?: EventHandler onEncryptedCapture?: EventHandler onEnded?: EventHandler onEndedCapture?: EventHandler onLoadedData?: EventHandler onLoadedDataCapture?: EventHandler onLoadedMetadata?: EventHandler onLoadedMetadataCapture?: EventHandler onLoadStart?: EventHandler onLoadStartCapture?: EventHandler onPause?: EventHandler onPauseCapture?: EventHandler onPlay?: EventHandler onPlayCapture?: EventHandler onPlaying?: EventHandler onPlayingCapture?: EventHandler onProgress?: EventHandler onProgressCapture?: EventHandler onRateChange?: EventHandler onRateChangeCapture?: EventHandler onSeeked?: EventHandler onSeekedCapture?: EventHandler onSeeking?: EventHandler onSeekingCapture?: EventHandler onStalled?: EventHandler onStalledCapture?: EventHandler onSuspend?: EventHandler onSuspendCapture?: EventHandler onTimeUpdate?: EventHandler onTimeUpdateCapture?: EventHandler onVolumeChange?: EventHandler onVolumeChangeCapture?: EventHandler onWaiting?: EventHandler onWaitingCapture?: EventHandler // MouseEvents onAuxClick?: EventHandler onAuxClickCapture?: EventHandler onClick?: EventHandler onClickCapture?: EventHandler onContextMenu?: EventHandler onContextMenuCapture?: EventHandler onDoubleClick?: EventHandler onDoubleClickCapture?: EventHandler onDrag?: EventHandler onDragCapture?: EventHandler onDragEnd?: EventHandler onDragEndCapture?: EventHandler onDragEnter?: EventHandler onDragEnterCapture?: EventHandler onDragExit?: EventHandler onDragExitCapture?: EventHandler onDragLeave?: EventHandler onDragLeaveCapture?: EventHandler onDragOver?: EventHandler onDragOverCapture?: EventHandler onDragStart?: EventHandler onDragStartCapture?: EventHandler onDrop?: EventHandler onDropCapture?: EventHandler onMouseDown?: EventHandler onMouseDownCapture?: EventHandler onMouseEnter?: EventHandler onMouseLeave?: EventHandler onMouseMove?: EventHandler onMouseMoveCapture?: EventHandler onMouseOut?: EventHandler onMouseOutCapture?: EventHandler onMouseOver?: EventHandler onMouseOverCapture?: EventHandler onMouseUp?: EventHandler onMouseUpCapture?: EventHandler // Selection Events onSelect?: EventHandler onSelectCapture?: EventHandler // Touch Events onTouchCancel?: EventHandler onTouchCancelCapture?: EventHandler onTouchEnd?: EventHandler onTouchEndCapture?: EventHandler onTouchMove?: EventHandler onTouchMoveCapture?: EventHandler onTouchStart?: EventHandler onTouchStartCapture?: EventHandler // Pointer Events onPointerDown?: EventHandler onPointerDownCapture?: EventHandler onPointerMove?: EventHandler onPointerMoveCapture?: EventHandler onPointerUp?: EventHandler onPointerUpCapture?: EventHandler onPointerCancel?: EventHandler onPointerCancelCapture?: EventHandler onPointerEnter?: EventHandler onPointerLeave?: EventHandler onPointerOver?: EventHandler onPointerOverCapture?: EventHandler onPointerOut?: EventHandler onPointerOutCapture?: EventHandler onGotPointerCapture?: EventHandler onGotPointerCaptureCapture?: EventHandler onLostPointerCapture?: EventHandler onLostPointerCaptureCapture?: EventHandler // UI Events onScroll?: EventHandler onScrollCapture?: EventHandler // Wheel Events onWheel?: EventHandler onWheelCapture?: EventHandler // Animation Events onAnimationStart?: EventHandler onAnimationStartCapture?: EventHandler onAnimationEnd?: EventHandler onAnimationEndCapture?: EventHandler onAnimationIteration?: EventHandler onAnimationIterationCapture?: EventHandler // Transition Events onTransitionEnd?: EventHandler onTransitionEndCapture?: EventHandler }