The async operation to execute
Retry configuration (uses defaults if not provided)
Predicate to determine if a caught error should trigger a retry
OptionalonRetry: (attempt: number, error: unknown, delayMs: number) => voidOptional callback invoked before each retry with attempt number, error, and delay. Runs BEFORE the wait, so it is the right place to report the failure onward (e.g. backing off a shared limiter) rather than after the retries are spent.
Optionalhooks: RetryHooksOptional RetryHooks for source-directed delays and pre-attempt gating
The result of the operation
Executes an operation with retry logic using exponential backoff.