/// <reference types="react" />
import { Graph, IGraph, INode, IEdge } from '@antv/g6';
import { MiniMapConfig, RelationGraph } from './types';
export declare const getGraphSize: (width: number | undefined, height: number | undefined, container: React.RefObject<HTMLDivElement>) => number[];
export declare const processMinimap: (cfg: MiniMapConfig | undefined, graph: Graph) => import("@antv/g6-plugin").Minimap;
export declare const getGraphId: (graph: {
    current?: string;
}) => string;
export declare const renderGraph: (graph: IGraph, data: any) => void;
export declare const bindEvents: (graph: IGraph, props: RelationGraph) => void;
/**
 * 设置 props 默认值
 * props 会在对应图表和 hooks 里面使用，不想加个很长的赋值表达式。
 * layout 使用 merge
 */
export declare const useProps: (props: Partial<RelationGraph>, defaultProps: Partial<RelationGraph>) => {
    layout: any;
    data?: import("@antv/g6").TreeGraphData | import("@antv/g6").GraphData;
    width?: number;
    height?: number;
    pixelRatio?: number;
    nodeType?: string;
    edgeType?: string;
    nodeStyle?: Partial<{
        [key: string]: any;
        x: number;
        y: number;
        r: number;
        radius: number;
        width: number;
        height: number;
        offset: number | number[];
        stroke: string;
        strokeOpacity: number;
        fill: string;
        fillOpacity: number;
        lineWidth: number;
        lineAppendWidth: number;
        lineDash: number[];
        path: string | object[];
        points: object[];
        matrix: number[];
        opacity: number;
        size: number | number[];
        endArrow: boolean | import("@antv/g6").ArrowConfig;
        startArrow: boolean | import("@antv/g6").ArrowConfig;
        shadowColor: string;
        shadowBlur: number;
        shadowOffsetX: number;
        shadowOffsetY: number;
        cursor: string;
        position: string;
        fontSize: number;
        keepVisualSize: boolean;
    }>;
    edgeStyle?: Partial<{
        [key: string]: any;
        x: number;
        y: number;
        r: number;
        radius: number;
        width: number;
        height: number;
        offset: number | number[];
        stroke: string;
        strokeOpacity: number;
        fill: string;
        fillOpacity: number;
        lineWidth: number;
        lineAppendWidth: number;
        lineDash: number[];
        path: string | object[];
        points: object[];
        matrix: number[];
        opacity: number;
        size: number | number[];
        endArrow: boolean | import("@antv/g6").ArrowConfig;
        startArrow: boolean | import("@antv/g6").ArrowConfig;
        shadowColor: string;
        shadowBlur: number;
        shadowOffsetX: number;
        shadowOffsetY: number;
        cursor: string;
        position: string;
        fontSize: number;
        keepVisualSize: boolean;
    }>;
    nodeStateStyles?: import("@antv/g6").StateStyles;
    edgeStateStyles?: import("@antv/g6").StateStyles;
    nodeSize?: number | number[];
    nodeLabelCfg?: {
        style: {
            stroke?: string;
            fontSize?: number;
        };
    };
    edgeLabelCfg?: {
        style: {
            stroke?: string;
            fontSize?: number;
        };
    };
    nodeAnchorPoints?: number[][];
    behaviors?: string[];
    enableEdit?: boolean;
    minimapCfg?: MiniMapConfig;
    handleNodeClick?: (item: INode, graph: IGraph) => void;
    handleEdgeClick?: (item: IEdge, graph: IGraph) => void;
    handleNodeHover?: (item: INode, graph: IGraph) => void;
    handleNodeUnHover?: (item: INode, graph: IGraph) => void;
    handleEdgeHover?: (item: IEdge, graph: IGraph) => void;
    handleEdgeUnHover?: (item: IEdge, graph: IGraph) => void;
    handleCanvasClick?: (graph: IGraph) => void;
    collapseExpand?: boolean;
    colorMap?: Object;
    graphRef?: import("react").MutableRefObject<IGraph>;
    onReady?: (graph: IGraph) => void;
    autoFit?: boolean;
    style?: import("react").CSSProperties;
    className?: string;
    loading?: boolean;
    loadingTemplate?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
    errorTemplate?: string | number | boolean | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactFragment | ((e: Error) => import("react").ReactNode);
};
