export interface TriggerModifiers { ctrl?: boolean; shift?: boolean; alt?: boolean; meta?: boolean; } export interface MouseTrigger extends TriggerModifiers { button: number; } /** @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/location */ export declare const enum KeyLocation { Standard = 0, Left = 1, Right = 2, Numpad = 3 } export interface KeyboardTrigger extends TriggerModifiers { key: string; location?: KeyLocation; } export type Trigger = KeyboardTrigger | MouseTrigger; export interface WithAction { action(...args: TData): unknown; } export interface KeyboardHandler extends KeyboardTrigger, WithAction { } export interface MouseHandler extends MouseTrigger, WithAction { } export type Handler = KeyboardHandler | MouseHandler; export declare function isMatch(trigger: Trigger, event: KeyboardEvent | MouseEvent): boolean; export declare function find(triggers: T[], event: KeyboardEvent | MouseEvent): T | undefined;