class ProxyDetectorImpl implements ProxyDetector {

  @Nullable
  @Override
  public ProxyParameters proxyFor(SocketAddress targetServerAddress) throws IOException {
    if (override != null) {
      return override;
    }
    if (!(targetServerAddress instanceof InetSocketAddress)) {
      return null;
    }
    return detectProxy((InetSocketAddress) targetServerAddress);
  }

  public  ProxyDetectorImpl();
  @VisibleForTesting  ProxyDetectorImpl(
      Supplier<ProxySelector> proxySelector,
      AuthenticationProvider authenticationProvider,
      @Nullable String proxyEnvString);

}