/// <reference types="lodash" />
import { Manager } from './Manager';
import { Transform } from './Transform';
import { Point } from './Point';
import { Packer } from './Packer';
export declare class ZoomPan {
    readonly manager: Manager;
    layer?: HTMLElement;
    owner?: HTMLElement;
    /**
     * 不能直接引用 amis 里面，这样，后端 node 就没办法执行了
     */
    openContextMenus?: (info: any, menus: any) => void;
    resizeSensor?: (dom: any, callback: any) => any;
    transform: Transform;
    transformOrigin: Point;
    mouseX: number;
    mouseY: number;
    unmountCallbacks: Array<() => void>;
    packer?: Packer;
    lazyPackNewbies: import("lodash").DebouncedFunc<() => void>;
    constructor(manager: Manager);
    get scale(): number;
    get scalePercent(): string;
    attach(dom: HTMLDivElement | null): void;
    thumb: HTMLDivElement | null;
    thumbFrame: HTMLDivElement | null;
    attachThumbDom(thumb: HTMLDivElement | null): void;
    mount(): void;
    update(): void;
    unmount(): void;
    autoCenter(zoomTofit?: boolean): void;
    caculateOrigin(): void;
    getBoundingBox(): DOMRect;
    get items(): import("mobx").IObservableArray<import("./ModelStore").ModelStore>;
    getClientBox(): {
        left: number;
        top: number;
        width: number;
        height: number;
        right: number;
        bottom: number;
    };
    private getMouseOffset;
    /**
     * 缩放、可以指定中心点。
     * @param x
     * @param y
     * @param ratio
     */
    zoomTo(x: number, y: number, ratio: number): void;
    /**
     *  缩小。
     */
    zoomOut(): void;
    /**
     * 放大
     */
    zoomIn(): void;
    /**
     * 重置缩放
     */
    resetZoom(): void;
    /**
     * 移动相对位置
     * @param dx
     * @param dy
     * @param smooth
     */
    moveBy(dx: number, dy: number, smooth?: boolean): void;
    /**
     * 移动到指定位置。
     * @param x
     * @param y
     */
    moveTo(x: number, y: number): void;
    reArrange(): void;
    scrollItemIntoView(modelKey: string): void;
    /**
     * 自动摆放新的模型
     */
    packBox(packUnpositionedOnly?: boolean): void;
    updateView(): void;
    updateThumbView(): void;
    private handleMouseDown;
    private handleMouseMove;
    private handleMouseUp;
    private handleMouseWheel;
    private handleContextMenu;
}
