import { HotKey } from "../HotKey";
import { RenderText, TextCursorMoveWorker, TextCursorPosition } from "../../../renderText/index";
import { AppEventContext } from "../../../app/index";
export declare abstract class AbsArrowKey extends HotKey {
    cursorMoveWorker: TextCursorMoveWorker;
    abstract moveCursor(renderText: RenderText, textCursorPosition: TextCursorPosition, context: AppEventContext): TextCursorPosition;
    /**
     * 获取移动类型
     * - 'left': 左移，在开头时跳到上一个节点末尾
     * - 'right': 右移，在末尾时跳到下一个节点开头
     * - 'up': 上移，在首行时跳到上一个节点对应 x 位置
     * - 'down': 下移，在末行时跳到下一个节点对应 x 位置
     */
    abstract getMoveType(): "left" | "right" | "up" | "down";
    enable(_event: KeyboardEvent): boolean;
    work(event: KeyboardEvent, context: AppEventContext): void;
    /**
     * 检查是否是 DocContainer 内的可编辑文本节点（纯文本或 CheckboxText）
     */
    private isDocContainerText;
    /**
     * 处理 DocContainer 内跨节点的光标移动
     * @returns 是否处理了跨节点移动
     */
    private handleDocContainerCrossNode;
    /**
     * Right: 在文本末尾时跳到下一个节点开头
     */
    private handleRightCrossNode;
    /**
     * Left: 在文本开头时跳到上一个节点末尾
     */
    private handleLeftCrossNode;
    /**
     * Down: 在最后一行时跳到下一个节点，保持 x 位置
     */
    private handleDownCrossNode;
    /**
     * Up: 在第一行时跳到上一个节点，保持 x 位置
     */
    private handleUpCrossNode;
}
//# sourceMappingURL=AbsArrowKey.d.ts.map