/**
 * 调度任务的并发等待时间
 */
export type TCronPollingTime = {
    /**
     * 启动下一个并发队列任务的间隔时间
     * 在重量级任务时，可以适当调大该值，以削减CPU和内存资源的峰值
     * 单位：毫秒
     */
    execute: number;
    /**
     * 任务重复的轮询间隔时间
     * 单位：毫秒
     */
    repeat: number;
    /**
     * 队列等待更新时间
     * 单位：毫秒
     */
    plus: number;
};
/**
 * 调度任务的重复丢弃策略
 */
export type TDiscard = {
    /**
     * 丢弃重复的挂起任务
     */
    pending: boolean;
    /**
     * 丢弃重复的预备任务
     */
    ready: boolean;
    /**
     * 丢弃重复的运行任务
     */
    running: boolean;
};
export type TCronExecuteResult<T = any> = {
    task: TThreadChild<T>;
    success: boolean;
    startTime?: number;
    endTime?: number;
    elapsedTime?: number;
    message?: string;
};
export type TCronWorkerParam<T = any> = {
    task: T;
    execute: (task: T) => Promise<TCronExecuteResult<T>>;
};
export type TThreadChild<T = any> = {
    key: any;
    value: T;
};
