export declare enum RetryStrategy { ExecuteOnce = 0, ExecuteAllAttempts = 1, } export declare type RetryErrorData = { cb_action_name?: string; cb_retry_attempt?: number; cb_retry_error?: any; }; export declare type RetryOptions = { errors: { maxAttemptsReached: string; executionTimeout: string; }; strategy?: RetryStrategy; actionName?: string; onError?: (errorData: RetryErrorData) => void; }; export default class RetryMechanism { MAX_RETRIES: number; EXEC_TIMEOUT: number; options: RetryOptions; callable: () => Promise; constructor(callable: () => Promise, options: RetryOptions); setMaxRetries(retries: number): this; setExecutionTimeout(timeout: number): this; execute(): Promise; }