import { Event } from 'microevent.ts'; import JoystickInterface from '../../../machine/io/DigitalJoystickInterface'; import ControlPanelInterface from '../../../machine/stella/ControlPanelInterface'; declare class KeyboardIO { private _target; constructor(_target: HTMLElement | HTMLDocument, mappings?: Array); bind(joystick0: JoystickInterface, joystick1: JoystickInterface, controlPanel: ControlPanelInterface): void; unbind(): void; private _updateActionTable; private _compileMappings; toggleFullscreen: Event; hardReset: Event; togglePause: Event; private _keydownListener; private _keyupListener; private _joystick0; private _joystick1; private _controlPanel; private _dispatchTable; private _compiledMappings; } declare namespace KeyboardIO { const enum Action { select = 0, reset = 1, left0 = 2, right0 = 3, up0 = 4, down0 = 5, left1 = 6, right1 = 7, up1 = 8, down1 = 9, fire0 = 10, fire1 = 11, fullscreen = 12, hardReset = 13, togglePause = 14 } const enum Modifier { ctrl = 1, alt = 2, shift = 4 } interface ComplexKeySpec { keycode: number; modifiers: number; } type keySpec = number | ComplexKeySpec; interface Mapping { action: Action; spec: keySpec | Array; } const defaultMappings: Array; } export { KeyboardIO as default };