import '../../../globals.js';
/**
 * @extends {Object}
 * @type {{KEY_A: string, KEY_C: string, KEY_DOWN_ARROW: string, KEY_DELETE: string, KEY_B: string, KEY_E: string, KEY_D: string, KEY_G: string, KEY_F: string, KEY_I: string, KEY_H: string, KEY_K: string, KEY_RIGHT_ARROW: string, KEY_J: string, isArrowKey(Event): boolean, KEY_M: string, KEY_L: string, KEY_O: string, KEY_N: string, KEY_Q: string, KEY_P: string, KEY_S: string, KEY_BACKSPACE: string, KEY_R: string, KEY_U: string, KEY_MINUS: string, KEY_T: string, isMovementKey(Event): boolean, KEY_W: string, KEY_V: string, CONTROL_KEYS: (string)[], KEY_Y: string, KEY_X: string, getNumberFromCode(Event): (number|null), isAltKey(KeyboardEvent): *, KEY_Z: string, ARROW_KEYS: (string)[], KEY_SHIFT_LEFT: string, KEY_HOME: string, KEY_ESCAPE: string, isShiftKey(KeyboardEvent): *, KEY_ALT_LEFT: string, KEY_LEFT_ARROW: string, KEY_TAB: string, isAnyKeyEvent(x:Event, y:Array<string>): boolean, getEventCode(Event): (string|null), KEY_EQUALS: string, KEY_PAGE_UP: string, KEY_ALT_RIGHT: string, isWASDKey(Event): boolean, ALT_KEYS: (string)[], KEY_PAGE_DOWN: string, isNumberKey(Event): boolean, SHIFT_KEYS: (string)[], KEY_PLUS: string, WASD_KEYS: (string)[], isControlKey(KeyboardEvent): *, KEY_SHIFT_RIGHT: string, isRangeKey(Event): boolean, KEY_CONTROL_RIGHT: string, KEY_ENTER: string, isKeyEvent(Event, string): boolean, KEY_UP_ARROW: string, KEY_1: string, KEY_0: string, KEY_CONTROL_LEFT: string, KEY_3: string, KEY_2: string, KEY_5: string, KEY_4: string, KEY_7: string, KEY_6: string, KEY_9: string, MOVEMENT_KEYS: (string)[], KEY_8: string, KEY_SPACE: string, KEY_END: string}}
 */
declare const KeyboardUtils: {
    KEY_SPACE: string;
    KEY_ENTER: string;
    KEY_TAB: string;
    KEY_RIGHT_ARROW: string;
    KEY_LEFT_ARROW: string;
    KEY_UP_ARROW: string;
    KEY_DOWN_ARROW: string;
    KEY_SHIFT_LEFT: string;
    KEY_SHIFT_RIGHT: string;
    KEY_ALT_LEFT: string;
    KEY_ALT_RIGHT: string;
    KEY_CONTROL_LEFT: string;
    KEY_CONTROL_RIGHT: string;
    KEY_META_LEFT: string;
    KEY_META_RIGHT: string;
    KEY_META_LEFT_FIREFOX: string;
    KEY_META_RIGHT_FIREFOX: string;
    KEY_SHIFT: string;
    KEY_ALT: string;
    KEY_CONTROL: string;
    KEY_ESCAPE: string;
    KEY_DELETE: string;
    KEY_BACKSPACE: string;
    KEY_PAGE_UP: string;
    KEY_PAGE_DOWN: string;
    KEY_END: string;
    KEY_HOME: string;
    KEY_0: string;
    KEY_1: string;
    KEY_2: string;
    KEY_3: string;
    KEY_4: string;
    KEY_5: string;
    KEY_6: string;
    KEY_7: string;
    KEY_8: string;
    KEY_9: string;
    KEY_NUMPAD_0: string;
    KEY_NUMPAD_1: string;
    KEY_NUMPAD_2: string;
    KEY_NUMPAD_3: string;
    KEY_NUMPAD_4: string;
    KEY_NUMPAD_5: string;
    KEY_NUMPAD_6: string;
    KEY_NUMPAD_7: string;
    KEY_NUMPAD_8: string;
    KEY_NUMPAD_9: string;
    KEY_NUMPAD_DECIMAL: string;
    KEY_NUMPAD_PLUS: string;
    KEY_NUMPAD_MINUS: string;
    KEY_A: string;
    KEY_B: string;
    KEY_C: string;
    KEY_D: string;
    KEY_E: string;
    KEY_F: string;
    KEY_G: string;
    KEY_H: string;
    KEY_I: string;
    KEY_J: string;
    KEY_K: string;
    KEY_L: string;
    KEY_M: string;
    KEY_N: string;
    KEY_O: string;
    KEY_P: string;
    KEY_Q: string;
    KEY_R: string;
    KEY_S: string;
    KEY_T: string;
    KEY_U: string;
    KEY_V: string;
    KEY_W: string;
    KEY_X: string;
    KEY_Y: string;
    KEY_Z: string;
    KEY_EQUALS: string;
    KEY_PLUS: string;
    KEY_MINUS: string;
    KEY_PERIOD: string;
    ARROW_KEYS: string[];
    WASD_KEYS: string[];
    MOVEMENT_KEYS: string[];
    SHIFT_KEYS: string[];
    CONTROL_KEYS: string[];
    ALT_KEYS: string[];
    META_KEYS: string[];
    MODIFIER_KEY_CODES: string[];
    MODIFIER_KEY_TO_CODE_MAP: Map<string, string[]>;
    /**
     * Returns whether the key corresponds to pressing an arrow key
     */
    isArrowKey(domEvent: Event | null): boolean;
    /**
     * Returns true if key is one of keys used for range inputs
     */
    isRangeKey(domEvent: Event | null): boolean;
    /**
     * Returns whether or not the key corresponds to pressing a number key
     */
    isNumberKey(domEvent: Event | null): boolean;
    /**
     * For number keys, return the number of the key, or null if not a number
     */
    getNumberFromCode(domEvent: Event | null): null | number;
    /**
     * Event.code distinguishes between left and right shift keys. If all you care about is the presence
     * of a shift key you can use this.
     */
    isShiftKey(domEvent: Event | null): boolean;
    /**
     * Event.code distinguishes between left and right alt keys. If all you care about is the presence
     * of the alt key you can use this.
     */
    isAltKey(domEvent: Event | null): boolean;
    /**
     * Event.code distinguishes between left and right control keys. If all you care about is the presence
     * of a control key you can use this.
     */
    isControlKey(domEvent: Event | null): boolean;
    /**
     * Event.code distinguishes between left and right alt keys. If all you care about is the presence
     * of the meta key you can use this.
     */
    isMetaKey(domEvent: Event | null): boolean;
    /**
     * Returns whether or not the key corresponds to one of the WASD movement keys.
     */
    isWASDKey(domEvent: Event | null): boolean;
    /**
     * Returns true if the key indicates a 'movement' key in keyboard dragging
     */
    isMovementKey(domEvent: Event | null): boolean;
    /**
     * If the domEvent corresponds to any of the provided keys in the list.
     */
    isAnyKeyEvent(domEvent: Event | null, keyboardUtilsKeys: string[]): boolean;
    /**
     * Whether the event was of the provided KeyboardUtils string.
     */
    isKeyEvent(domEvent: Event | null, keyboardUtilsKey: string): boolean;
    /**
     * Returns a string with the event.code that can be used to determine the keyboard keys of a KeyboardEvent object.
     * Otherwise, returns null if there is no code on the event. An example usage might look like
     *
     *  const key = KeyboardUtils.getEventCode( domEvent );
     *  if ( key === KeyboardUtils.KEY_A ) {
     *    // You pressed the A key!
     *  }
     *
     * @returns - null if there is no `code` property on the provided Event.
     */
    getEventCode(domEvent: Event | null): string | null;
    /**
     * Returns true when if the provided string is a KeyboardEvent.key for a modifier key. Note that is KeyboardEvent.key
     * **NOT** KeyboardEvent.code. KeyboardEvent.code does not distinguish between left and right modifier keys so we
     * have some special behavior when we detect a modifier key (left or right) is pressed.
     * @param key
     */
    isModifierKey(key: string): boolean;
    ALL_KEYS: string[];
};
export default KeyboardUtils;
//# sourceMappingURL=KeyboardUtils.d.ts.map