import React from 'react'; export declare type Callback = (event: KeyboardEvent) => void; /** * short key rule: * 1. KeyboardEvent.key * e.g: a * 2. modifier+key * e.g: Shift+= (Do not use shift++) * modifier list: Atl,Ctrl,Meta,Shift * meta = fn on windows, meta = cmd on osx * 3. CmdOrCtrl+key * equal to ctrl+key on windows and meta+key on osx */ export declare type ShortKey = string; export interface ShortcutsProviderProps { } export interface ShortcutsProviderState { bindKeyDown: (key: ShortKey, callback: Callback) => void; bindKeyPress: (key: ShortKey, keyDownCallback: Callback, keyUpCallback: Callback) => void; unbindKeyDown: (key: ShortKey, callback: Callback) => void; unbindKeyPress: (key: ShortKey, keyDownCallback: Callback, keyUpCallback: Callback) => void; } export declare const ShortcutsContext: React.Context; export declare class ShortcutsProvider extends React.PureComponent { private osx; private keydownHandlers; private keyupHandlers; constructor(props: ShortcutsProviderProps); componentDidMount(): void; componentWillUnmount(): void; render(): JSX.Element; private handleKeyDown; private handleKeyUp; private bindKeyDown; private bindKeyPress; private bindKeyEvent; private unbindKeyDown; private unbindKeyPress; private unbindKeyEvent; private formatKey; } export declare function withShortcutsContext(WrappedComponent: React.ComponentType): React.FunctionComponent;