import { MindMapDataProvider } from './data-provider';
import { LayoutProvider } from './layout-provider';
import { ViewProvider } from './view-provider';
import { MindMapMind } from './mind-map-mind';
import { Subject } from './utils/subject';
export interface MindMapModuleOptsView {
    hmargin: number;
    vmargin: number;
    lineWidth: number;
    lineColor: string;
}
export interface MindMapModuleOptsDefaultEventHandle {
    canHandleMouseDown: boolean;
    canHandleClick: boolean;
    canHandleDblclick: boolean;
}
export interface MindMapModuleOpts {
    container?: string;
    mode?: any;
    layout?: any;
    supportHtml?: any;
    view?: MindMapModuleOptsView;
    shortcut?: any;
    editable?: boolean;
    selectable?: boolean;
    defaultEventHandle?: MindMapModuleOptsDefaultEventHandle;
    theme?: any;
    depth?: number;
    canRootNodeEditable?: boolean;
    hasInteraction?: boolean;
    hierarchyRule?: {
        ROOT: any;
        [propName: string]: {
            name: string;
            getChildren: any;
        };
    };
    enableDraggable?: boolean;
}
export declare class MindMapMain {
    version: string;
    opts: MindMapModuleOpts;
    options: MindMapModuleOpts;
    inited: boolean;
    mind: MindMapMind;
    eventHandles: any[];
    static direction: any;
    static eventType: any;
    data: MindMapDataProvider;
    layout: LayoutProvider;
    view: ViewProvider;
    shortcut: any;
    mindMapDataTransporter: Subject;
    mindMapDataReceiver: Subject;
    static plugin: any;
    static plugins: any;
    static registerPlugin: any;
    static initPluginsNextTick: any;
    static initPlugins: any;
    static show: any;
    constructor(options: any);
    init(): void;
    registerPlugin(): void;
    enableEdit(): void;
    disableEdit(): void;
    enableEventHandle(event_handle: any): void;
    disableEventHandle(event_handle: any): void;
    getEditable(): boolean;
    getNodeEditable(node: any): boolean;
    setTheme(theme: any): void;
    eventBind(): void;
    mouseDownHandle(e: any): void;
    clickHandle(e: any): void;
    dblclickHandle(e: any): void;
    getSelectTypesByHierarchyRule(node?: any): any;
    beginEdit(node: any): any;
    endEdit(): void;
    toggleNode(node: any): any;
    expandNode(node: any): any;
    collapseNode(node: any): any;
    expandAll(): void;
    collapseAll(): void;
    expandToDepth(depth: any): void;
    _reset(): void;
    _show(mind: any): void;
    show(mind: any): void;
    getMeta(): {
        name: any;
        author: any;
        version: any;
    };
    getData(data_format?: any): any;
    getDepth(): any;
    getRoot(): any;
    getNode(nodeid: any): any;
    getCurrentHierarchyRule(parent_node: any): any;
    addNode(parent_node: any, nodeid: any, topic: any, data: any): any;
    insertNodeBefore(node_before: any, nodeid: any, topic: any, data: any): any;
    insertNodeAfter(node_after: any, nodeid: any, topic: any, data: any): any;
    removeNode(node: any): any;
    updateNode(nodeid: any, topic: any, selected_type: any): void;
    moveNode(nodeid: any, beforeid: any, parentid: any, direction: any): void;
    selectNode(node: any): any;
    getSelectedNode(): any;
    selectClear(): void;
    isNodeVisible(node: any): boolean;
    findNodeBefore(node: any): any;
    findNodeAfter(node: any): any;
    setNodeColor(nodeid: any, bgcolor: any, fgcolor: any): any;
    setNodeFontStyle(nodeid: any, size: any, weight: any, style: any): any;
    setNodeBackgroundImage(nodeid: any, image: any, width: any, height: any, rotation: any): any;
    setNodeBackgroundRotation(nodeid: any, rotation: any): any;
    resize(): void;
    addEventListener(callback: any): void;
    invokeEventHandleNextTick(type: any, data: any): void;
    invokeEventHandle(type: any, data: any): void;
}
