import IMindmap from './IMindmap';
import INodeModel, { NodeModelType } from './INodeModel';
import NodeModel from './NodeModel';
import RelationshipModel from './RelationshipModel';
declare class Mindmap extends IMindmap {
    private _description;
    private _version;
    private _id;
    private _branches;
    private _relationships;
    constructor(id: string, version?: string);
    /** */
    getDescription(): string;
    /** */
    setDescription(value: string): void;
    /** */
    getId(): string;
    /** */
    setId(id: string): void;
    /** */
    getVersion(): string;
    /** */
    setVersion(version: string): void;
    /**
           * @param {mindplot.model.NodeModel} nodeModel
           * @throws will throw an error if nodeModel is null, undefined or not a node model object
           * @throws will throw an error if
           */
    addBranch(nodeModel: INodeModel): void;
    /**
           * @param nodeModel
           */
    removeBranch(nodeModel: INodeModel): void;
    getBranches(): NodeModel[];
    getRelationships(): Array<RelationshipModel>;
    hasAlreadyAdded(node: NodeModel): boolean;
    createNode(type?: NodeModelType, id?: number): NodeModel;
    createRelationship(sourceNodeId: number, targetNodeId: number): RelationshipModel;
    /**
     * @param relationship
     */
    addRelationship(relationship: RelationshipModel): void;
    /**
           * @param relationship
           */
    deleteRelationship(relationship: RelationshipModel): void;
    findNodeById(id: number): any;
    static buildEmpty: (mapId: string) => Mindmap;
}
export default Mindmap;
