import { Point, Vector3 } from '@vertexvis/geometry';
import { InteractionApi, InteractionHandler } from '../interactions';
import { PinController } from './controller';
import { Pin } from './model';
export declare class PinsInteractionHandler implements InteractionHandler {
    private controller;
    private element?;
    private api?;
    private cursor?;
    private xOffset?;
    private yOffset?;
    private rectObserver;
    private droppableSurfaces;
    private get elementRect();
    constructor(controller: PinController, xOffset: number, yOffset: number);
    initialize(element: HTMLElement, api: InteractionApi): void;
    dispose(): void;
    getWorldPositionForPoint(pt: Point.Point): Promise<Vector3.Vector3 | undefined>;
    handlePlacePin(pt: Point.Point, existingPin?: Pin): Promise<void>;
    private handlePointerMove;
    private getCursorType;
    private handleDrag;
    private handlePointerDown;
    private handlePointerUp;
    private addCursor;
    private isDroppableSurface;
    protected ifInitialized<R>(f: (data: {
        element: HTMLElement;
        api: InteractionApi;
    }) => R): R;
    private clearCursor;
}
