import { Vector2 } from 'three'; import EventEmitter from '../EventEmitter.js'; export declare enum InputEvent { PointerDown = "pointer-down", PointerUp = "pointer-up", PointerMove = "pointer-move", PointerCancel = "pointer-cancel", Wheel = "wheel", Click = "click", DoubleClick = "double-click", KeyUp = "key-up", KeyDown = "key-down", ContextMenu = "context-menu" } export interface InputEventPayload { [InputEvent.PointerDown]: Vector2 & { event: PointerEvent; }; [InputEvent.PointerUp]: Vector2 & { event: PointerEvent; }; [InputEvent.PointerMove]: Vector2 & { event: PointerEvent; }; [InputEvent.PointerCancel]: void; [InputEvent.Wheel]: WheelEvent; [InputEvent.Click]: Vector2 & { event: PointerEvent; multiSelect: boolean; }; [InputEvent.DoubleClick]: Vector2 & { event: PointerEvent; multiSelect: boolean; }; [InputEvent.KeyUp]: KeyboardEvent; [InputEvent.KeyDown]: KeyboardEvent; [InputEvent.ContextMenu]: PointerEvent; } export default class Input extends EventEmitter { private static readonly MAX_DOUBLE_CLICK_TIMING; private static readonly MIN_CLICK_TIMING; private tapTimeout; private lastTap; private lastClick; private touchLocation; private container; constructor(container: HTMLElement, restrictKeyInput?: boolean); on(eventType: T, listener: (arg: InputEventPayload[T]) => void): void; _getNormalisedClickPosition(e: MouseEvent | Touch): Vector2; dispose(): void; }