import "d3-transition";
import { IMap, DefaultSettings } from "@argdown/core";
import { ZoomManager, OnZoomChangedHandler } from "./ZoomManager";
import { CanSelectNode, OnSelectionChangedHandler } from "./CanSelectNode";
export interface IDagreLabelSettings {
    bold?: boolean;
    font?: string;
    fontSize?: number;
    charactersInLine?: number;
}
export interface IDagreNodeSettings {
    lineWidth?: number;
    rx?: number;
    ry?: number;
    title?: IDagreLabelSettings;
    text?: IDagreLabelSettings;
}
export interface IDagreSettings {
    rankDir?: string;
    rankSep?: number;
    nodeSep?: number;
    measureLineWidth?: boolean;
    argument?: IDagreNodeSettings;
    statement?: IDagreNodeSettings;
    group?: {
        lineWidth?: number;
        title?: IDagreLabelSettings;
    };
}
export declare const dagreDefaultSettings: DefaultSettings<IDagreSettings>;
export interface IDagreMapProps {
    settings?: IDagreSettings;
    map: IMap;
    selectedNode?: string | null;
    position?: {
        x?: number;
        y?: number;
    };
    scale?: number;
}
export declare class DagreMap implements CanSelectNode {
    svgElement: SVGSVGElement;
    zoomManager: ZoomManager;
    selectedElement?: SVGGraphicsElement | null;
    onSelectionChanged?: OnSelectionChangedHandler;
    constructor(svgElement: SVGSVGElement, onZoomChanged?: OnZoomChangedHandler, onSelectionChanged?: OnSelectionChangedHandler);
    render(props: IDagreMapProps): void;
    deselectNode(): void;
    private _deselectNode;
    selectNode(id: string): void;
}
