/**
 * 装饰器模块
 * @date 2022-03
 * @author 何华东
 */
/**
 * Cron任务装饰器
 *
 * @type { IService } 被装饰的类需实现该接口
 * @param cronExpression cron表达式
 * @param description 任务描述
 * @returns
 */
declare function CronJob(cronExpression: string, description?: string): ClassDecorator;
/**
 * 重试方法
 * @param func 目标方法
 * @param retryMaxCount 重试最大次数
 * @param retryDelayMs 重试延迟毫秒数
 * @param errorHandler 异常处理
 * @param retryCondition 重试条件,默认出现异常会自动重试,但有时候方法内不会抛出异常,就无法重试,所以可以传递重试条件,如果充实条件返回true则重试
 */
export declare function retry(func: () => Promise<any>, retryMaxCount: number, retryDelayMs: number, errorHandler: (error: any, retryCountLeft: number) => any, retryCondition?: (res: any) => boolean): Promise<any>;
/**
 * 重试装饰器
 *
 * 对被装饰的方法进行自动异常重试或条件重试,该方法自动捕获异常并记录日志,异常不会往上抛
 *
 * 至少重试成功一次,才会正确返回,否则返回null
 */
export declare function Retryable(methodDesc?: string, retryMaxCount?: number, retryDelayMs?: number, retryCondition?: (res: any) => boolean): MethodDecorator;
/**
 * 同步装饰器
 *
 * 被装饰的方法将同步执行
 */
export declare function Sync(): MethodDecorator;
export { CronJob };
