import { Observable, ReplaySubject } from 'rxjs'; export declare class TouchEventProvider { /** * 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 _startListener: { (event: TouchEvent): void; }; protected _startSubject: ReplaySubject; protected _endListener: { (event: TouchEvent): void; }; protected _endSubject: ReplaySubject; protected _moveListener: { (event: TouchEvent): void; }; protected _moveSubject: ReplaySubject; protected _cancelListener: { (event: TouchEvent): void; }; protected _cancelSubject: ReplaySubject; /** * This mask saves for which types of events, event.preventDefault should be called. * This is useful to disallow some kinds of standard events like scrolling or clicking on links. */ protected _preventDefaultMask: TouchEventProvider.Type; 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 prevenDefault}. * @param type - Internal event type of the incoming event. * @param event - Actual event to prevent default handling on (if masked). */ protected preventDefaultOnEvent(type: TouchEventProvider.Type, event: TouchEvent): void; /** * Prevent default event handling on specific event type (using prevenDefault on the event). * @param types - Event types to prevent default handling on. */ preventDefault(...types: TouchEventProvider.Type[]): void; /** * Allow default event handling on specific event type (not calling preventDefault on the event). * @param types - Event types to allow default handling on. */ allowDefault(...types: TouchEventProvider.Type[]): void; observable(type: TouchEventProvider.Type): Observable; get start$(): Observable; get end$(): Observable; get move$(): Observable; get cancel$(): Observable; } export declare namespace TouchEventProvider { enum Type { Start = 1, End = 2, Move = 4, Cancel = 8 } }