import { EventEmitter } from 'events'; /** * Native module for hooking keyboard and mouse events */ declare class IOHook extends EventEmitter { /** * Start hooking engine. Call it when you ready to receive events * @param {boolean} [enableLogger] If true, module will publish debug information to stdout */ start(enableLogger?: boolean): void; /** * Stop rising keyboard/mouse events */ stop(): void; /** * Manual native code load. Call this function only if unload called before */ load(): void; /** * Unload native code and free memory and system hooks */ unload(): void; /** * Enable/Disable stdout debug * @param {boolean} mode */ setDebug(mode: boolean): void; /** * Specify that key event's `rawcode` property should be used instead of * `keycode` when listening for key presses. * * This allows iohook to be used in conjunction with other programs that may * only provide a keycode. * @param {Boolean} using */ useRawcode(using: boolean): void; /** * Enable mouse click propagation (enabled by default). * The click event are emitted and propagated. */ enableClickPropagation(): void; /** * Disable mouse click propagation. * The click event are captured and the event emitted but not propagated to the window. */ disableClickPropagation(): void; /** * Register global shortcut. When all keys in keys array pressed, callback will be called * @param {Array} keys Array of keycodes * @param {Function} callback Callback for when shortcut pressed * @param {Function} [releaseCallback] Callback for when shortcut released * @return {number} ShortcutId for unregister */ registerShortcut( keys: Array, callback: Function, releaseCallback?: Function ): number; /** * Unregister shortcut by ShortcutId * @param {number} shortcutId */ unregisterShortcut(shortcutId: number): void; /** * Unregister shortcut via its key codes * @param {Array} keys */ unregisterShortcut(keys: Array): void; /** * Unregister all shortcuts */ unregisterAllShortcuts(): void; } declare interface IOHookEvent { type: string; keychar?: number; keycode?: number; rawcode?: number; button?: number; clicks?: number; x?: number; y?: number; } declare const iohook: IOHook; export = iohook;