// Path: src/main/java/com/webfluxclient/codec/ExtendedClientCodecConfigurer.java
// public interface ExtendedClientCodecConfigurer extends ClientCodecConfigurer {
// 
//     List<HttpErrorReader> getErrorReaders();
// 
//     ExtendedCustomCodecs customCodecs();
// 
//     ExtendedClientDefaultCodecs defaultCodecs();
// 
//     static ExtendedClientCodecConfigurer create(){
//         return new DefaultExtendedClientCodecConfigurer();
//     }
// 
//     interface ExtendedClientDefaultCodecs extends ClientDefaultCodecs {
//         void httpClientErrorDecoder(HttpClientErrorDecoder clientErrorDecoder);
//         void httpServerErrorDecoder(HttpServerErrorDecoder serverErrorDecoder);
//     }
// 
//     interface ExtendedCustomCodecs extends CustomCodecs{
//         void errorReader(HttpErrorReader errorReader);
//         void errorDecoder(ErrorDecoder errorDecoder);
//     }
// }
// 
// Path: src/main/java/com/webfluxclient/handler/ReactiveInvocationHandlerFactory.java
// public interface ReactiveInvocationHandlerFactory {
//     InvocationHandler build(
//             ExtendedClientCodecConfigurer codecConfigurer,
//             List<RequestProcessor> requestProcessors,
//             List<ResponseProcessor> responseProcessors,
//             Logger logger,
//             LogLevel logLevel,
//             Class<?> target,
//             URI uri);
// }


import com.webfluxclient.codec.ExtendedClientCodecConfigurer;
import com.webfluxclient.handler.ReactiveInvocationHandlerFactory;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
package com.webfluxclient;



class DefaultClientBuilder implements ClientBuilder {
    private ReactiveInvocationHandlerFactory reactiveInvocationHandlerFactory;
// Path: src/main/java/com/webfluxclient/codec/ExtendedClientCodecConfigurer.java
// public interface ExtendedClientCodecConfigurer extends ClientCodecConfigurer {
// 
//     List<HttpErrorReader> getErrorReaders();
// 
//     ExtendedCustomCodecs customCodecs();
// 
//     ExtendedClientDefaultCodecs defaultCodecs();
// 
//     static ExtendedClientCodecConfigurer create(){
//         return new DefaultExtendedClientCodecConfigurer();
//     }
// 
//     interface ExtendedClientDefaultCodecs extends ClientDefaultCodecs {
//         void httpClientErrorDecoder(HttpClientErrorDecoder clientErrorDecoder);
//         void httpServerErrorDecoder(HttpServerErrorDecoder serverErrorDecoder);
//     }
// 
//     interface ExtendedCustomCodecs extends CustomCodecs{
//         void errorReader(HttpErrorReader errorReader);
//         void errorDecoder(ErrorDecoder errorDecoder);
//     }
// }
// 
// Path: src/main/java/com/webfluxclient/handler/ReactiveInvocationHandlerFactory.java
// public interface ReactiveInvocationHandlerFactory {
//     InvocationHandler build(
//             ExtendedClientCodecConfigurer codecConfigurer,
//             List<RequestProcessor> requestProcessors,
//             List<ResponseProcessor> responseProcessors,
//             Logger logger,
//             LogLevel logLevel,
//             Class<?> target,
//             URI uri);
// }


// Path: src/main/java/com/webfluxclient/DefaultClientBuilder.java
import com.webfluxclient.codec.ExtendedClientCodecConfigurer;
import com.webfluxclient.handler.ReactiveInvocationHandlerFactory;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;

package com.webfluxclient;



class DefaultClientBuilder implements ClientBuilder {
    private ReactiveInvocationHandlerFactory reactiveInvocationHandlerFactory;
    private ExtendedClientCodecConfigurer codecConfigurer;