interface KeyCode { key?: string; ctrlKey: boolean; metaKey: boolean; shiftKey: boolean | null; } declare type Callback = (e: KeyboardEvent) => void; interface Key extends KeyCode { id: number; callback: Callback; } export default class Keys { handlers: { [key: string]: Key[]; }; nextIndex: number; constructor(); register(key: string, callback: Callback): number; unregister(key: string, id: number): boolean; trigger(e: KeyboardEvent): void; listen(onKeyDown: () => void, onKeyUp: () => void): void; } export {};