/**
 * 串行任务处理器状态枚举
 */
declare enum SerialHandlerStatus {
    /**
     * 离线状态
     */
    OFFLINE = "offline",
    /**
     * 激活状态
     */
    ACTIVE = "active",
    /**
     * 待执行状态
     */
    PENDING = "pending",
    /**
     * 执行中状态
     */
    EXECUTING = "executing",
    /**
     * 完成状态
     */
    COMPLETED = "completed",
    /**
     * 销毁状态
     */
    FINISH = "finish"
}
/**
 * 并行任务处理器状态枚举
 */
declare enum ParallelHandlerStatus {
    /**
     * 离线状态
     */
    OFFLINE = "offline",
    /**
     * 激活状态
     */
    ACTIVE = "active",
    /**
     * 待执行状态
     */
    PENDING = "pending",
    /**
    /**
     * 执行中状态
     */
    EXECUTING = "executing",
    /**
     * 完成状态
     */
    COMPLETED = "completed",
    /**
     * 销毁状态
     */
    FINISH = "finish"
}
/**
 * 工厂的处理上下文
 */
interface TaskExecuteContext {
    /**
     * 是否为第一次执行
     */
    isFirstExecute?: boolean;
    /**
     * 是否为最后一次执行
     */
    isLastExecute?: boolean;
}
/**
 * 串行任务的处理上下文
 */
interface SerialTaskExecuteContext<O, _> extends TaskExecuteContext {
    taskItem: SerialTaskItem<O>;
}
/**
 * 并行任务的处理上下文
 */
interface ParallelTaskExecuteContext<O, _> extends TaskExecuteContext {
    taskItem: ParallelTaskItem<O>;
}
/**
 *  并行任务状态
 */
declare enum ParallelTaskItemStatus {
    /**
     * 待执行
     */
    PENDING = "pending",
    /**
     * 执行中
     */
    EXECUTING = "executing",
    /**
     * 执行完成
     */
    COMPLETED = "completed"
}
/**
 *  串行任务状态
 */
declare enum SerialTaskItemStatus {
    /**
     * 待执行
     */
    PENDING = "pending",
    /**
     * 执行中
     */
    EXECUTING = "executing",
    /**
     * 执行完成
     */
    COMPLETED = "completed"
}
/**
 * 并行每一项任务数据
 */
interface ParallelTaskItem<O> {
    uuid: string;
    status: ParallelTaskItemStatus;
    original: O | null;
}
/**
 *  串行每一项任务数据
 */
interface SerialTaskItem<O> {
    uuid: string;
    status: SerialTaskItemStatus;
    original: O | null;
}
export type { ParallelTaskExecuteContext, ParallelTaskItem, SerialTaskExecuteContext, SerialTaskItem, TaskExecuteContext, };
export { ParallelHandlerStatus, ParallelTaskItemStatus, SerialHandlerStatus, SerialTaskItemStatus };
