import { WheelDirection, UiohookKey } from "uiohook-napi"; import { KeyboardEventType, MouseEventType, WheelEventType, MouseButton, VerticalScroll, HorizontalScroll } from "./constants.js"; export declare type GlobalMouseEvent = { type: keyof typeof MouseEventType; alt: boolean; ctrl: boolean; meta: boolean; shift: boolean; button: number; buttonName: keyof typeof MouseButton | "OTHER"; clicks: number; x: number; y: number; }; export declare type GlobalScrollEvent = { type: keyof typeof WheelEventType; alt: boolean; ctrl: boolean; meta: boolean; shift: boolean; direction: keyof typeof WheelDirection; rotation: keyof typeof VerticalScroll | keyof typeof HorizontalScroll; x: number; y: number; }; export declare type KeyName = keyof typeof UiohookKey; export declare type GlobalKeyboardEvent = { type: keyof typeof KeyboardEventType; alt: boolean; ctrl: boolean; meta: boolean; shift: boolean; key: number; keyName: KeyName | "OTHER"; }; export declare type GlobalInputEvent = GlobalMouseEvent | GlobalScrollEvent | GlobalKeyboardEvent; export declare type HookHandler = (e: GlobalInputEvent) => void; export interface HookHandle { readonly isActive: boolean; start(): void; stop(): void; toggle(): void; } export interface Hook { readonly once: Hook; do(handler: HookHandler): HookHandle; }