export interface UseRetryFnOptions<E = unknown> {
  /**
   * 重试次数。
   *
   * @defaultValue 3
   */
  count?: number
  /**
   * 重试间隔。ms
   *
   * @defaultValue defaultRetryInterval
   */
  interval?: number | ((currentCount: number) => number)
  /**
   * 错误回调。
   *
   * @defaultValue undefined
   */
  onError?: (error: E | undefined) => void
  /**
   * 错误重试回调。
   *
   * @defaultValue undefined
   */
  onErrorRetry?: (error: E | undefined, state: UseRetryFnRetryState) => void
  /**
   * 所有重试失败的回调。
   *
   * @defaultValue undefined
   */
  onRetryFailed?: (error: E | undefined, state: UseRetryFnRetryState) => void
}