import { LogLevel } from '../../../helper/logger'; import { Result } from '../../../types/types'; export interface TaskState { retryCount: number; status: TaskStatus; } declare type ProgressNotice = () => void; export declare type OnError = () => void; export declare type OnCancel = () => void; export declare type OnProgress = () => void; export declare type OnComplete = () => void; export declare type TaskStatus = 'waiting' | 'processing' | 'canceled' | 'error' | 'success'; export interface Task { cancel(): Promise; process(notice: ProgressNotice): Promise; } declare type TaskCreator = () => Promise>; interface LoggerOptions { level: LogLevel; prefix: string; } interface TaskQueueOptions { logger?: LoggerOptions; concurrentLimit?: number; tasksCreator?: TaskCreator; } export declare class TaskQueue { private options?; private logger; /** 取消标记 */ private canceled; /** 队列正在处理中 */ private processing; /** 队列错误信息; */ private error?; /** 队列并发标记 */ private concurrentTicket; /** 用户传入的任务 */ private tasks; /** 动态创建任务方法 */ private tasksCreator?; /** 通过 tasksCreator 动态创建的任务 */ private dynamicTasks; /** 任务的状态表 */ private taskStates; /** 状态订阅函数表 */ private errorListeners; private cancelListeners; private progressListeners; private completeListeners; constructor(options?: TaskQueueOptions | undefined); private handleProgress; private handleComplete; private handleError; private handleCancel; onProgress(listener: OnProgress): () => boolean; onComplete(listener: OnComplete): () => boolean; onError(listener: OnError): () => boolean; onCancel(listener: OnCancel): () => boolean; private getTaskState; /** 任务处理函数;递归取出任务并执行,除非遇到 canceled 或 error 状态 */ private process; /** 添加任务 */ enqueue(...tasks: Array): void; /** 开始处理 */ start(): Promise; /** 取消任务 */ cancel(): Promise; } export {};