/*
 * Decompiled with CFR 0.152.
 */
package org.jivesoftware.smack;

import org.jivesoftware.smack.ConnectionListener;
import org.jivesoftware.smack.ExceptionCallback;
import org.jivesoftware.smack.PacketCollector;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.StanzaListener;
import org.jivesoftware.smack.filter.StanzaFilter;
import org.jivesoftware.smack.iqrequest.IQRequestHandler;
import org.jivesoftware.smack.packet.ExtensionElement;
import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.packet.PlainStreamElement;
import org.jivesoftware.smack.packet.Stanza;
import org.jxmpp.jid.DomainBareJid;
import org.jxmpp.jid.FullJid;

public interface XMPPConnection {
    public DomainBareJid getServiceName();

    public String getHost();

    public int getPort();

    public FullJid getUser();

    public String getStreamId();

    public boolean isConnected();

    public boolean isAuthenticated();

    public boolean isAnonymous();

    public boolean isSecureConnection();

    public boolean isUsingCompression();

    @Deprecated
    public void sendPacket(Stanza var1) throws SmackException.NotConnectedException, InterruptedException;

    public void sendStanza(Stanza var1) throws SmackException.NotConnectedException, InterruptedException;

    public void send(PlainStreamElement var1) throws SmackException.NotConnectedException, InterruptedException;

    public void addConnectionListener(ConnectionListener var1);

    public void removeConnectionListener(ConnectionListener var1);

    public PacketCollector createPacketCollectorAndSend(IQ var1) throws SmackException.NotConnectedException, InterruptedException;

    public PacketCollector createPacketCollectorAndSend(StanzaFilter var1, Stanza var2) throws SmackException.NotConnectedException, InterruptedException;

    public PacketCollector createPacketCollector(StanzaFilter var1);

    public PacketCollector createPacketCollector(PacketCollector.Configuration var1);

    public void removePacketCollector(PacketCollector var1);

    @Deprecated
    public void addPacketListener(StanzaListener var1, StanzaFilter var2);

    @Deprecated
    public boolean removePacketListener(StanzaListener var1);

    public void addSyncStanzaListener(StanzaListener var1, StanzaFilter var2);

    public boolean removeSyncStanzaListener(StanzaListener var1);

    public void addAsyncStanzaListener(StanzaListener var1, StanzaFilter var2);

    public boolean removeAsyncStanzaListener(StanzaListener var1);

    public void addPacketSendingListener(StanzaListener var1, StanzaFilter var2);

    public void removePacketSendingListener(StanzaListener var1);

    public void addPacketInterceptor(StanzaListener var1, StanzaFilter var2);

    public void removePacketInterceptor(StanzaListener var1);

    public long getPacketReplyTimeout();

    public void setPacketReplyTimeout(long var1);

    public int getConnectionCounter();

    public void setFromMode(FromMode var1);

    public FromMode getFromMode();

    public <F extends ExtensionElement> F getFeature(String var1, String var2);

    public boolean hasFeature(String var1, String var2);

    public void sendStanzaWithResponseCallback(Stanza var1, StanzaFilter var2, StanzaListener var3) throws SmackException.NotConnectedException, InterruptedException;

    public void sendStanzaWithResponseCallback(Stanza var1, StanzaFilter var2, StanzaListener var3, ExceptionCallback var4) throws SmackException.NotConnectedException, InterruptedException;

    public void sendStanzaWithResponseCallback(Stanza var1, StanzaFilter var2, StanzaListener var3, ExceptionCallback var4, long var5) throws SmackException.NotConnectedException, InterruptedException;

    public void sendIqWithResponseCallback(IQ var1, StanzaListener var2) throws SmackException.NotConnectedException, InterruptedException;

    public void sendIqWithResponseCallback(IQ var1, StanzaListener var2, ExceptionCallback var3) throws SmackException.NotConnectedException, InterruptedException;

    public void sendIqWithResponseCallback(IQ var1, StanzaListener var2, ExceptionCallback var3, long var4) throws SmackException.NotConnectedException, InterruptedException;

    public void addOneTimeSyncCallback(StanzaListener var1, StanzaFilter var2);

    public IQRequestHandler registerIQRequestHandler(IQRequestHandler var1);

    public IQRequestHandler unregisterIQRequestHandler(IQRequestHandler var1);

    public IQRequestHandler unregisterIQRequestHandler(String var1, String var2, IQ.Type var3);

    public long getLastStanzaReceived();

    public static enum FromMode {
        UNCHANGED,
        OMITTED,
        USER;

    }
}
