docs: public RetryPolicy<R> withDelay(long delayMin, long delayMax, ChronoUnit chronoUnit) {
      Assert.notNull(chronoUnit, "chronoUnit");
      Assert.isTrue(delayMin > 0, "delayMin must be greater than 0");
      Assert.isTrue(delayMax > 0, "delayMax must be greater than 0");
      Duration delayMinDuration = Duration.of(delayMin, chronoUnit);
      Duration delayMaxDuration = Duration.of(delayMax, chronoUnit);
      Assert.isTrue(delayMinDuration.toNanos() < delayMaxDuration.toNanos(), "delayMin must be less than delayMax");
      Assert.state(maxDuration == null || delayMaxDuration.toNanos() < maxDuration.toNanos(),
          "delayMax must be less than the maxDuration");
      Assert.state(delay == null || delay.equals(Duration.ZERO), "Delays have already been set");
      Assert.state(maxDelay == null, "Backoff delays have already been set");
      this.delayMin = delayMinDuration;
      this.delayMax = delayMaxDuration;
      return this;
    }