import { Dimensions, Point } from '@vertexvis/geometry'; import { BasicInteractionHandler } from '@vertexvis/utils'; import { MarkupCenteringBehavior } from '../types'; export interface MarkupInteractionHandlerScalingOptions { scale?: number; offset?: Point.Point; originatingViewport?: Dimensions.Dimensions; centeringBehavior?: MarkupCenteringBehavior; } export declare abstract class MarkupInteractionHandler implements BasicInteractionHandler { protected element?: HTMLElement; protected elementBounds?: DOMRect; protected scalingOptions: MarkupInteractionHandlerScalingOptions; private resizeObserver; constructor(scalingOptions?: MarkupInteractionHandlerScalingOptions); initialize(element: HTMLElement): void; dispose(): void; updateScalingOptions(scalingOptions: MarkupInteractionHandlerScalingOptions): void; getScalingOptions(): MarkupInteractionHandlerScalingOptions; protected acceptInteraction(): void; private handlePointerDown; private handlePointerMove; private handlePointerUp; protected abstract computeBoundingRect(): DOMRect; protected abstract handleInteractionAttempt(event: PointerEvent): void; protected abstract handleInteractionMove(event: PointerEvent): void; protected abstract handleInteractionEnd(event: PointerEvent): void; }