/// <reference types="react" />
import AppContext from '../../context';
import { NODE_HEIGHT, NODE_WIDTH, ASPECTRATIONODE } from './constants';
import * as NodeComponents from './nodes';
export { searchService, onNodeDrop } from './service';
import { FlowchartProps } from '../../interface';
export { NodeComponents, NODE_HEIGHT, NODE_WIDTH, AppContext, ASPECTRATIONODE };
export declare const getRegisterNode: (flowchartId: string) => {
    parentId: string;
    id: string;
    renderKey: string;
    name: string;
    label: string;
    popoverContent: import("react").Component<any, {}, any> | import("react").FC<any>;
    width: number;
    height: number;
    ports: import("@antv/xflow").NsGraph.INodeAnchor[] | import("@antv/xflow").NsGraph.INodePortMeta | {
        items: {
            group: string;
            id: string;
        }[];
        groups: {
            top: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
            right: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
            bottom: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
            left: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
        };
    };
    originData: {
        name: string;
        component: import("@antv/xflow").NsGraph.INodeRender<any>;
        popover?: import("react").Component<any, {}, any> | import("react").FC<any>;
        label?: string;
        width?: number;
        height?: number;
        ports?: import("@antv/xflow").NsGraph.INodeAnchor[] | import("@antv/xflow").NsGraph.INodePortMeta;
    };
    isCustom: boolean;
}[];
export declare const treeDataService: (meta: any, modelService: any, flowchartId: any) => Promise<({
    parentId: string;
    id: string;
    renderKey: string;
    name: string;
    label: string;
    popoverContent: import("react").Component<any, {}, any> | import("react").FC<any>;
    width: number;
    height: number;
    ports: import("@antv/xflow").NsGraph.INodeAnchor[] | import("@antv/xflow").NsGraph.INodePortMeta | {
        items: {
            group: string;
            id: string;
        }[];
        groups: {
            top: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
            right: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
            bottom: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
            left: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
        };
    };
    originData: {
        name: string;
        component: import("@antv/xflow").NsGraph.INodeRender<any>;
        popover?: import("react").Component<any, {}, any> | import("react").FC<any>;
        label?: string;
        width?: number;
        height?: number;
        ports?: import("@antv/xflow").NsGraph.INodeAnchor[] | import("@antv/xflow").NsGraph.INodePortMeta;
    };
    isCustom: boolean;
} | {
    parentId: string;
    id: string;
    renderKey: string;
    name: string;
    label: string;
    popoverContent: () => string;
    width: number;
    height: number;
    ports: {
        items: {
            group: string;
            id: string;
        }[];
        groups: {
            top: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
            right: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
            bottom: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
            left: {
                position: {
                    name: string;
                };
                attrs: {
                    circle: {
                        r: number;
                        magnet: boolean;
                        stroke: string;
                        strokeWidth: number;
                        fill: string;
                        style: {
                            visibility: string;
                        };
                    };
                };
                zIndex: number;
            };
        };
    };
})[]>;
export declare const setNodeRender: (config: any, nodePanelProps: FlowchartProps['nodePanelProps']) => void;
