import { Base } from '../base/Base';
import { App } from '../core/App';
import { PickingInfo, Mesh } from '../runtime';
import { KeyCode } from './KeyCode';
/**
 * 事件管理器
 */
export declare class EventMgr extends Base {
    private _observer;
    /**
     * 指针处的网格
     */
    _pointerMesh: Mesh | null;
    /**
     * 拾取对象
     */
    _pickInfo: PickingInfo | null;
    /**
     * 长按定时器ID
     */
    private _longDownId;
    private _pointerCanvas;
    /**
     * 鼠标X轴坐标
     */
    mouseX: number;
    /**
     * 鼠标Y轴坐标
     */
    mouseY: number;
    private _onPointerEnterCanvas;
    private _onPointerLeaveCanvas;
    /**
     * 热键字典
     */
    private _hotKeyMap;
    _pressedKeys: Set<KeyCode>;
    /**
     * 实例化一个事件管理器对象
     * @param app
     */
    constructor(app: App);
    /**
     * 获取指针是否在画布之上
     */
    get pointerCanvas(): boolean;
    /**
     * 注册热键
     * @param keys 键
     * @param action 动作
     */
    registerHotKey(keys: KeyCode[], action: () => void): string;
    /**
     * 取消注册热键
     * @param id 热键注册返回的ID
     */
    unRegisterHotKey(id: string): void;
    /**
     * 是否按下了某个键
     * @param key 键
     */
    isPressed(key: KeyCode): boolean;
    private _onKeyDown;
    private _onKeyUp;
    /**
     *
     * @param eventData
     */
    private _handleEvent;
    /**
     *
     * @param eventData
     */
    private _onMove;
    /**
     *
     * @param eventData
     */
    private _onWheel;
    /**
     *
     * @param {PointerInfo} eventData
     */
    private _onDown;
    private _clearLongDown;
    /**
     *
     * @param eventData
     */
    private _onUp;
    /**
     *
     * @param eventData
     */
    private _onPick;
    /**
     *
     * @param eventData
     */
    private _onTap;
    /**
     *
     * @param eventData
     */
    private _onDoubleTap;
    /**
     * 释放
     */
    dispose(): void;
}
