import EventEmitter from 'eventemitter3';
import * as Y from 'yjs';
import { ElementModel } from '../model/renderable/ElementModel';
import { Camera } from '../Camera';
import { ShadowEmitter } from '../utils/ShadowEmitter';
export interface EditorEvents {
    clear: () => void;
}
export declare class Editor extends EventEmitter<EditorEvents> {
    rootView: HTMLDivElement;
    private frame;
    private rotator;
    private scope;
    private shadowScope;
    private shadowContainer;
    private ctrlUserMap;
    private viewerId;
    private ctrlId;
    private ctrlNickName;
    private editMode;
    private editCtrlName;
    private editAnchor;
    private lastEditPoint;
    private bounds;
    private targets;
    private editorConfig;
    private aspectRatio;
    private uniformScale;
    private camera;
    private canvasElement;
    private resizeObserver;
    private anchors;
    private title;
    private shadowEmitter;
    constructor(scope: paper.PaperScope, shadowScope: paper.PaperScope, shadowEmitter: ShadowEmitter, canvasElement: HTMLCanvasElement, camera: Camera, initConfig: {
        viewerId: string;
        ctrlId: string;
        ctrlUserMap: Y.Map<any>;
        ctrlNickName: string;
    });
    private alignRootView;
    private handleMatrix;
    private handlePointerDown;
    private handlePointerMove;
    private hiddenCtrlPoints;
    private handlePointerUp;
    private handleFrameDBClick;
    private createTextEditor;
    private createAnchor;
    private setAnchorsVisiblity;
    private updateControlPointsPosition;
    private createControlPoint;
    private removeAllControlPoints;
    private applyConfig;
    setTargets(models: ElementModel[]): void;
    updateBoundsByShadow(): void;
    updateBounds: () => void;
    private translateShadow;
    private resetShadow;
    hidden(): void;
    show(): void;
    dispose(): void;
}
//# sourceMappingURL=Editor.d.ts.map