@UnstableApi
    @Override
    public SELF selectionTimeout(Duration selectionTimeout) {
        return selectionTimeout(selectionTimeout, selectionTimeout);
    }
Sets the timeout to wait until a successful {@link Endpoint} selection.
This method is shortcut for {@code selectionTimeout(selectionTimeout, selectionTimeout)}.
{@link Duration#ZERO} disables the timeout.
If unspecified, {@link Flags#defaultResponseTimeoutMillis()} is used to wait for the
{@linkplain HealthCheckedEndpointGroup#whenReady() initial endpoints}, and
{@link Flags#defaultConnectTimeoutMillis()}} is used after the initial endpoints are resolved by default.

<p>Note that the specified {@code selectionTimeout} and the delegate's
{@linkplain EndpointGroup#selectionTimeoutMillis() selectionTimeout} are added and set to
this {@link HealthCheckedEndpointGroup}.
For example:<pre>{@code
DnsAddressEndpointGroup delegate = DnsAddressEndpointGroup.builder("armeria.dev")
                                                          .selectionTimeout(Duration.ofSeconds(3))
                                                          ...
                                                          .build();
HealthCheckedEndpointGroup endpointGroup =
    HealthCheckedEndpointGroup.builder(delegate, "/health")
                              // Sets the same timeout to both initialSelectionTimeout
                              // and selectionTimeout
                              .selectionTimeout(Duration.ofSeconds(10))
                              ...
                              .build();
// The selection timeout of `delegate` is added into `endpointGroup`.
assert endpointGroup.selectionTimeoutMillis() == 13000; // 10000 (health) + 3000 (dns)
endpointGroup.whenReady.join();
// The selection timeout won't be changed even after the endpoint initialization.
assert endpointGroup.selectionTimeoutMillis() == 13000; // 10000 (health) + 3000 (dns)
}</pre>
core/src/main/java/com/linecorp/armeria/client/endpoint/healthcheck/AbstractHealthCheckedEndpointGroupBuilder.java