import { Observable, ReplaySubject } from 'rxjs'; export declare class KeyboardEventProvider { /** * HTML canvas element within the HTML5 document to register event listeners to. */ protected _element: HTMLCanvasElement; /** * Time frame for events to be buffered (windowTime in rxjs per ReplaySubject). */ protected _timeframe: number | undefined; protected _keyDownListener: { (event: KeyboardEvent): void; }; protected _keyDownSubject: ReplaySubject; protected _keyPressListener: { (event: KeyboardEvent): void; }; protected _keyPressSubject: ReplaySubject; protected _keyUpListener: { (event: KeyboardEvent): void; }; protected _keyUpSubject: ReplaySubject; /** * This mask saves for which types of events, event.preventDefault should be called. This is useful to disallow * some kinds of standard events. */ protected _preventDefaultMask: KeyboardEventType; constructor(element: HTMLCanvasElement, timeframe?: number); /** * Checks whether or not to prevent the default handling of the given event. This depends on the internal * `preventDefaultMask` which can be modified using `preventDefault` function @see{@link preventDefault}. * @param type - Internal event type of the incoming event. * @param event - Actual event to prevent default handling on (if masked). */ protected preventDefaultOnEvent(type: KeyboardEventType, event: KeyboardEvent): void; /** * Prevent default event handling on specific event types (using preventDefault on the event). * @param types - Event types to prevent default handling on. */ preventDefault(...types: KeyboardEventType[]): void; /** * Allow default event handling on specific event types (not calling preventDefault on the event). * @param types - Event types to allow default handling on. */ allowDefault(...types: KeyboardEventType[]): void; observable(type: KeyboardEventType): Observable | undefined; get keyDown$(): Observable; get keyPress$(): Observable; get keyUp$(): Observable; } export declare enum KeyboardEventType { KeyDown = 1, KeyPress = 2, KeyUp = 4 }