/**
 * ClickInsertBrokenPointLineHandler - 折线断点插入处理器
 *
 * ====== 所属链路说明 ======
 * 该处理器属于「画笔/折线创建链路」(CreateLineClickMode)。
 *
 * 完整链路调用链：
 * 1. CreateLineClickMode (点击模式入口)
 *    - 条件：当前工具为 ToolEnum.LINE 时激活
 *    - 包含 CreateLineClickProcessor
 *
 * 2. CreateLineClickProcessor (点击处理器)
 *    - 注册了三个处理器：
 *      - ClickInsertBrokenPointLineHandler (mouseDown处理器) ← 当前文件
 *      - ClickCreateEndLineHandler (mouseDown处理器)
 *      - UpClickCreateLineHandler (mouseUp处理器)
 *
 * 3. 断点插入时机：
 *    - 当用户在绘制折线(BrokenLine)过程中按下鼠标时触发
 *    - 在现有折线的倒数第二个点之前插入一个新断点
 *    - 实现方式：将当前鼠标位置作为新断点插入到 points 数组的倒数第二位
 *
 * ====== 核心逻辑说明 ======
 *
 * enable() 方法：
 * - 重置预览节点和辅助线(对齐线)
 * - 判断当前是否正在创建折线（shapeType === LineShapeType.BrokenLine）
 * - 只有在创建折线时才会激活此处理器
 *
 * handle() 方法：
 * - 获取当前正在创建的折线对象
 * - 将全局鼠标坐标转换为折线父容器的本地坐标
 * - 在 points 数组的倒数第二位插入新断点
 *   （数组结构：[起点, 断点1, 断点2, ..., 终点]）
 * - 执行更新动作，将新断点写入折线数据
 *
 * ====== 使用场景举例 ======
 * 用户绘制一条折线：起点 → 断点A → 断点B → 终点
 * 当鼠标移动到断点A和断点B之间并点击时，会在该位置插入一个新断点
 */
import { ClickHandler } from "@/plugin-pointer";
import { InteractiveEvent } from "@/common";
import { AppEventContext } from "@/app";
export declare class ClickInsertBrokenPointLineHandler extends ClickHandler {
    /**
     * enable - 判断当前处理器是否应该激活
     *
     * 激活条件：
     * 1. 必须存在正在创建的线条 (createLine 不为 null)
     * 2. 该线条必须是折线类型 (LineShapeType.BrokenLine)
     *
     * 作用：
     * - 重置预览节点，清除之前的预览状态
     * - 移除所有辅助对齐线，避免干扰当前操作
     */
    enable(event: InteractiveEvent, eventCtx: AppEventContext): boolean;
    /**
     * handle - 插入折线断点
     *
     * 执行流程：
     * 1. 获取正在创建的折线对象（已确认不为 null）
     * 2. 复制当前折线的所有端点
     * 3. 将全局坐标转换为折线父容器的本地坐标
     * 4. 在 points 数组的倒数第二位插入新断点
     *    - 为什么不插在最后一位？因为最后一位是"终点"（拖动过程中实时跟随鼠标的预览点）
     *    - 插在倒数第二位可以让用户在绘制过程中动态增加断点
     * 5. 执行 UpdateNodeLog action 更新折线数据
     *
     * 坐标转换说明：
     * - event.globalPoint 是屏幕/画布坐标
     * - createLine.parent?.toLocal() 将其转换为相对于折线父容器的本地坐标
     * - 这样可以确保断点位置正确相对于其父容器
     */
    handle(event: InteractiveEvent, eventCtx: AppEventContext): void;
}
//# sourceMappingURL=ClickInsertBrokenPointLineHandler.d.ts.map