node-libuiohook
Version:
NodeJS bindings for libuiohook
119 lines (97 loc) • 2.73 kB
TypeScript
declare module "libuiohook-node" {
import { EventEmitter } from "events";
export enum Events {
keypress = "keypress",
keydown = "keydown",
keyup = "keyup",
mouseclick = "mouseclick",
mousedown = "mousedown",
mouseup = "mouseup",
mousemove = "mousemove",
mousedrag = "mousedrag",
mousewheel = "mousewheel",
foreground_changed = "foreground_changed",
foreground_changed_location = "foreground_changed_location",
}
export class IOHook extends EventEmitter {
constructor();
start();
stop();
pause();
}
}
declare namespace LibUIOHookNode {
export enum Events {
keypress = "keypress",
keydown = "keydown",
keyup = "keyup",
mouseclick = "mouseclick",
mousedown = "mousedown",
mouseup = "mouseup",
mousemove = "mousemove",
mousedrag = "mousedrag",
mousewheel = "mousewheel",
foreground_changed = "foreground_changed",
foreground_changed_location = "foreground_changed_location",
window_move_size_start = "window_move_size_start",
window_move_size_end = "window_move_size_end",
window_minimized = "window_minimized",
window_restored = "window_restored",
}
export interface INativeEventMouse {
button: number;
clicks: number;
x: number;
y: number;
}
export interface INativeEventKeyboard {
keychar: number;
keycode: number;
rawcode: number;
}
export interface INativeEventWheel {
amount: number;
clicks: number;
wheeltype: number;
direction: number;
rotation: number;
x: number;
y: number;
}
export interface INativeEvent {
type: number;
mask: number;
mouse?: INativeEventMouse;
keyboard?: INativeEventKeyboard;
wheel?: INativeEventWheel;
bounds?: IRect;
applicationName?: string;
}
export interface IHookEvent {
type: Events;
mask: number;
button?: number;
clicks?: number;
x?: number;
y?: number;
keychar?: number;
keycode?: number;
rawcode?: number;
amount?: number;
direction?: number;
rotation?: number;
wheeltype?: number;
isShiftPressed?: boolean;
isCtrlPressed?: boolean;
isMetaPressed?: boolean;
isAltPressed?: boolean;
bounds?: IRect;
applicationName?: string;
}
interface IRect {
x: number;
y: number;
width: number;
height: number;
}
}