export type Engine = "circo" | "dot" | "fdp" | "neato" | "osage" | "patchwork" | "twopi";
export interface Cluster {
    id: string;
    text: string;
    children: Array<Cluster | Node>;
    x?: number;
    y?: number;
    width?: number;
    height?: number;
}
export interface Node {
    id: string;
    text: string;
    width: number;
    height: number;
    x?: number;
    y?: number;
}
export declare function isCluster(item: Cluster | Node): item is Cluster;
export interface Link {
    id: string;
    source: Node;
    target: Node;
    text: string;
    points?: Array<[number, number]>;
}
export interface Data {
    items: Array<Cluster | Node>;
    links: Link[];
    raw: string;
}
export interface Options {
    engine: Engine;
}
export interface LayoutError {
    error?: string;
    errorDot?: string;
}
export interface LayoutSVG extends LayoutError {
    svg?: string;
}
export interface LayoutJSON extends LayoutError {
    json?: any;
}
export type LayoutSuccess = {
    clusters: Cluster[];
    nodes: Node[];
    links: Link[];
};
export type Layout = LayoutSuccess | LayoutJSON | LayoutSVG;
export declare function isLayoutSuccess(item: any): item is LayoutSuccess;
