import { SerialTaskItem, SerialHandlerStatus } from '../types';
import { BaseHandler } from '../core';
/**
 * 串行任务处理器 - 按顺序处理队列中的任务
 *
 * 特点：
 * - 使用先进先出(FIFO)队列管理待处理任务
 * - 支持任务执行前的自定义条件检查
 * - 实现完整的生命周期管理（激活、待机、执行、成功、销毁）
 * - 可与其他处理器组成处理链
 *
 * 使用场景：
 * - 需要顺序执行的任务处理
 * - 资源有限需要排队执行的场景
 * - 需要严格控制执行顺序的业务流程
 */
declare abstract class SerialHandler<O, R> extends BaseHandler<O, R> {
    /**
     * 待处理任务队列
     */
    protected taskQueue: Array<SerialTaskItem<O>>;
    /**
     * 当前处理器状态
     */
    handlerStatus: SerialHandlerStatus;
    /**
     * 获取待处理任务数量
     */
    get taskQueueLength(): number;
    constructor();
    /**
     * 检查任务执行条件
     * 子类可重写此方法，实现自定义的任务执行前置条件检查
     *
     * @returns {boolean} - 当满足执行条件时返回 true，否则返回 false
     */
    executePreCheck(): boolean;
    /**
     * 触发处理器激活行为（空闲状态 => 激活状态）
     */
    triggerHandlerActive(): void;
    /**
     *  触发处理器待机行为（激活状态 => 待执行状态   执行状态 => 待执行状态）
     */
    triggerHandlerPending(): void;
    /**
     * 触发处理器执行行为（激活状态 => 执行状态）
     */
    triggerHandlerExecute(): void;
    /**
     * 触发处理器成功行为（执行状态 => 成功状态）
     */
    triggerHandlerCompleted(): void;
    /**
     * 触发处理器销毁行为（待机状态 => 销毁状态）
     */
    triggerHandlerFinish(): void;
    /**
     * 触发应用被销毁行为
     */
    triggerAppFinish(): void;
    /**
     * 任务完成后的回调函数。
     */
    taskCompletedCallback(): void;
    handle(original: O | null): void;
}
export default SerialHandler;
