package com.firefly.client.http2;
import com.firefly.codec.http2.frame.SettingsFrame;
import com.firefly.codec.http2.model.MetaData;
import com.firefly.codec.http2.stream.HTTPConnection;
import com.firefly.codec.http2.stream.HTTPOutputStream;
import com.firefly.utils.concurrent.Promise;
import java.nio.ByteBuffer;
import java.util.Collection;
public interface HTTPClientConnection extends HTTPConnection {
void send(MetaData.Request request, Promise<HTTPOutputStream> promise, ClientHTTPHandler handler);
void send(MetaData.Request request, ClientHTTPHandler handler);
void send(MetaData.Request request, ByteBuffer buffer, ClientHTTPHandler handler);
void send(MetaData.Request request, ByteBuffer[] buffers, ClientHTTPHandler handler);
void send(MetaData.Request request, Collection<ByteBuffer> buffers, ClientHTTPHandler handler);
HTTPOutputStream sendRequestWithContinuation(MetaData.Request request, ClientHTTPHandler handler);
HTTPOutputStream getHTTPOutputStream(MetaData.Request request, ClientHTTPHandler handler);
void upgradeHTTP2(final MetaData.Request request, final SettingsFrame settings,
final Promise<HTTPClientConnection> promise, final ClientHTTPHandler handler);
}