import { EventEmitter } from '../../stencil-public-runtime';
import { Point, Vector3 } from '@vertexvis/geometry';
import { StreamApi } from '@vertexvis/stream-api';
import { ReceivedFrame } from '../..';
import { CursorManager } from '../cursors';
import { PerspectiveCamera } from '../scenes';
import { Viewport } from '../types';
import { InteractionApi, InteractionConfigProvider, SceneProvider } from './interactionApi';
import { TapEventDetails } from './tapEventDetails';
export declare class InteractionApiPerspective extends InteractionApi<PerspectiveCamera> {
    constructor(stream: StreamApi, cursors: CursorManager, getConfig: InteractionConfigProvider, getScene: SceneProvider, getFrame: () => ReceivedFrame | undefined, getViewport: () => Viewport, tapEmitter: EventEmitter<TapEventDetails>, doubleTapEmitter: EventEmitter<TapEventDetails>, longPressEmitter: EventEmitter<TapEventDetails>, interactionStartedEmitter: EventEmitter<void>, interactionFinishedEmitter: EventEmitter<void>);
    /**
     * Performs a pan operation of the scene's camera, and requests a new image
     * for the updated scene.
     *
     * @param delta A position delta `{x, y}` in the 2D coordinate space of the
     *  viewer.
     */
    panCameraByDelta(delta: Point.Point): Promise<void>;
    zoomCameraToPoint(point: Point.Point, delta: number): Promise<void>;
    walk(delta: Vector3.Vector3): void;
    private computeZoomDistances;
    private computeZoomMinimumDistance;
}
