import * as d3 from 'd3';
import { INode, IMarkmapOptions, IMarkmapState, IMarkmapFlexTreeItem } from './types';
import * as plugins from './plugins';
import { Hook } from './util/hook';
export { plugins };
declare type ID3SVGElement = d3.Selection<SVGElement, IMarkmapFlexTreeItem, HTMLElement, IMarkmapFlexTreeItem>;
export declare class Markmap {
    options: IMarkmapOptions;
    state: IMarkmapState;
    svg: ID3SVGElement;
    styleNode: d3.Selection<HTMLStyleElement, IMarkmapFlexTreeItem, HTMLElement, IMarkmapFlexTreeItem>;
    g: d3.Selection<SVGGElement, IMarkmapFlexTreeItem, HTMLElement, IMarkmapFlexTreeItem>;
    zoom: d3.ZoomBehavior<Element, unknown>;
    static transformHtml: Hook<(mm: Markmap, nodes: HTMLElement[]) => void>;
    constructor(svg: string | SVGElement | ID3SVGElement, opts?: IMarkmapOptions);
    getStyleContent(): string;
    updateStyle(): void;
    handleZoom(): void;
    handleClick(d: IMarkmapFlexTreeItem): void;
    initializeData(node: INode): void;
    setOptions(opts: IMarkmapOptions): void;
    setData(data?: INode, opts?: IMarkmapOptions): void;
    renderData(originData?: INode): void;
    transition<T extends d3.BaseType, U, P extends d3.BaseType, Q>(sel: d3.Selection<T, U, P, Q>): d3.Transition<T, U, P, Q>;
    fit(): Promise<void>;
    rescale(scale: number): Promise<void>;
    static create(svg: string | SVGElement | ID3SVGElement, opts?: IMarkmapOptions, data?: INode): Markmap;
}
export declare type IMarkmap = typeof Markmap;
export declare function markmap(svg: string | SVGElement | ID3SVGElement, data?: INode, opts?: IMarkmapOptions): Markmap;
export declare function loadPlugins(items: any[], options: any): Promise<void>;
