/**
 * 装饰器模块
 * @date 2022-03
 * @author 何华东
 */
/**
 * Cron任务装饰器
 *
 * 将目标类已实现的方法 doService 加入到 node-schedule 计划任务中
 * @type { IService } 目标类需要实现 IService 接口
 * @param cronExpression cron表达式
 * @param description 描述
 * @returns
 */
export declare function CronJob(cronExpression: string, description?: string): ClassDecorator;
/**
 * 可重试函数
 *
 * 目标方法执行时出现异常，将自动捕获异常并重试
 * @param func 目标方法
 * @param retryCount 重试次数
 * @param errorHandler 异常处理
 * @param delayMs 每次重试延迟毫秒数
 * @returns 目标方法至少执行成功一次才会正确返回，否则返回空
 */
export declare function retry(func: () => Promise<any>, retryCount: number, errorHandler: (error: any, retryIndex?: number) => void, delayMs?: number): Promise<any>;
/**
 * 可重试装饰器
 *
 * 目标方法执行时，如果方法出现异常，将自动捕获异常并重试
 * @param retryCount 重试次数，默认一次
 * @param ms 每次重试延迟时间(毫秒)，默认每次延迟1分钟重试
 * @returns 目标方法至少执行成功一次才会正确返回，否则返回空
 */
export declare function Retryable(retryCount?: number, ms?: number): MethodDecorator;
/**
 * 同步装饰器
 *
 * 保证异步方法执行完毕后才能执行下一次
 */
export declare function Sync(): MethodDecorator;
