declare var _default: Pointer; export default _default; /** * POINTER EVENTS TRACKER ------------------------------------------------------ * Global PointerEvent observable instance for mouse, pen and touch events. * * @example: * import pointer from '@webframer/js/pointer.js' * pointer.addDragBehavior( // attach drag behavior to targetNode * {onDrag, onDragStart, onDragEnd}, targetNode, groupId? * ) * pointer.removeDragBehavior(callbackOrNodeOrId) * pointer.unsubscribe() // pause Pointer Event subscription * pointer.subscribe() // resume Pointer Event subscription * * ----------------------------------------------------------------------------- */ declare class Pointer { constructor({ ignoreEventsFrom }?: { ignoreEventsFrom: any; }); ignoreEventsFrom: { html: boolean; body: boolean; }; _dragNodes: Map; /** * Add Pointer Observable for node element * @example: * class PenTool extend PureComponent { * setup = () => pointer.addDrag({onDrag: this.enable}, this.containerElement, 'PenTool') * remove = () => pointer.removeDrag(this.containerElement) * } * @param {{ * onDrag?: function, * onDragStart?: function, * onDragEnd?: function, * onDragDown?: function, * onDragUp?: function, * }} event handlers - will get `PointerEvent` as argument * @param {Element} node - element to listen for pointer events * @param {string|number} [id] - group id to remove all drags on unmount * @returns {Element} node - to be used for removing the drag */ addDragBehavior: ({ onDrag, onDragStart, onDragEnd, onDragDown, onDragUp }: { onDrag?: Function; onDragStart?: Function; onDragEnd?: Function; onDragDown?: Function; onDragUp?: Function; }, node: Element, id?: string | number | undefined) => Element; /** * Remove Pointer Observable for all drags by `callback` or group `id` or `element` * @example: * // Initial setup * const observable = pointer.addDrag(this.enable, KEY.p, 'PenTool') * // Remove all drags by callback * pointer.removeDrag(observable) * // Same as above * pointer.removeDrag(this.enable) * // Remove all drags by group id * pointer.removeDrag('PenTool') * // Remove all drags by keyCodes * pointer.removeDrag([KEY.p]) * * @param {function|Element|string|number} callbackOrNodeOrId */ removeDragBehavior: (callbackOrNodeOrId: Function | Element | string | number) => void; /** * @param {function} callback */ removeDragByCallback: (callback: Function) => void; /** * @param {Element} node */ removeDragByNode: (node: Element) => void; /** * @param {string|number} id */ removeDragById: (id: string | number) => void; subscribe: () => void; unsubscribe: () => void; subscribeToMove: () => void; unsubscribeFromMove: () => void; _onPointerDown: (event: any) => void; pointerDownEvent: any; pointerMoveCount: number | undefined; subscribedNode: any; _onPointerMove: (event: any) => void; hadDrag: boolean | null | undefined; _onPointerUp: (event: any) => void; }