# Functions
WithBackoff sets the time we wait after failing to obtain a reservation with a candidate.
WithBootDelay set the boot delay for finding relays.
WithMaxCandidateAge sets the maximum age of a candidate.
WithMaxCandidates sets the number of relay candidates that we buffer.
WithMetricsTracer configures autorelay to use mt to track metrics.
WithMinCandidates sets the minimum number of relay candidates we collect before to get a reservation with any of them (unless we've been running for longer than the boot delay).
WithMinInterval sets the minimum interval after which peerSource callback will be called for more candidates even if AutoRelay needs new candidates.
WithNumRelays sets the number of relays we strive to obtain reservations with.
WithPeerSource defines a callback for AutoRelay to query for more relay candidates.
# Interfaces
ClockWithInstantTimer is a clock that can create timers that trigger at some instant rather than some duration.
InstantTimer is a timer that triggers at some instant rather than some duration.
MetricsTracer is the interface for tracking metrics for autorelay.
# Type aliases
AutoRelay will call this function when it needs new candidates because it is not connected to the desired number of relays or we get disconnected from one of the relays.