import { Destroyable, IDestroyable } from 'destroyable'; import { Observable } from 'rxjs/internal/Observable'; import { Subject } from 'rxjs/internal/Subject'; import { Promisable } from 'type-fest'; import { BoundingBox } from 'xyzt'; import { ITouchController } from '../interfaces/ITouchController'; import { TouchFrame } from '../touch/TouchFrame'; import { WithOptional } from '../utils/WithOptional'; import { Multitouch } from './Multitouch'; interface IMultitouchControllerOptions { touchController: ITouchController; elementBinder: (frame: TouchFrame) => Promisable; } declare const multitouchControllerOptionsDefault: { elementBinder: () => undefined; }; export declare class MultitouchController extends Destroyable implements IDestroyable { readonly touchController: ITouchController; readonly multitouches: Subject>; private ongoingMultitouches; private readonly elementBinder; constructor(options: WithOptional, keyof typeof multitouchControllerOptionsDefault>); private watchNewTouchesAndPassThemToMultitouches; get hoveredElements(): Observable; get hoveredElementsChanges(): Observable<{ previous?: TElement; current?: TElement; }>; destroy(): Promise; } export {};