import { IKeypressEvent } from '../events/types'; import { Observable } from 'rxjs'; export { IKeypressEvent }; export declare type KeyCommand = string; export declare type KeyBindings = KeyBinding[]; export declare type KeyBinding = { command: T; key: string; }; export declare type ModifierKey = 'ALT' | 'CTRL' | 'SHIFT' | 'META'; export declare type IKeyPattern = { keys: string[]; modifiers: ModifierKey[]; }; export declare type IKeyMatchEventArgs = { key: string; altKey: boolean; ctrlKey: boolean; shiftKey: boolean; metaKey: boolean; }; export declare type IKeyBindingEvent = { command: T; key: string; preventDefault(): void; stopPropagation(): void; stopImmediatePropagation(): void; cancel(): void; }; export declare type IKeyboardArgs = { bindings?: KeyBindings; keyPress$?: Observable; dispose$?: Observable; }; export declare type IKeyboard = { isDisposed: boolean; dispose$: Observable; dispose(): void; clone(options?: Partial>): IKeyboard; filter(fn: (e: IKeypressEvent) => boolean): IKeyboard; takeUntil(dispose$: Observable): IKeyboard; };