import { GraphicNode } from "../../graphics";
import { IPoint } from "../../idl";
import { NodeConnectEndType } from "../../graphics/base/NodeConnectEndType";
import { AppEventContext } from "../../app";
export declare const QUICK_CREATE_OFFSET = 100;
export declare const QUICK_CREATE_PADDING = 50;
export declare const QUICK_CREATE_MARGIN = 20;
/**
 * QuickCreateWorker 类的主要功能是为图形应用中的新节点动态计算位置，确保新节点不会与现有节点重叠。
 */
export declare class QuickCreateWorker {
    private canBeQuickCreateTarget;
    private canBlockQuickCreatePlace;
    private hasDirectLineBetweenNodes;
    /**
     * 该方法根据目标节点和相对位置计算“终点节点”的相对位置。它通过调用 targetNode的 getConnectAnchor 方法获取控制点，并根据连接类型（如 Top、Bottom 等）选择合适的控制点
     * @param startNode
     * @param relativePos
     */
    computeEndNodeRelative(targetNode: GraphicNode, relativePos: IPoint): IPoint;
    /**
     * 该方法判断是否可以在指定位置快速创建新节点。它通过计算连接类型并创建一个搜索区域来检查该区域内是否有其他节点存在。
     * 如果没有其他节点，则返回 true，表示可以快速创建新节点
     * @param startNode
     * @param relativePos
     * @param ctx
     */
    judgeQuickCreateMode(startNode: GraphicNode, relativePos: IPoint, ctx: AppEventContext): GraphicNode | null;
    /**
     * 该方法根据起始节点、相对位置和应用上下文计算“预览节点”的位置。它通过 GraphicUtils.computeNodeConnectEnd 确定连接类型，并调用相应的辅助方法（如 findTopPlace、findBottomPlace 等）来计算具体位置
     * @param startNode
     * @param relativePos
     * @param ctx
     */
    computePreviewNodePos(startNode: GraphicNode, relativePos: IPoint, ctx: AppEventContext): IPoint;
    protected findTopPlace(startNode: GraphicNode, connectEndType: NodeConnectEndType, ctx: AppEventContext): IPoint;
    protected findBottomPlace(startNode: GraphicNode, connectEndType: NodeConnectEndType, ctx: AppEventContext): IPoint;
    protected findRightPlace(startNode: GraphicNode, connectEndType: NodeConnectEndType, ctx: AppEventContext): IPoint;
    protected findLeftPlace(startNode: GraphicNode, connectEndType: NodeConnectEndType, ctx: AppEventContext): IPoint;
}
//# sourceMappingURL=QuickCreateWorker.d.ts.map