// 
// Decompiled by Procyon v0.6.0
// 

package io.netty.channel;

import java.net.SocketAddress;

public interface ChannelOutboundInvoker
{
    default ChannelFuture bind(final SocketAddress localAddress) {
        return this.bind(localAddress, this.newPromise());
    }
    
    default ChannelFuture connect(final SocketAddress remoteAddress) {
        return this.connect(remoteAddress, this.newPromise());
    }
    
    default ChannelFuture connect(final SocketAddress remoteAddress, final SocketAddress localAddress) {
        return this.connect(remoteAddress, localAddress, this.newPromise());
    }
    
    default ChannelFuture disconnect() {
        return this.disconnect(this.newPromise());
    }
    
    default ChannelFuture close() {
        return this.close(this.newPromise());
    }
    
    default ChannelFuture deregister() {
        return this.deregister(this.newPromise());
    }
    
    ChannelFuture bind(final SocketAddress p0, final ChannelPromise p1);
    
    ChannelFuture connect(final SocketAddress p0, final ChannelPromise p1);
    
    ChannelFuture connect(final SocketAddress p0, final SocketAddress p1, final ChannelPromise p2);
    
    ChannelFuture disconnect(final ChannelPromise p0);
    
    ChannelFuture close(final ChannelPromise p0);
    
    ChannelFuture deregister(final ChannelPromise p0);
    
    ChannelOutboundInvoker read();
    
    default ChannelFuture write(final Object msg) {
        return this.write(msg, this.newPromise());
    }
    
    ChannelFuture write(final Object p0, final ChannelPromise p1);
    
    ChannelOutboundInvoker flush();
    
    ChannelFuture writeAndFlush(final Object p0, final ChannelPromise p1);
    
    default ChannelFuture writeAndFlush(final Object msg) {
        return this.writeAndFlush(msg, this.newPromise());
    }
    
    ChannelPromise newPromise();
    
    ChannelProgressivePromise newProgressivePromise();
    
    ChannelFuture newSucceededFuture();
    
    ChannelFuture newFailedFuture(final Throwable p0);
    
    ChannelPromise voidPromise();
}
