meter at the same "level"
(e.g. `HOURLY` specified with `BYHOUR`).

:param value:
    The old value of the component.
:param byxxx:
    The `BYXXX` set, which should have been generated by
    `rrule._construct_byset`, or something else which checks that a
    valid rule is present.
:param base:
    The largest allowable value for the specified frequency (e.g.
    24 hours, 60 minutes).

If a valid value is not found after `base` iterations (the maximum
number before the sequence would start to repeat), this raises a
:exception:`ValueError`, as no valid values were found.

This returns a tuple of `divmod(n*interval, base)`, where `n` is the
smallest number of `interval` repetitions until the next specified
value in `byxxx` is found.
r