import { IControllerOutputListener } from "../Common/Interfaces/IControllerOutputListener";
import { IDisplayInteractionListener } from "../Common/Interfaces/IDisplayInteractionListener";
import { IZoomView } from "../Common/Interfaces/IZoomView";
import { AbstractDisplayInteractionManager } from "./AbstractDisplayInteractionManager";
import { PointF2D } from "../Common/DataObjects";
export declare abstract class AbstractZoomView implements IControllerOutputListener, IDisplayInteractionListener {
    constructor(displayInteractionManager: AbstractDisplayInteractionManager);
    protected displayInteractionManager: AbstractDisplayInteractionManager;
    protected rangeX: number;
    protected offsetX: number;
    protected rangeY: number;
    protected offsetY: number;
    protected lastRangeX: number;
    protected lastOffsetX: number;
    protected lastRangeY: number;
    protected lastOffsetY: number;
    protected aspectRatio: number;
    protected zoomViews: IZoomView[];
    protected mouseZoomMode: boolean;
    protected usesManuallyControlledZoomMode: boolean;
    private autoScrollY;
    protected abstract convertToUnitsReady(): boolean;
    protected abstract getPositionInUnits(relativePositionX: number, relativePositionY: number): PointF2D;
    protected abstract unitPosTouched(PosInUnits: PointF2D, relPosX: number, relPosY: number): void;
    protected abstract unitPosDoubleTouched(PosInUnits: PointF2D, relPosX: number, relPosY: number): void;
    protected abstract unitPosTouchDown(PosInUnits: PointF2D, relPosX: number, relPosY: number): void;
    protected abstract unitPosTouchUp(PosInUnits: PointF2D, relPosX: number, relPosY: number): void;
    protected abstract unitPosMove(PosInUnits: PointF2D, relativeDisplayPositionX: number, relativeDisplayPositionY: number): void;
    positionTouched(relativePositionX: number, relativePositionY: number): void;
    get TouchActive(): boolean;
    get TouchMoving(): boolean;
    positionDoubleTouched(relativePositionX: number, relativePositionY: number): void;
    get UsesManuallyControlledZoomMode(): boolean;
    set UsesManuallyControlledZoomMode(value: boolean);
    mouseDown(relativePositionX: number, relativePositionY: number, activateZoomOnRightMouseButton?: boolean): void;
    mouseUp(relativePositionX: number, relativePositionY: number): void;
    mouseMove(relativeDisplayPositionX: number, relativeDisplayPositionY: number, deltaX: number, deltaY: number): void;
    zoom(scale: number): void;
    addZoomView(zoomable: IZoomView): void;
    XScrollingEnabled: boolean;
    YScrollingEnabled: boolean;
    offsetXMin: number;
    offsetYMin: number;
    rangeXMin: number;
    rangeYMin: number;
    offsetXMax: number;
    offsetYMax: number;
    rangeXMax: number;
    rangeYMax: number;
    lockRanges: boolean;
    get OffsetX(): number;
    set OffsetX(value: number);
    get OffsetY(): number;
    set OffsetY(value: number);
    get RangeX(): number;
    set RangeX(value: number);
    get RangeY(): number;
    set RangeY(value: number);
    protected set AspectRatio(value: number);
    initialize(offsetX: number, rangeX: number, offsetY: number, rangeY: number): void;
    setHorizontalViewport(offsetX: number, rangeX: number): void;
    setVerticalViewport(offsetY: number, rangeY: number): void;
    viewSizeChanged(displayWidthInPixel: number, displayHeightInPixel: number): void;
    outputChanged(directlySet: boolean, currentValue: number, expectedValue: number): void;
    setOffsetXValueOnly(offsetX: number): void;
    setXOffset(offsetX: number, animated: boolean): void;
    setOffsetYValueOnly(offsetY: number): void;
    setYOffset(offsetY: number, animated: boolean): void;
    private selectScrollControllerY;
    displaySizeChanged(width: number, height: number): void;
}
