import { ElementClass } from '@wisemapping/web2d';
import NodeModel from './model/NodeModel';
import Workspace from './Workspace';
import DragTopic from './DragTopic';
import LayoutManager from './layout/LayoutManager';
import SizeType from './SizeType';
import PositionType from './PositionType';
declare abstract class NodeGraph {
    private _mouseEvents;
    private _options;
    private _onFocus;
    private _size;
    private _model;
    private _elem2d;
    constructor(nodeModel: NodeModel, options: any);
    isReadOnly(): boolean;
    getType(): string;
    setId(id: number): void;
    protected _set2DElement(elem2d: ElementClass): void;
    get2DElement(): ElementClass;
    abstract setPosition(point: any, fireEvent: any): void;
    /** */
    addEvent(type: string, listener: any): void;
    /** */
    removeEvent(type: any, listener: any): void;
    /** */
    fireEvent(type: any, event: any): void;
    /** */
    setMouseEventsEnabled(isEnabled: any): void;
    /** */
    isMouseEventsEnabled(): boolean;
    getSize(): SizeType;
    setSize(size: SizeType, force?: boolean): void;
    getModel(): NodeModel;
    setModel(model: NodeModel): void;
    getId(): number;
    setOnFocus(focus: boolean): void;
    abstract closeEditors(): void;
    abstract setCursor(type: string): void;
    abstract getOuterShape(): ElementClass;
    isOnFocus(): boolean;
    dispose(workspace: Workspace): void;
    /** */
    createDragNode(layoutManager: LayoutManager): DragTopic;
    abstract _buildDragShape(): any;
    getPosition(): PositionType;
}
export default NodeGraph;
