import { IEdge, INode, ICombo } from '../interface/item';
import { EdgeConfig, UpdateType } from '../types';
import Item from './item';
export default class Edge extends Item implements IEdge {
    protected getDefaultCfg(): {
        type: string;
        sourceNode: any;
        targetNode: any;
        startPoint: any;
        endPoint: any;
        linkCenter: boolean;
    };
    private setEnd;
    /**
     * 获取连接点的坐标
     * @param name source | target
     * @param model 边的数据模型
     * @param controlPoints 控制点
     */
    private getLinkPoint;
    /**
     * 获取同端点进行连接的点，计算交汇点
     * @param name
     * @param controlPoints
     */
    private getPrePoint;
    /**
     * 获取端点的位置
     * @param name
     */
    private getEndPoint;
    /**
     * 通过端点的中心获取控制点
     * @param model
     */
    private getControlPointsByCenter;
    private getEndCenter;
    protected init(): void;
    getShapeCfg(model: EdgeConfig, updateType?: UpdateType): EdgeConfig;
    /**
     * 获取边的数据模型
     */
    getModel(): EdgeConfig;
    setSource(source: INode | ICombo): void;
    setTarget(target: INode | ICombo): void;
    getSource(): INode | ICombo;
    getTarget(): INode | ICombo;
    updatePosition(): boolean;
    /**
     * 边不需要重计算容器位置，直接重新计算 path 位置
     * @param {object} cfg 待更新数据
     */
    update(cfg: EdgeConfig, updateType?: UpdateType): void;
    destroy(): void;
}
