import type GraphLink from './graphLink';
import type { Link, Node, Meta } from './model';
export declare enum NodeLineType {
    INSERT = 0,
    SHRINK = 1
}
export declare enum ComponentType {
    GRAPH_NODE = "graphNode",
    SHRINK_EXPAND = "shrinkExpand",
    INSERT = "insert",
    APPEND = "append"
}
export declare enum Direction {
    TOP = 0,
    RIGHT = 1,
    BOTTOM = 2,
    LEFT = 3
}
export declare enum TreeNodeType {
    MOLD = 1,
    CONDITION = 2,
    TOOLS = 3
}
export declare enum ToolsStatusEnum {
    DEFAULT = 0,
    SELECT = 1,
    SELECT_ERROR = 2,
    EDIT_ERROR = 3,
    VERIFY_ERROR = 4
}
export declare enum ToolsComponentNameEnum {
    SCORE_SELECT = "scoreSelect",
    CONDITION_SELECT = "conditionSelect",
    DAY_INPUT = "dayInput",
    TIME_SELECT = "timeSelect",
    RATIO_SELECT = "ratioSelect",
    PRICE_SPREAD_SELECT = "priceSpreadSelect",
    NUM_INPUT = "numInput"
}
export interface DropdownMenu {
    name: string;
    value: TreeNodeType;
    disabled: boolean;
}
export declare enum OperationType {
    INSERT = 0,
    APPEND = 1
}
export interface RenderStgyGraphParams {
    linkList: Link[];
    nodeList: Node[];
    nodeMap: {
        [key: string]: Node;
    };
    origin?: number[];
    offsetY?: number;
    offsetX?: number;
    nodeWidth?: number;
    nodeHeight?: number;
    miniStartNode?: boolean;
    renderLinkList?: GraphLink[];
    changeNodeAttributes?: ({ link, index, startNode, endNode }: {
        link: any;
        index: any;
        startNode: any;
        endNode: any;
    }) => void;
}
export interface RenderCloneNode {
    id: string;
    getCoordinateX?: () => number;
    getCoordinateY?: () => number;
    coordinateXFnList?: (() => number)[];
    coordinate?: number[];
    tier?: number;
    isMergeNode?: boolean;
    configKey?: string;
    width: number;
    height: number;
}
export interface RenderCloneNodeMap {
    [key: string]: RenderCloneNode;
}
export interface DeleteNodeRelationParams {
    linkList: Link[];
    hasJoin?: boolean;
    mergeId?: string;
    broId?: string;
    delMerge?: boolean;
}
export declare enum DeleteWayEnum {
    ALL = 0,
    SELF = 1
}
export interface FindNodeByIdParams {
    nodeId: string | string[];
    nodeList: Node[];
}
export interface GetLinkFirstIndexByEndIdParams {
    endId: string;
    linkList: Link[];
}
export interface AddNodeListParams {
    nodeList: Node[];
    addNode: Node | Node[];
}
export interface DelNodeListParams {
    nodeList: Node[];
    delNodeIds: string | string[];
}
export interface FindLinkChildByIdParams {
    nodeId: string;
    linkList: Link[];
}
export interface AddOneBrotherNodeParams {
    nodeId: string;
    linkList: Link[];
    nodeList: Node[];
    width: number;
    height: number;
    meta: Meta;
}
export interface AddModuleBrotherNodeParams {
    nodeId: string;
    linkList: Link[];
    nodeList: Node[];
    addModuleLink: Link[];
    addModuleNode: Node[];
}
export interface AddOneChildNodeParams {
    nodeId: string;
    linkList: Link[];
    nodeList: Node[];
    width: number;
    height: number;
    meta: Meta;
}
export interface AddModuleChildNodeParams {
    nodeId: string;
    linkList: Link[];
    nodeList: Node[];
    addModuleLink: Link[];
    addModuleNode: Node[];
}
export interface MergeNodeParams {
    mergeNodeList: Node[];
    linkList: Link[];
    nodeList: Node[];
}
export interface CancelMergeParams {
    activeId: string;
    linkList: Link[];
    nodeList: Node[];
}
export interface EditMergeParams {
    activeId: string;
    mergeNodeList: Node[];
    linkList: Link[];
    nodeList: Node[];
}
