import { VizConstructorOptions } from "@aduh95/viz.js";
import "d3-transition";
import { ZoomManager, OnZoomChangedHandler } from "./ZoomManager";
import { CanSelectNode, OnSelectionChangedHandler } from "./CanSelectNode";
export declare enum GraphvizEngine {
    CIRCO = "circo",
    DOT = "dot",
    FDP = "fdp",
    NEATO = "neato",
    OSAGE = "osage",
    TWOPI = "twopi"
}
export interface IVizJsSettings {
    removeProlog?: boolean;
    engine?: GraphvizEngine;
    nop?: number;
    images?: [{
        path: string;
        width: number;
        height: number;
    }];
}
export interface VizJsMapProps {
    dot: string;
    settings?: IVizJsSettings;
    scale?: number;
    position?: {
        x?: number;
        y?: number;
    };
    selectedNode?: string | null;
}
export declare const vizJsDefaultSettings: {};
export declare class VizJsMap implements CanSelectNode {
    vizJsConfig?: VizConstructorOptions;
    viz: any;
    renderSync?: (str: string, settings: IVizJsSettings) => string;
    zoomManager: ZoomManager;
    svgContainer: HTMLElement;
    selectedElement?: SVGGraphicsElement | null;
    selectedElementStrokeWidth?: string;
    onSelectionChanged?: OnSelectionChangedHandler;
    constructor(svgContainer: HTMLElement, renderSync: ((str: string, settings: IVizJsSettings) => string) | null, config: VizConstructorOptions | null, onZoomChanged?: OnZoomChangedHandler, onSelectionChanged?: OnSelectionChangedHandler);
    renderAsync(dot: string, options: IVizJsSettings): Promise<any>;
    render(props: VizJsMapProps): Promise<void>;
    getNodeWithArgdownId(id: string): SVGGraphicsElement | undefined;
    getArgdownId(node: SVGGraphicsElement): string;
    deselectNode(): void;
    private _deselectNode;
    selectNode(id: string): void;
}
