import { IUserInteractionTranslate, IUserInteractionTranslateAndZoom } from "../hooks/userInteractions/common";
import { HtmlElementRefState } from "./htmlElementRefState";
import { RootStore } from "./rootStore";
import { Point } from "../utils/point";
export declare class DiagramState implements IUserInteractionTranslate, IUserInteractionTranslateAndZoom {
    private _offset;
    private _zoom;
    private _ref;
    private _rootStore;
    private _importGenerationId;
    constructor(rootStore: RootStore);
    import: (state?: IDiagramState | undefined) => void;
    export: () => IDiagramState;
    setOffset: (newOffset: Point | null | undefined) => void;
    setZoom: (newZoom: number | null | undefined) => void;
    incrementImportGenerationId: () => void;
    get importGenerationId(): number;
    zoomIn: () => void;
    zoomOut: () => void;
    zoomInto: (pointToZoomInto: Point, zoomMultiplicator: number) => void;
    setTransformation: (newOffset: Point, newZoom: number) => void;
    translate: (translateBy: Point) => void;
    translateAndZoomInto: (translateBy: Point, pointToZoomInto: Point, zoomMultiplicator: number) => void;
    zoomIntoCenter: (zoomMultiplicator: number) => void;
    get ref(): HtmlElementRefState;
    get offset(): Point;
    get zoom(): number;
    getRenderedZoom(): number | null;
    /**
     * Get position on Diagram in its coordinates system (including zoom) by mouse/touch position.
     * @param pointerPosition position of mouse or finger on the screen
     */
    getPositionByPointer: (pointerPosition: Point) => Point;
    zoomToFit: () => void;
    private _getNodesBoundingBoxWithPadding;
}
export interface IDiagramState {
    offset: Point;
    zoom: number;
}
//# sourceMappingURL=diagramState.d.ts.map