package com.ttstd.controlled.input;

/**
 * 输入执行器接口，定义了注入输入事件的标准操作。
 */
public interface InputExecutor {
    void injectTap(int x, int y);
    void injectLongPress(int x, int y);
    void injectSwipe(int x1, int y1, int x2, int y2, long duration);
    /**
     * 注入按键事件。
     * @param keyCode   Android KeyEvent 键值（如 KeyEvent.KEYCODE_A）。
     * @param keyAction 动作：0=ACTION_DOWN，1=ACTION_UP；传 -1 表示“按下并立即抬起”的一次性点击（兼容旧行为）。
     */
    void injectKeyEvent(int keyCode, int keyAction);
    void injectMotionEvent(int action, int x, int y);

    /**
     * 释放执行器持有的资源（如持久的 Shell 进程）。
     */
    default void release() {}
}
