/** @module interactivity */ /** */ /** * Sets up mouse and touch event handlers for an element * and provides methods for attaching callbacks. * * @param spec - Specification object. * @param spec.element - The element to attach the events to, * @param spec.onMouseDown - mousedown event callback. * @param spec.onMouseMove - mousemove event callback. * @param spec.onMouseUp - mouseup event callback. * @param spec.onTouchStart - touchstart event callback. * @param spec.onTouchMove - touchmove event callback. * @param spec.onTouchEnd - touchend event callback. * * @returns A readonly object. */ export declare function mouseAndTouch(element: HTMLElement): Readonly<{ readonly isAttached: boolean; attach(): Readonly; detach(): Readonly; onStart(callback: (event: MouseEvent | TouchEvent) => void): Readonly; onMove(callback: (event: MouseEvent | TouchEvent) => void): Readonly; onEnd(callback: (event: MouseEvent | TouchEvent) => void): Readonly; onMouseStart(callback: (event: MouseEvent) => void): Readonly; onMouseMove(callback: (event: MouseEvent) => void): Readonly; onMouseEnd(callback: (event: MouseEvent) => void): Readonly; onTouchStart(callback: (event: TouchEvent) => void): Readonly; onTouchMove(callback: (event: TouchEvent) => void): Readonly; onTouchEnd(callback: (event: TouchEvent) => void): Readonly; }>;