/* xmpp-vala.vapi generated by valac 0.56.18, do not modify. */

namespace Xmpp {
	namespace Bind {
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Flag : Xmpp.XmppStreamFlag {
			public static Xmpp.FlagIdentity<Xmpp.Bind.Flag> IDENTITY;
			public bool finished;
			public Xmpp.Jid? my_jid;
			public Flag ();
			public override string get_id ();
			public static Xmpp.Jid? get_my_jid (Xmpp.XmppStream stream);
			public override string get_ns ();
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Module : Xmpp.XmppStreamNegotiationModule {
			public static Xmpp.ModuleIdentity<Xmpp.Bind.Module> IDENTITY;
			public Module (string? requested_resource);
			public override void attach (Xmpp.XmppStream stream);
			public override void detach (Xmpp.XmppStream stream);
			public override string get_id ();
			public override string get_ns ();
			public void iq_response_stanza (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq);
			public override bool mandatory_outstanding (Xmpp.XmppStream stream);
			public override bool negotiation_active (Xmpp.XmppStream stream);
			public void received_features_node (Xmpp.XmppStream stream);
			public string? requested_resource { get; set; }
			public signal void bound_to_resource (Xmpp.XmppStream stream, Xmpp.Jid my_jid);
		}
	}
	namespace Iq {
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Module : Xmpp.XmppStreamNegotiationModule {
			public delegate void OnResult (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq);
			public static Xmpp.ModuleIdentity<Xmpp.Iq.Module> IDENTITY;
			public Module ();
			public override void attach (Xmpp.XmppStream stream);
			public override void detach (Xmpp.XmppStream stream);
			public override string get_id ();
			public override string get_ns ();
			public override bool mandatory_outstanding (Xmpp.XmppStream stream);
			public override bool negotiation_active (Xmpp.XmppStream stream);
			public void register_for_namespace (string @namespace, Xmpp.Iq.Handler module);
			public void send_iq (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq, owned Xmpp.Iq.Module.OnResult? listener = null, int io_priority = GLib.Priority.DEFAULT);
			public async Xmpp.Iq.Stanza send_iq_async (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
			public void unregister_from_namespace (string @namespace, Xmpp.Iq.Handler module);
			public signal void preprocess_incoming_iq_set_get (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq_stanza);
			public signal void preprocess_outgoing_iq_set_get (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq_stanza);
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Stanza : Xmpp.Stanza {
			public const string TYPE_GET;
			public const string TYPE_RESULT;
			public const string TYPE_SET;
			public Stanza.error (Xmpp.Iq.Stanza request, Xmpp.ErrorStanza error_stanza);
			public Stanza.from_stanza (Xmpp.StanzaNode stanza_node, Xmpp.Jid? my_jid);
			public Stanza.@get (Xmpp.StanzaNode stanza_node, string? id = null);
			public Stanza.result (Xmpp.Iq.Stanza request, Xmpp.StanzaNode? stanza_node = null);
			public Stanza.@set (Xmpp.StanzaNode stanza_node, string? id = null);
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public interface Handler : GLib.Object {
			public virtual async void on_iq_get (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq);
			public virtual async void on_iq_set (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq);
		}
	}
	namespace MessageArchiveManagement {
		namespace V2 {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class MamQueryParams {
				public string query_id;
				public bool use_ns2_extended;
				public MamQueryParams ();
				public MamQueryParams.query_before (Xmpp.Jid mam_server, GLib.DateTime? earliest_time, string? earliest_id);
				public MamQueryParams.query_between (Xmpp.Jid mam_server, GLib.DateTime? earliest_time, string? earliest_id, GLib.DateTime? latest_time, string? latest_id);
				public MamQueryParams.query_latest (Xmpp.Jid mam_server, GLib.DateTime? latest_known_time, string? latest_known_id);
				public GLib.DateTime? end { get; set; }
				public string? end_id { get; set; }
				public Xmpp.Jid mam_server { get; set; }
				public GLib.DateTime? start { get; set; }
				public string? start_id { get; set; }
				public Xmpp.Jid? @with { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static async Xmpp.MessageArchiveManagement.QueryResult page_through_results (Xmpp.XmppStream stream, Xmpp.MessageArchiveManagement.V2.MamQueryParams mam_params, Xmpp.MessageArchiveManagement.QueryResult prev_result, GLib.Cancellable? cancellable = null);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static async Xmpp.MessageArchiveManagement.QueryResult query_archive (Xmpp.XmppStream stream, Xmpp.MessageArchiveManagement.V2.MamQueryParams mam_params, GLib.Cancellable? cancellable = null);
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Flag : Xmpp.XmppStreamFlag {
			public static Xmpp.FlagIdentity<Xmpp.MessageArchiveManagement.Flag> IDENTITY;
			public Flag ();
			public static Xmpp.MessageArchiveManagement.Flag get_flag (Xmpp.XmppStream stream);
			public override string get_id ();
			public override string get_ns ();
			public Gee.Set<string> active_query_ids { get; set; }
			public bool cought_up { get; set; }
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class MessageFlag : Xmpp.MessageFlag {
			public const string ID;
			public MessageFlag (Xmpp.Jid sender_jid, GLib.DateTime? server_time, string? mam_id, string? query_id);
			public static Xmpp.MessageArchiveManagement.MessageFlag? get_flag (Xmpp.MessageStanza message);
			public override string get_id ();
			public override string get_ns ();
			public string? mam_id { get; private set; }
			public string? query_id { get; private set; }
			public Xmpp.Jid sender_jid { get; private set; }
			public GLib.DateTime? server_time { get; private set; }
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Module : Xmpp.XmppStreamModule {
			public static Xmpp.ModuleIdentity<Xmpp.MessageArchiveManagement.Module> IDENTITY;
			public Module ();
			public override void attach (Xmpp.XmppStream stream);
			public override void detach (Xmpp.XmppStream stream);
			public override string get_id ();
			public override string get_ns ();
			public signal void feature_available (Xmpp.XmppStream stream);
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class QueryResult {
			public QueryResult ();
			public bool complete { get; set; }
			public bool error { get; set; }
			public string? first { get; set; }
			public string? last { get; set; }
			public bool malformed { get; set; }
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class ReceivedPipelineListener : Xmpp.StanzaListener<Xmpp.MessageStanza> {
			public ReceivedPipelineListener ();
			public override async bool run (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
			public override string action_group { get; }
			public override string[] after_actions { get; }
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public const string NS_URI;
	}
	namespace Presence {
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Flag : Xmpp.XmppStreamFlag {
			public static Xmpp.FlagIdentity<Xmpp.Presence.Flag> IDENTITY;
			public Flag ();
			public void add_presence (Xmpp.Presence.Stanza presence);
			public Gee.Set<Xmpp.Jid> get_available_jids ();
			public override string get_id ();
			public override string get_ns ();
			public Xmpp.Presence.Stanza? get_presence (Xmpp.Jid full_jid);
			public Gee.List<Xmpp.Presence.Stanza> get_presences (Xmpp.Jid jid);
			public Gee.List<Xmpp.Jid>? get_resources (Xmpp.Jid jid);
			public void remove_presence (Xmpp.Jid jid);
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Module : Xmpp.XmppStreamModule {
			public static Xmpp.ModuleIdentity<Xmpp.Presence.Module> IDENTITY;
			public bool available_resource;
			public Module ();
			public void approve_subscription (Xmpp.XmppStream stream, Xmpp.Jid bare_jid);
			public override void attach (Xmpp.XmppStream stream);
			public void cancel_subscription (Xmpp.XmppStream stream, Xmpp.Jid bare_jid);
			public void deny_subscription (Xmpp.XmppStream stream, Xmpp.Jid bare_jid);
			public override void detach (Xmpp.XmppStream stream);
			public override string get_id ();
			public override string get_ns ();
			public void request_subscription (Xmpp.XmppStream stream, Xmpp.Jid bare_jid);
			public void send_presence (Xmpp.XmppStream stream, Xmpp.Presence.Stanza presence);
			public void unsubscribe (Xmpp.XmppStream stream, Xmpp.Jid bare_jid);
			public signal void initial_presence_sent (Xmpp.XmppStream stream, Xmpp.Presence.Stanza presence);
			public signal void pre_send_presence_stanza (Xmpp.XmppStream stream, Xmpp.Presence.Stanza presence);
			public signal void received_available (Xmpp.XmppStream stream, Xmpp.Presence.Stanza presence);
			public signal void received_available_show (Xmpp.XmppStream stream, Xmpp.Jid jid, string show);
			public signal void received_presence (Xmpp.XmppStream stream, Xmpp.Presence.Stanza presence);
			public signal void received_subscription_approval (Xmpp.XmppStream stream, Xmpp.Jid jid);
			public signal void received_subscription_request (Xmpp.XmppStream stream, Xmpp.Jid jid);
			public signal void received_unavailable (Xmpp.XmppStream stream, Xmpp.Presence.Stanza presence);
			public signal void received_unsubscription (Xmpp.XmppStream stream, Xmpp.Jid jid);
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Stanza : Xmpp.Stanza {
			public const string NODE_PRIORITY;
			public const string NODE_SHOW;
			public const string NODE_STATUS;
			public const string SHOW_AWAY;
			public const string SHOW_CHAT;
			public const string SHOW_DND;
			public const string SHOW_ONLINE;
			public const string SHOW_XA;
			public const string TYPE_AVAILABLE;
			public const string TYPE_PROBE;
			public const string TYPE_SUBSCRIBE;
			public const string TYPE_SUBSCRIBED;
			public const string TYPE_UNAVAILABLE;
			public const string TYPE_UNSUBSCRIBE;
			public const string TYPE_UNSUBSCRIBED;
			public Stanza (string? id = null);
			public Stanza.from_stanza (Xmpp.StanzaNode stanza_node, Xmpp.Jid my_jid);
			public int priority { get; set; }
			public string show { get; set; }
			public string? status { get; set; }
			public override string? type_ { get; set; }
		}
	}
	namespace ResultSetManagement {
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class ResultSetParameters {
			public ResultSetParameters ();
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public const string NS_URI;
		[CCode (cheader_filename = "xmpp-vala.h")]
		public static Xmpp.StanzaNode create_set_rsm_node_after (string after_id);
		[CCode (cheader_filename = "xmpp-vala.h")]
		public static Xmpp.StanzaNode create_set_rsm_node_before (string? before_id);
	}
	namespace Roster {
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Flag : Xmpp.XmppStreamFlag {
			public static Xmpp.FlagIdentity<Xmpp.Roster.Flag> IDENTITY;
			public string? iq_id;
			public Gee.HashMap<Xmpp.Jid,Xmpp.Roster.Item> roster_items;
			public const string ID;
			public Flag ();
			public override string get_id ();
			public Xmpp.Roster.Item? get_item (Xmpp.Jid jid);
			public override string get_ns ();
			public Gee.Collection<Xmpp.Roster.Item> get_roster ();
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Item {
			public Xmpp.StanzaNode stanza_node;
			public const string SUBSCRIPTION_BOTH;
			public const string SUBSCRIPTION_FROM;
			public const string SUBSCRIPTION_NONE;
			public const string SUBSCRIPTION_REMOVE;
			public const string SUBSCRIPTION_TO;
			public Item ();
			public Item.from_stanza_node (Xmpp.StanzaNode stanza_node);
			public string? ask { get; }
			public Xmpp.Jid? jid { get; set; }
			public string? name { get; set; }
			public string? subscription { get; set; }
			public bool subscription_requested { get; }
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Module : Xmpp.XmppStreamModule, Xmpp.Iq.Handler {
			public static Xmpp.ModuleIdentity<Xmpp.Roster.Module> IDENTITY;
			public bool interested_resource;
			public Module ();
			public void add_jid (Xmpp.XmppStream stream, Xmpp.Jid jid, string? handle = null);
			public override void attach (Xmpp.XmppStream stream);
			public override void detach (Xmpp.XmppStream stream);
			public void remove_jid (Xmpp.XmppStream stream, Xmpp.Jid jid);
			public void set_jid_handle (Xmpp.XmppStream stream, Xmpp.Jid jid, string? handle);
			public signal void item_removed (Xmpp.XmppStream stream, Xmpp.Roster.Item item, Xmpp.Iq.Stanza iq);
			public signal void item_updated (Xmpp.XmppStream stream, Xmpp.Roster.Item item, Xmpp.Iq.Stanza iq);
			public signal void mutual_subscription (Xmpp.XmppStream stream, Xmpp.Jid jid);
			public signal void pre_get_roster (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq);
			public signal void received_roster (Xmpp.XmppStream stream, Gee.Collection<Xmpp.Roster.Item> roster, Xmpp.Iq.Stanza stanza);
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class VersioningModule : Xmpp.XmppStreamModule {
			public static Xmpp.ModuleIdentity<Xmpp.Roster.Module> IDENTITY;
			public VersioningModule (Xmpp.Roster.Storage storage);
			public override void attach (Xmpp.XmppStream stream);
			public override void detach (Xmpp.XmppStream stream);
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public interface Storage : GLib.Object {
			public abstract Gee.Collection<Xmpp.Roster.Item> get_roster ();
			public abstract string? get_roster_version ();
			public abstract void remove_item (Xmpp.Roster.Item item);
			public abstract void set_item (Xmpp.Roster.Item item);
			public abstract void set_roster (Gee.Collection<Xmpp.Roster.Item> items);
			public abstract void set_roster_version (string version);
		}
	}
	namespace Sasl {
		namespace Mechanism {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string PLAIN;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string SCRAM_SHA_1;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string SCRAM_SHA_1_PLUS;
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Flag : Xmpp.XmppStreamFlag {
			public static Xmpp.FlagIdentity<Xmpp.Sasl.Flag> IDENTITY;
			public string client_nonce;
			public bool finished;
			public string mechanism;
			public string name;
			public string password;
			public uint8[] server_signature;
			public Flag ();
			public override string get_id ();
			public override string get_ns ();
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Module : Xmpp.XmppStreamNegotiationModule {
			public static Xmpp.ModuleIdentity<Xmpp.Sasl.Module> IDENTITY;
			public bool use_full_name;
			public Module (string name, string password);
			public override void attach (Xmpp.XmppStream stream);
			public override void detach (Xmpp.XmppStream stream);
			public override string get_id ();
			public override string get_ns ();
			public override bool mandatory_outstanding (Xmpp.XmppStream stream);
			public override bool negotiation_active (Xmpp.XmppStream stream);
			public void received_features_node (Xmpp.XmppStream stream);
			public void received_nonza (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
			public string name { get; set; }
			public string password { get; set; }
			public signal void received_auth_failure (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
		}
	}
	namespace Session {
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Flag : Xmpp.XmppStreamFlag {
			public static Xmpp.FlagIdentity<Xmpp.Session.Flag> IDENTITY;
			public bool finished;
			public Flag ();
			public override string get_id ();
			public override string get_ns ();
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Module : Xmpp.XmppStreamNegotiationModule {
			public static Xmpp.ModuleIdentity<Xmpp.Session.Module> IDENTITY;
			public Module ();
			public override void attach (Xmpp.XmppStream stream);
			public override void detach (Xmpp.XmppStream stream);
			public override string get_id ();
			public override string get_ns ();
			public override bool mandatory_outstanding (Xmpp.XmppStream stream);
			public override bool negotiation_active (Xmpp.XmppStream stream);
		}
	}
	namespace StanzaForwarding {
		[CCode (cheader_filename = "xmpp-vala.h")]
		public const string NS_URI;
	}
	namespace StreamError {
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Flag : Xmpp.XmppStreamFlag {
			public enum Reconnect {
				UNKNOWN,
				NOW,
				LATER,
				NEVER
			}
			public static Xmpp.FlagIdentity<Xmpp.StreamError.Flag> IDENTITY;
			public string? error_type;
			public Xmpp.StreamError.Flag.Reconnect reconnection_recomendation;
			public bool resource_rejected;
			public Flag ();
			public override string get_id ();
			public override string get_ns ();
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public class Module : Xmpp.XmppStreamModule {
			public static Xmpp.ModuleIdentity<Xmpp.StreamError.Module> IDENTITY;
			public Module ();
			public override void attach (Xmpp.XmppStream stream);
			public override void detach (Xmpp.XmppStream stream);
			public override string get_id ();
			public override string get_ns ();
			public static void require (Xmpp.XmppStream stream);
		}
	}
	namespace Util {
		[CCode (cheader_filename = "xmpp-vala.h")]
		public static long from_hex (string numeral);
	}
	namespace Xep {
		namespace BlockingCommand {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.BlockingCommand.Flag> IDENTITY;
				public Gee.List<string> blocklist;
				public Flag ();
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule, Xmpp.Iq.Handler {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.BlockingCommand.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public bool block (Xmpp.XmppStream stream, string[] jids);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public bool is_blocked (Xmpp.XmppStream stream, string jid);
				public bool is_supported (Xmpp.XmppStream stream);
				public bool unblock (Xmpp.XmppStream stream, string[] jids);
				public void unblock_all (Xmpp.XmppStream stream);
				public signal void block_push_received (Xmpp.XmppStream stream, Gee.List<string> jids);
				public signal void unblock_all_received (Xmpp.XmppStream stream);
				public signal void unblock_push_received (Xmpp.XmppStream stream, Gee.List<string> jids);
			}
		}
		namespace Bookmarks {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Bookmarks1Conference : Xmpp.Conference {
				public Xmpp.StanzaNode stanza_node;
				public const string ATTRIBUTE_AUTOJOIN;
				public const string ATTRIBUTE_JID;
				public const string ATTRIBUTE_NAME;
				public const string NODE_NICK;
				public const string NODE_PASSWORD;
				public Bookmarks1Conference (Xmpp.Jid jid);
				public static Xmpp.Conference? create_from_stanza_node (Xmpp.StanzaNode stanza_node);
				public override bool autojoin { get; set; }
				public override Xmpp.Jid? jid { get; set; }
				public override string? name { get; set; }
				public override string? nick { get; set; }
				public override string? password { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.BookmarksProvider, Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Bookmarks.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
			}
		}
		namespace Bookmarks2 {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.Bookmarks2.Flag> IDENTITY;
				public Gee.HashMap<Xmpp.Jid,Xmpp.Conference> conferences;
				public Flag (Gee.HashMap<Xmpp.Jid,Xmpp.Conference> conferences);
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.BookmarksProvider, Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Bookmarks2.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI_COMPAT;
		}
		namespace CallInvites {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.CallInvites.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public void send_accept (Xmpp.XmppStream stream, Xmpp.Jid inviter, string call_id, string message_type, Xmpp.StanzaNode method, Xmpp.StanzaNode? legacy_method = null);
				public void send_jingle_accept (Xmpp.XmppStream stream, Xmpp.Jid inviter, string call_id, string sid, string message_type);
				public void send_jingle_propose (Xmpp.XmppStream stream, string call_id, Xmpp.Jid invitee, string sid, bool video, string message_type = MessageStanza.TYPE_CHAT);
				public void send_left (Xmpp.XmppStream stream, Xmpp.Jid to, string call_id, string message_type);
				public void send_muji_accept (Xmpp.XmppStream stream, Xmpp.Jid inviter, string call_id, Xmpp.Jid room, string message_type);
				public void send_muji_propose (Xmpp.XmppStream stream, string call_id, Xmpp.Jid invitee, Xmpp.Jid muc_jid, bool video, string message_type);
				public void send_propose (Xmpp.XmppStream stream, string call_id, Xmpp.Jid invitee, bool video, bool multi, string message_type, Xmpp.StanzaNode method, Xmpp.StanzaNode? legacy_method = null);
				public void send_reject (Xmpp.XmppStream stream, Xmpp.Jid to, string call_id, string message_type);
				public void send_retract (Xmpp.XmppStream stream, Xmpp.Jid to, string call_id, string message_type);
				public signal void call_accepted (Xmpp.Jid from, Xmpp.Jid to, string call_id, string message_type);
				public signal void call_left (Xmpp.Jid from, Xmpp.Jid to, string call_id, string message_type);
				public signal void call_proposed (Xmpp.Jid from, Xmpp.Jid to, string call_id, bool video, Gee.List<Xmpp.StanzaNode> join_methods, Xmpp.MessageStanza message);
				public signal void call_rejected (Xmpp.Jid from, Xmpp.Jid to, string call_id, string message_type);
				public signal void call_retracted (Xmpp.Jid from, Xmpp.Jid to, string call_id, string message_type);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI_CUSTOM;
		}
		namespace ChatMarkers {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.ChatMarkers.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public static bool requests_marking (Xmpp.MessageStanza message);
				public void send_marker (Xmpp.XmppStream stream, Xmpp.Jid jid, string message_id, string type_, string marker);
				public signal void marker_received (Xmpp.XmppStream stream, Xmpp.Jid jid, string marker, string id, Xmpp.MessageStanza message);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class SendPipelineListener : Xmpp.StanzaListener<Xmpp.MessageStanza> {
				public SendPipelineListener ();
				public override async bool run (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
				public override string action_group { get; }
				public override string[] after_actions { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string MARKER_ACKNOWLEDGED;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string MARKER_DISPLAYED;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string MARKER_RECEIVED;
		}
		namespace ChatStateNotifications {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.ChatStateNotifications.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public void send_state (Xmpp.XmppStream stream, Xmpp.Jid jid, string message_type, string state);
				public signal void chat_state_received (Xmpp.XmppStream stream, Xmpp.Jid jid, string state, Xmpp.MessageStanza stanza);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string STATE_ACTIVE;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string STATE_COMPOSING;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string STATE_GONE;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string STATE_INACTIVE;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string STATE_PAUSED;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void add_state_to_message (Xmpp.MessageStanza message, string state);
		}
		namespace Coin {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ConferenceInfo {
				public Gee.HashMap<Xmpp.Jid,Xmpp.Xep.Coin.ConferenceUser> users;
				public int version;
				public ConferenceInfo ();
				public Xmpp.StanzaNode to_xml ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ConferenceMedia {
				public string id;
				public int src_id;
				public string? ty;
				public ConferenceMedia ();
				public Xmpp.StanzaNode to_xml ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ConferenceUser {
				public string? display_text;
				public Xmpp.Jid jid;
				public Gee.HashMap<string,Xmpp.Xep.Coin.ConferenceMedia> medias;
				public ConferenceUser ();
				public Xmpp.StanzaNode to_xml ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule, Xmpp.Iq.Handler {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Coin.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public signal void coin_info_received (Xmpp.Jid jid, Xmpp.Xep.Coin.ConferenceInfo info);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Xmpp.Xep.Coin.ConferenceInfo? parse_node (Xmpp.StanzaNode conference_node, Xmpp.Xep.Coin.ConferenceInfo? previous_conference_info);
		}
		namespace ConsistentColor {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static float string_to_angle (string s);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static uint8[] string_to_rgb (string s);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static float[] string_to_rgbf (string s);
		}
		namespace CryptographicHashes {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Hash : GLib.Object {
				public string algo;
				public string val;
				public Hash ();
				public Hash.compute (GLib.ChecksumType type, uint8[] data);
				public Hash.from_stanza_node (Xmpp.StanzaNode node);
				public Xmpp.StanzaNode to_stanza_node ();
				public Hash.with_checksum (GLib.ChecksumType checksum_type, string hash);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Gee.List<Xmpp.Xep.CryptographicHashes.Hash> get_hashes (Xmpp.StanzaNode node);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Gee.List<Xmpp.Xep.CryptographicHashes.Hash> get_supported_hashes (Gee.List<Xmpp.Xep.CryptographicHashes.Hash> hashes);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static bool has_supported_hashes (Gee.List<Xmpp.Xep.CryptographicHashes.Hash> hashes);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static GLib.ChecksumType? hash_string_to_type (string hash);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string hash_type_to_string (GLib.ChecksumType type);
		}
		namespace DataForms {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class DataForm {
				public class BooleanField : Xmpp.Xep.DataForms.DataForm.Field {
					public BooleanField (Xmpp.StanzaNode node);
					public bool value { get; set; }
				}
				public class Field : GLib.Object {
					public Field ();
					public Field.from_node (Xmpp.StanzaNode node);
					public string get_value_string ();
					public void set_value_string (string val);
					public string? label { get; set; }
					public Xmpp.StanzaNode node { get; set; }
					public virtual Xmpp.Xep.DataForms.DataForm.Type? type_ { get; internal set; }
					public string? @var { get; set; }
				}
				public class FixedField : Xmpp.Xep.DataForms.DataForm.Field {
					public FixedField (Xmpp.StanzaNode node);
					public string value { owned get; set; }
				}
				public class HiddenField : Xmpp.Xep.DataForms.DataForm.Field {
					public HiddenField ();
					public HiddenField.from_node (Xmpp.StanzaNode node);
				}
				public class JidMultiField : Xmpp.Xep.DataForms.DataForm.Field {
					public JidMultiField (Xmpp.StanzaNode node);
					public Gee.List<Xmpp.Xep.DataForms.DataForm.Option> options { owned get; }
					public Gee.List<string> value { get; set; }
				}
				public class ListMultiField : Xmpp.Xep.DataForms.DataForm.Field {
					public ListMultiField (Xmpp.StanzaNode node);
					public Gee.List<Xmpp.Xep.DataForms.DataForm.Option> options { owned get; }
					public Gee.List<string> value { get; set; }
				}
				public class ListSingleField : Xmpp.Xep.DataForms.DataForm.Field {
					public ListSingleField (Xmpp.StanzaNode node);
					public Gee.List<Xmpp.Xep.DataForms.DataForm.Option> options { owned get; }
					public string value { owned get; set; }
				}
				public class Option {
					public Option (string label, string value);
					public string label { get; set; }
					public string value { get; set; }
				}
				public class TextPrivateField : Xmpp.Xep.DataForms.DataForm.Field {
					public TextPrivateField (Xmpp.StanzaNode node);
					public string value { owned get; set; }
				}
				public class TextSingleField : Xmpp.Xep.DataForms.DataForm.Field {
					public TextSingleField (Xmpp.StanzaNode node);
					public string value { owned get; set; }
				}
				public enum Type {
					BOOLEAN,
					FIXED,
					HIDDEN,
					JID_MULTI,
					LIST_SINGLE,
					LIST_MULTI,
					TEXT_PRIVATE,
					TEXT_SINGLE
				}
				public Gee.List<Xmpp.Xep.DataForms.DataForm.Field> fields;
				public string? form_type;
				public string? instructions;
				public string? title;
				public void add_field (Xmpp.Xep.DataForms.DataForm.Field field);
				public static Xmpp.Xep.DataForms.DataForm? create_from_node (Xmpp.StanzaNode node);
				public Xmpp.StanzaNode get_submit_node ();
				public Xmpp.StanzaNode stanza_node { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace DateTimeProfiles {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static GLib.DateTime? parse_string (string time_string);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string to_datetime (GLib.DateTime time);
		}
		namespace DelayedDelivery {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class MessageFlag : Xmpp.MessageFlag {
				public const string ID;
				public MessageFlag (GLib.DateTime datetime);
				public static Xmpp.Xep.DelayedDelivery.MessageFlag? get_flag (Xmpp.MessageStanza message);
				public override string get_id ();
				public override string get_ns ();
				public GLib.DateTime datetime { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.DelayedDelivery.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public static void set_message_delay (Xmpp.MessageStanza message, GLib.DateTime datetime);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ReceivedPipelineListener : Xmpp.StanzaListener<Xmpp.MessageStanza> {
				public ReceivedPipelineListener ();
				public override async bool run (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
				public override string action_group { get; }
				public override string[] after_actions { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static GLib.DateTime? get_time_for_message (Xmpp.MessageStanza message, Xmpp.Jid? jid = null);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static GLib.DateTime? get_time_for_node (Xmpp.StanzaNode node);
		}
		namespace DirectMucInvitations {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.DirectMucInvitations.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public void invite (Xmpp.XmppStream stream, Xmpp.Jid to_muc, Xmpp.Jid jid);
				public signal void invite_received (Xmpp.XmppStream stream, Xmpp.Jid room_jid, Xmpp.Jid from_jid, string? password, string? reason);
			}
		}
		namespace EntityCapabilities {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.EntityCapabilities.Module> IDENTITY;
				public Module (Xmpp.Xep.EntityCapabilities.Storage storage);
				public override void attach (Xmpp.XmppStream stream);
				public static string compute_hash (Gee.Set<Xmpp.Xep.ServiceDiscovery.Identity> identities_set, Gee.List<string> features, Gee.List<Xmpp.Xep.DataForms.DataForm> data_forms);
				public static string compute_hash_for_info_result (Xmpp.Xep.ServiceDiscovery.InfoResult info_result);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface Storage : GLib.Object {
				public abstract Gee.List<string> get_features (string entity);
				public abstract Xmpp.Xep.ServiceDiscovery.Identity? get_identities (string entity);
				public abstract void store_features (string entity, Gee.List<string> capabilities);
				public abstract void store_identities (string entity, Gee.Set<Xmpp.Xep.ServiceDiscovery.Identity> identities);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_caps_hash (Xmpp.Presence.Stanza presence);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_server_caps_hash (Xmpp.XmppStream stream);
		}
		namespace ExplicitEncryption {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void add_encryption_tag_to_message (Xmpp.MessageStanza message, string ns, string? name = null);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_encryption_tag (Xmpp.MessageStanza message);
		}
		namespace ExternalServiceDiscovery {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Service {
				public Service ();
				public GLib.DateTime? expires { get; set; }
				public string host { get; set; }
				public string name { get; set; }
				public string password { get; set; }
				public uint port { get; set; }
				public bool restricted { get; set; }
				public string transport { get; set; }
				public string ty { get; set; }
				public string username { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static async Gee.List<Xmpp.Xep.ExternalServiceDiscovery.Service> request_services (Xmpp.XmppStream stream);
		}
		namespace FallbackIndication {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Fallback {
				public Xmpp.Xep.FallbackIndication.FallbackLocation[] locations;
				public Fallback (string ns_uri, Xmpp.Xep.FallbackIndication.FallbackLocation[] locations);
				public string ns_uri { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class FallbackLocation {
				public FallbackLocation (int from_char, int to_char);
				public int from_char { get; set; }
				public int to_char { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Gee.List<Xmpp.Xep.FallbackIndication.Fallback> get_fallbacks (Xmpp.MessageStanza message);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void set_fallback (Xmpp.MessageStanza message, Xmpp.Xep.FallbackIndication.Fallback fallback);
		}
		namespace FileMetadataElement {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class FileMetadata {
				public Gee.List<Xmpp.Xep.CryptographicHashes.Hash> hashes;
				public Gee.List<Xmpp.Xep.JingleContentThumbnails.Thumbnail> thumbnails;
				public FileMetadata ();
				public Xmpp.StanzaNode to_stanza_node ();
				public GLib.DateTime? date { get; set; }
				public string? desc { get; set; }
				public int height { get; set; }
				public int64 length { get; set; }
				public string? mime_type { get; set; }
				public string? name { get; set; }
				public int64 size { get; set; }
				public int width { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Xmpp.Xep.FileMetadataElement.FileMetadata? get_file_metadata (Xmpp.StanzaNode node);
		}
		namespace HttpFileUpload {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.HttpFileUpload.Flag> IDENTITY;
				public Xmpp.Jid file_store_jid;
				public int? max_file_size;
				public string ns_ver;
				public Flag (Xmpp.Jid file_store_jid, string ns_ver);
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public struct SlotResult {
					public string _url_get;
					public string _url_put;
					public Gee.HashMap<string,string> _headers;
					public Gee.HashMap<string,string> headers { get; set; }
					public string url_get { get; set; }
					public string url_put { get; set; }
				}
				public delegate void OnError (Xmpp.XmppStream stream, string error);
				public delegate void OnSlotOk (Xmpp.XmppStream stream, string url_get, string url_put);
				public static Xmpp.ModuleIdentity<Xmpp.Xep.HttpFileUpload.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public async Xmpp.Xep.HttpFileUpload.Module.SlotResult request_slot (Xmpp.XmppStream stream, string filename, int64 file_size, string? content_type) throws Xmpp.Xep.HttpFileUpload.HttpFileTransferError;
				public signal void feature_available (Xmpp.XmppStream stream, long max_file_size);
				public signal void received_url (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ReceivedPipelineListener : Xmpp.StanzaListener<Xmpp.MessageStanza> {
				public ReceivedPipelineListener ();
				public override async bool run (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
				public override string action_group { get; }
				public override string[] after_actions { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public errordomain HttpFileTransferError {
				SLOT_REQUEST
			}
		}
		namespace HttpSchemeForUrlData {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_url (Xmpp.StanzaNode node);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Xmpp.StanzaNode to_stanza_node (string url);
		}
		namespace InBandBytestreams {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Connection : GLib.IOStream {
				public class Input : GLib.InputStream {
					public Input (Xmpp.Xep.InBandBytestreams.Connection connection);
					public override bool close (GLib.Cancellable? cancellable = null) throws GLib.IOError;
					public override async bool close_async (int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
					public override ssize_t read (uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.IOError;
					public override async ssize_t read_async (uint8[]? buffer, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
				}
				public class Output : GLib.OutputStream {
					public Output (Xmpp.Xep.InBandBytestreams.Connection connection);
					public override bool close (GLib.Cancellable? cancellable = null) throws GLib.IOError;
					public override async bool close_async (int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
					public override ssize_t write (uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.IOError;
					public override async ssize_t write_async (uint8[]? buffer, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
				}
				public enum State {
					WAITING_FOR_CONNECT,
					CONNECTING,
					CONNECTED,
					DISCONNECTING,
					DISCONNECTED,
					ERROR
				}
				public async bool close_read_async (int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
				public async bool close_write_async (int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
				public static Xmpp.Xep.InBandBytestreams.Connection create (Xmpp.XmppStream stream, Xmpp.Jid receiver_full_jid, string sid, int block_size, bool initiate);
				public void handle_close (Xmpp.XmppStream stream, Xmpp.StanzaNode close, Xmpp.Iq.Stanza iq);
				public void handle_data (Xmpp.XmppStream stream, Xmpp.StanzaNode data, Xmpp.Iq.Stanza iq);
				public void handle_open (Xmpp.XmppStream stream, Xmpp.StanzaNode open, Xmpp.Iq.Stanza iq);
				public async ssize_t read_async (uint8[]? buffer, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
				public void set_read_callback (owned GLib.SourceFunc callback, GLib.Cancellable? cancellable, int io_priority) throws GLib.IOError;
				public void set_write_callback (owned GLib.SourceFunc callback, GLib.Cancellable? cancellable, int io_priority) throws GLib.IOError;
				public void trigger_read_callback ();
				public void trigger_write_callback ();
				public async ssize_t write_async (uint8[]? buffer, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
				public override GLib.InputStream input_stream { get; }
				public override GLib.OutputStream output_stream { get; }
				public string sid { get; private set; }
				public Xmpp.Xep.InBandBytestreams.Connection.State state { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.InBandBytestreams.Flag> IDENTITY;
				public Flag ();
				public void add_connection (Xmpp.Xep.InBandBytestreams.Connection conn);
				public Xmpp.Xep.InBandBytestreams.Connection? get_connection (string sid);
				public override string get_id ();
				public override string get_ns ();
				public void remove_connection (Xmpp.Xep.InBandBytestreams.Connection conn);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule, Xmpp.Iq.Handler {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.InBandBytestreams.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
			}
		}
		namespace InBandRegistration {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Form : Xmpp.Xep.DataForms.DataForm {
				public string? oob;
				public Form ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamNegotiationModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.InBandRegistration.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public async Xmpp.ErrorStanza? change_password (Xmpp.XmppStream stream, Xmpp.Jid jid, string new_pw);
				public override void detach (Xmpp.XmppStream stream);
				public async Xmpp.Xep.InBandRegistration.Form? get_from_server (Xmpp.XmppStream stream, Xmpp.Jid jid);
				public override string get_id ();
				public override string get_ns ();
				public override bool mandatory_outstanding (Xmpp.XmppStream stream);
				public override bool negotiation_active (Xmpp.XmppStream stream);
				public async string? submit_to_server (Xmpp.XmppStream stream, Xmpp.Jid jid, Xmpp.Xep.InBandRegistration.Form form);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace Jet {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule, Xmpp.Xep.Jingle.SecurityPrecondition {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Jet.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public async bool is_available (Xmpp.XmppStream stream, Xmpp.Jid full_jid);
				public void register_cipher (Xmpp.Xep.Jet.Cipher cipher);
				public void register_envelop_encoding (Xmpp.Xep.Jet.EnvelopEncoding encoding);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Options : GLib.Object {
				public Options (string type_uri, string cipher_uri);
				public string cipher_uri { get; private set; }
				public string type_uri { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class SecurityParameters : Xmpp.Xep.Jingle.SecurityParameters, GLib.Object {
				public SecurityParameters (Xmpp.Xep.Jet.Cipher cipher, Xmpp.Xep.Jet.EnvelopEncoding encoding, Xmpp.Xep.Jet.TransportSecret secret, Xmpp.Xep.Jet.Options? options = null);
				public Xmpp.Xep.Jet.Cipher cipher { get; private set; }
				public Xmpp.Xep.Jet.EnvelopEncoding encoding { get; private set; }
				public Xmpp.Xep.Jet.Options? options { get; private set; }
				public Xmpp.Xep.Jet.TransportSecret secret { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class TransportSecret {
				public TransportSecret (uint8[] transport_key, uint8[] initialization_vector);
				public uint8[] initialization_vector { get; private set; }
				public uint8[] transport_key { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface Cipher : GLib.Object {
				public abstract Xmpp.Xep.Jet.TransportSecret generate_random_secret ();
				public abstract string get_cipher_uri ();
				public abstract GLib.InputStream wrap_input_stream (GLib.InputStream input, Xmpp.Xep.Jet.TransportSecret secret);
				public abstract GLib.OutputStream wrap_output_stream (GLib.OutputStream output, Xmpp.Xep.Jet.TransportSecret secret);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface EnvelopEncoding : GLib.Object {
				public abstract Xmpp.Xep.Jet.TransportSecret decode_envolop (Xmpp.XmppStream stream, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid, Xmpp.StanzaNode security) throws Xmpp.Xep.Jingle.IqError;
				public abstract void encode_envelop (Xmpp.XmppStream stream, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid, Xmpp.Xep.Jet.SecurityParameters security_params, Xmpp.StanzaNode security);
				public abstract string get_type_uri ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace Jingle {
			namespace ReasonElement {
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string ALTERNATIVE_SESSION;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string BUSY;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string CANCEL;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string CONNECTIVITY_ERROR;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string DECLINE;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string EXPIRED;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string FAILED_APPLICATION;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string FAILED_TRANSPORT;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string GENERAL_ERROR;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string GONE;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string INCOMPATIBLE_PARAMETERS;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string MEDIA_ERROR;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string[] NORMAL_TERMINATE_REASONS;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string SECURITY_ERROR;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string SUCCESS;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string TIMEOUT;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string UNSUPPORTED_APPLICATIONS;
				[CCode (cheader_filename = "xmpp-vala.h")]
				public const string UNSUPPORTED_TRANSPORTS;
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public abstract class ComponentConnection : GLib.Object {
				protected ComponentConnection ();
				public abstract async void terminate (bool we_terminated, string? reason_name = null, string? reason_text = null);
				public ulong bytes_received { get; protected set; }
				public ulong bytes_sent { get; protected set; }
				public uint8 component_id { get; set; }
				public signal void connection_closed ();
				public signal void connection_error (GLib.IOError e);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Content : GLib.Object {
				public enum State {
					PENDING,
					WANTS_TO_BE_ACCEPTED,
					ACCEPTED,
					REPLACING_TRANSPORT,
					WAITING_FOR_TRANSPORT_REPLACE
				}
				public Gee.Map<uint8,Xmpp.Xep.Jingle.ComponentConnection> component_connections;
				public Xmpp.Xep.Jingle.ContentParameters content_params;
				public Xmpp.Xep.Jingle.ContentType content_type;
				public Gee.HashMap<string,Xmpp.Xep.Jingle.ContentEncryption> encryptions;
				public Xmpp.Xep.Jingle.SecurityParameters? security_params;
				public Xmpp.Xep.Jingle.SecurityPrecondition security_precondition;
				public weak Xmpp.Xep.Jingle.Session session;
				public Xmpp.Xep.Jingle.Transport transport;
				public Xmpp.Xep.Jingle.TransportParameters? transport_params;
				public Content ();
				public void accept ();
				public void accept_content_modify (Xmpp.Xep.Jingle.Senders senders);
				public Xmpp.Xep.Jingle.ComponentConnection? get_transport_connection (uint8 component = 1);
				public void handle_transport_accept (Xmpp.XmppStream stream, Xmpp.StanzaNode transport_node, Xmpp.StanzaNode jingle, Xmpp.Iq.Stanza iq) throws Xmpp.Xep.Jingle.IqError;
				public void handle_transport_info (Xmpp.XmppStream stream, Xmpp.StanzaNode transport, Xmpp.StanzaNode jingle, Xmpp.Iq.Stanza iq) throws Xmpp.Xep.Jingle.IqError;
				public void handle_transport_reject (Xmpp.XmppStream stream, Xmpp.StanzaNode jingle, Xmpp.Iq.Stanza iq) throws Xmpp.Xep.Jingle.IqError;
				public void handle_transport_replace (Xmpp.XmppStream stream, Xmpp.StanzaNode transport_node, Xmpp.StanzaNode jingle, Xmpp.Iq.Stanza iq) throws Xmpp.Xep.Jingle.IqError;
				public Content.initiate_received (string content_name, Xmpp.Xep.Jingle.Senders senders, Xmpp.Xep.Jingle.ContentType content_type, Xmpp.Xep.Jingle.ContentParameters content_params, Xmpp.Xep.Jingle.Transport transport, Xmpp.Xep.Jingle.TransportParameters? transport_params, Xmpp.Xep.Jingle.SecurityPrecondition? security_precondition, Xmpp.Xep.Jingle.SecurityParameters? security_params, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid) throws Xmpp.Xep.Jingle.Error;
				public Content.initiate_sent (string content_name, Xmpp.Xep.Jingle.Senders senders, Xmpp.Xep.Jingle.ContentType content_type, Xmpp.Xep.Jingle.ContentParameters content_params, Xmpp.Xep.Jingle.Transport transport, Xmpp.Xep.Jingle.TransportParameters? transport_params, Xmpp.Xep.Jingle.SecurityPrecondition? security_precondition, Xmpp.Xep.Jingle.SecurityParameters? security_params, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid);
				public void modify (Xmpp.Xep.Jingle.Senders new_sender);
				public void on_description_info (Xmpp.XmppStream stream, Xmpp.StanzaNode description, Xmpp.StanzaNode jinglq, Xmpp.Iq.Stanza iq) throws Xmpp.Xep.Jingle.IqError;
				public void reject ();
				public async void select_new_transport ();
				public void send_transport_info (Xmpp.StanzaNode transport);
				public void set_session (Xmpp.Xep.Jingle.Session session);
				public void set_transport_connection (Xmpp.Xep.Jingle.ComponentConnection? conn, uint8 component = 1);
				public void terminate (bool we_terminated, string? reason_name, string? reason_text);
				public Xmpp.Xep.Jingle.Role content_creator { get; private set; }
				public string content_name { get; private set; }
				public Xmpp.Jid local_full_jid { get; private set; }
				public Xmpp.Jid peer_full_jid { get; private set; }
				public Xmpp.Xep.Jingle.Role role { get; private set; }
				public Xmpp.Xep.Jingle.Senders senders { get; private set; }
				public Xmpp.Xep.Jingle.Content.State state { get; set; }
				public signal void senders_modify_incoming (Xmpp.Xep.Jingle.Senders proposed_senders);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ContentEncryption : GLib.Object {
				public string encryption_name;
				public string encryption_ns;
				public uint8[] our_key;
				public uint8[] peer_key;
				public ContentEncryption (string encryption_ns, string encryption_name, uint8[] our_key = new uint8[0] { }, uint8[] peer_key = new uint8[0] { });
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public abstract class DatagramConnection : Xmpp.Xep.Jingle.ComponentConnection {
				protected DatagramConnection ();
				public abstract void send_datagram (GLib.Bytes datagram);
				public override async void terminate (bool we_terminated, string? reason_string = null, string? reason_text = null);
				public bool ready { get; set; }
				public signal void datagram_received (GLib.Bytes datagram);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.Jingle.Flag> IDENTITY;
				public Gee.HashMap<string,Gee.Promise<Xmpp.Xep.Jingle.Session?>> promises;
				public Gee.HashMap<string,Xmpp.Xep.Jingle.Session> sessions;
				public Flag ();
				public void add_session (Xmpp.Xep.Jingle.Session session);
				public override string get_id ();
				public override string get_ns ();
				public async Xmpp.Xep.Jingle.Session? get_session (string sid);
				public void pre_add_session (string sid);
				public void remove_session (string sid);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule, Xmpp.Iq.Handler {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Jingle.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public async Xmpp.Xep.Jingle.Session create_session (Xmpp.XmppStream stream, Gee.List<Xmpp.Xep.Jingle.Content> contents, Xmpp.Jid receiver_full_jid, string? sid = null, Xmpp.Jid? muji_room = null) throws Xmpp.Xep.Jingle.Error;
				public override void detach (Xmpp.XmppStream stream);
				public Xmpp.Xep.Jingle.ContentType? get_content_type (string ns_uri);
				public override string get_id ();
				public override string get_ns ();
				public Xmpp.Xep.Jingle.SecurityPrecondition? get_security_precondition (string? ns_uri);
				public Xmpp.Xep.Jingle.SessionInfoNs? get_session_info_type (string ns_uri);
				public Xmpp.Xep.Jingle.Transport? get_transport (string ns_uri);
				public async void handle_iq_set (Xmpp.XmppStream stream, Xmpp.Iq.Stanza iq) throws Xmpp.Xep.Jingle.IqError;
				public async void handle_session_initiate (Xmpp.XmppStream stream, string sid, Xmpp.StanzaNode jingle, Xmpp.Iq.Stanza iq) throws Xmpp.Xep.Jingle.IqError;
				public async bool is_available (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.TransportType type, uint8 components, Xmpp.Jid full_jid);
				public void register_content_type (Xmpp.Xep.Jingle.ContentType content_type);
				public void register_security_precondition (Xmpp.Xep.Jingle.SecurityPrecondition precondition);
				public void register_session_info_type (Xmpp.Xep.Jingle.SessionInfoNs info_ns);
				public void register_transport (Xmpp.Xep.Jingle.Transport transport);
				public async Xmpp.Xep.Jingle.Transport? select_transport (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.TransportType type, uint8 components, Xmpp.Jid receiver_full_jid, Gee.Set<string> blacklist);
				public signal void session_initiate_received (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Session session);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Session : GLib.Object {
				public enum State {
					INITIATE_SENT,
					INITIATE_RECEIVED,
					ACTIVE,
					ENDED
				}
				public Gee.List<Xmpp.Xep.Jingle.Content> contents;
				public Gee.HashMap<string,Xmpp.Xep.Jingle.Content> contents_map;
				public Session ();
				public async void add_content (Xmpp.Xep.Jingle.Content content);
				public void handle_iq_set (string action, Xmpp.StanzaNode jingle, Xmpp.Iq.Stanza iq) throws Xmpp.Xep.Jingle.IqError;
				public Session.initiate_received (Xmpp.XmppStream stream, string sid, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid);
				public Session.initiate_sent (Xmpp.XmppStream stream, string sid, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid);
				public bool senders_include_counterpart (Xmpp.Xep.Jingle.Senders senders);
				public bool senders_include_us (Xmpp.Xep.Jingle.Senders senders);
				public void set_application_error (Xmpp.StanzaNode? application_reason = null);
				public void terminate (string? reason_name, string? reason_text, string? local_reason);
				public Xmpp.Jid local_full_jid { get; private set; }
				public Xmpp.Jid muji_room { get; set; }
				public Xmpp.Jid peer_full_jid { get; private set; }
				public Xmpp.Xep.Jingle.SecurityParameters? security { get; }
				public string sid { get; private set; }
				public Xmpp.Xep.Jingle.Session.State state { get; set; }
				public Xmpp.XmppStream stream { get; set; }
				public bool we_initiated { get; private set; }
				public signal void additional_content_add_incoming (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Content content);
				public signal void terminated (Xmpp.XmppStream stream, bool we_terminated, string? reason_name, string? reason_text);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class StreamingConnection : Xmpp.Xep.Jingle.ComponentConnection {
				protected Gee.Promise<GLib.IOStream> promise;
				public StreamingConnection ();
				public void set_error (GLib.Error? e);
				public async void set_stream (GLib.IOStream? stream);
				public override async void terminate (bool we_terminated, string? reason_name = null, string? reason_text = null);
				public Gee.Future<GLib.IOStream> stream { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface ContentParameters : GLib.Object {
				public abstract void accept (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Session session, Xmpp.Xep.Jingle.Content content);
				public abstract Xmpp.StanzaNode get_description_node ();
				public abstract void handle_accept (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Session session, Xmpp.Xep.Jingle.Content content, Xmpp.StanzaNode description_node);
				public abstract async void handle_proposed_content (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Session session, Xmpp.Xep.Jingle.Content content);
				public abstract void terminate (bool we_terminated, string? reason_name, string? reason_text);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface ContentType : GLib.Object {
				public abstract Xmpp.Xep.Jingle.ContentParameters parse_content_parameters (Xmpp.StanzaNode description) throws Xmpp.Xep.Jingle.IqError;
				public abstract string ns_uri { get; }
				public abstract uint8 required_components { get; }
				public abstract Xmpp.Xep.Jingle.TransportType required_transport_type { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface SecurityParameters : GLib.Object {
				public abstract string security_ns_uri ();
				public abstract Xmpp.StanzaNode to_security_stanza_node (Xmpp.XmppStream stream, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid);
				public abstract GLib.IOStream wrap_stream (GLib.IOStream stream);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface SecurityPrecondition : GLib.Object {
				public abstract Xmpp.Xep.Jingle.SecurityParameters? create_security_parameters (Xmpp.XmppStream stream, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid, GLib.Object options) throws Xmpp.Xep.Jingle.Error;
				public abstract Xmpp.Xep.Jingle.SecurityParameters? parse_security_parameters (Xmpp.XmppStream stream, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid, Xmpp.StanzaNode security) throws Xmpp.Xep.Jingle.IqError;
				public abstract string security_ns_uri ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface SessionInfoNs : GLib.Object {
				public abstract void handle_content_session_info (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Session session, Xmpp.StanzaNode info, Xmpp.Iq.Stanza iq) throws Xmpp.Xep.Jingle.IqError;
				public abstract string ns_uri { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface Transport : GLib.Object {
				public abstract Xmpp.Xep.Jingle.TransportParameters create_transport_parameters (Xmpp.XmppStream stream, uint8 components, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid) throws Xmpp.Xep.Jingle.Error;
				public abstract async bool is_transport_available (Xmpp.XmppStream stream, uint8 components, Xmpp.Jid full_jid);
				public abstract Xmpp.Xep.Jingle.TransportParameters parse_transport_parameters (Xmpp.XmppStream stream, uint8 components, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid, Xmpp.StanzaNode transport) throws Xmpp.Xep.Jingle.IqError;
				public abstract string ns_uri { get; }
				public abstract int priority { get; }
				public abstract Xmpp.Xep.Jingle.TransportType type_ { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface TransportParameters : GLib.Object {
				public abstract void create_transport_connection (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Content content);
				public abstract void handle_transport_accept (Xmpp.StanzaNode transport) throws Xmpp.Xep.Jingle.IqError;
				public abstract void handle_transport_info (Xmpp.StanzaNode transport) throws Xmpp.Xep.Jingle.IqError;
				public abstract void set_content (Xmpp.Xep.Jingle.Content content);
				public abstract Xmpp.StanzaNode to_transport_stanza_node (string action_type);
				public abstract uint8 components { get; }
				public abstract string ns_uri { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum Role {
				INITIATOR,
				RESPONDER;
				public string to_string ();
				public static Xmpp.Xep.Jingle.Role parse (string role) throws Xmpp.Xep.Jingle.IqError;
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum Senders {
				BOTH,
				INITIATOR,
				NONE,
				RESPONDER;
				public string to_string ();
				public static Xmpp.Xep.Jingle.Senders parse (string? senders) throws Xmpp.Xep.Jingle.IqError;
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum TransportType {
				DATAGRAM,
				STREAMING
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public errordomain Error {
				GENERAL,
				BAD_REQUEST,
				INVALID_PARAMETERS,
				UNSUPPORTED_TRANSPORT,
				UNSUPPORTED_SECURITY,
				NO_SHARED_PROTOCOLS,
				TRANSPORT_ERROR
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public errordomain IqError {
				BAD_REQUEST,
				NOT_ACCEPTABLE,
				NOT_IMPLEMENTED,
				UNSUPPORTED_INFO,
				OUT_OF_ORDER,
				RESOURCE_CONSTRAINT
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public delegate void SessionTerminate (Xmpp.Jid to, string sid, Xmpp.StanzaNode reason);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace JingleContentThumbnails {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Thumbnail {
				public int height;
				public string? media_type;
				public string uri;
				public int width;
				public Thumbnail ();
				public static Xmpp.Xep.JingleContentThumbnails.Thumbnail? from_stanza_node (Xmpp.StanzaNode node);
				public Xmpp.StanzaNode to_stanza_node ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Gee.List<Xmpp.Xep.JingleContentThumbnails.Thumbnail> get_thumbnails (Xmpp.StanzaNode node);
		}
		namespace JingleFileTransfer {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class FileTransfer : GLib.Object {
				public FileTransfer (Xmpp.Xep.Jingle.Session session, Xmpp.Xep.Jingle.Content content, Xmpp.Xep.JingleFileTransfer.Parameters parameters);
				public async void accept (Xmpp.XmppStream stream) throws GLib.IOError;
				public void reject (Xmpp.XmppStream stream);
				public string? file_name { get; }
				public Xmpp.Jid peer { get; }
				public Xmpp.Xep.Jingle.SecurityParameters? security { get; }
				public int64 size { get; }
				public GLib.InputStream? stream { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.Xep.Jingle.ContentType, Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.JingleFileTransfer.Module> IDENTITY;
				public Xmpp.Xep.JingleFileTransfer.SessionInfoType session_info_type;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public Xmpp.Xep.Jingle.ContentParameters create_content_parameters (GLib.Object object) throws Xmpp.Xep.Jingle.IqError;
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public async bool is_available (Xmpp.XmppStream stream, Xmpp.Jid full_jid);
				public async void offer_file_stream (Xmpp.XmppStream stream, Xmpp.Jid receiver_full_jid, GLib.InputStream input_stream, string basename, int64 size, string? precondition_name = null, GLib.Object? precondition_options = null) throws Xmpp.Xep.Jingle.Error;
				public signal void file_incoming (Xmpp.XmppStream stream, Xmpp.Xep.JingleFileTransfer.FileTransfer file_transfer);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Parameters : Xmpp.Xep.Jingle.ContentParameters, GLib.Object {
				public Parameters (Xmpp.Xep.JingleFileTransfer.Module parent, Xmpp.StanzaNode original_description, string? media_type, string? name, int64 size);
				public void modify (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Session session, Xmpp.Xep.Jingle.Content content, Xmpp.Xep.Jingle.Senders senders);
				public static Xmpp.Xep.JingleFileTransfer.Parameters parse (Xmpp.Xep.JingleFileTransfer.Module parent, Xmpp.StanzaNode description) throws Xmpp.Xep.Jingle.IqError;
				public string? name { get; private set; }
				public Xmpp.StanzaNode original_description { get; private set; }
				public int64 size { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class SessionInfoType : Xmpp.Xep.Jingle.SessionInfoNs, GLib.Object {
				public SessionInfoType ();
			}
		}
		namespace JingleIceUdp {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Candidate {
				public enum Type {
					HOST,
					PRFLX,
					RELAY,
					SRFLX;
					public static Xmpp.Xep.JingleIceUdp.Candidate.Type parse (string str) throws Xmpp.Xep.Jingle.IqError;
					public string to_string ();
				}
				public uint8 component;
				public string foundation;
				public uint8 generation;
				public string id;
				public string ip;
				public uint8 network;
				public uint16 port;
				public uint32 priority;
				public string protocol;
				public string? rel_addr;
				public uint16 rel_port;
				public Xmpp.Xep.JingleIceUdp.Candidate.Type type_;
				public Candidate ();
				public bool equals (Xmpp.Xep.JingleIceUdp.Candidate c);
				public static bool equals_func (Xmpp.Xep.JingleIceUdp.Candidate c1, Xmpp.Xep.JingleIceUdp.Candidate c2);
				public static Xmpp.Xep.JingleIceUdp.Candidate parse (Xmpp.StanzaNode node) throws Xmpp.Xep.Jingle.IqError;
				public Xmpp.StanzaNode to_xml ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public abstract class IceUdpTransportParameters : Xmpp.Xep.Jingle.TransportParameters, GLib.Object {
				protected weak Xmpp.Xep.Jingle.Content? content;
				public Gee.ConcurrentList<Xmpp.Xep.JingleIceUdp.Candidate> local_candidates;
				public uint8[]? own_fingerprint;
				public string? own_setup;
				public uint8[]? peer_fingerprint;
				public string? peer_fp_algo;
				public string? peer_setup;
				public Gee.List<Xmpp.Xep.JingleIceUdp.Candidate> remote_candidates;
				public Gee.ConcurrentList<Xmpp.Xep.JingleIceUdp.Candidate> unsent_local_candidates;
				protected bool use_raw;
				protected IceUdpTransportParameters (uint8 components, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid, Xmpp.StanzaNode? node = null);
				public void add_local_candidate_threadsafe (Xmpp.Xep.JingleIceUdp.Candidate candidate);
				public virtual void create_transport_connection (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Content content);
				public virtual void handle_transport_accept (Xmpp.StanzaNode node) throws Xmpp.Xep.Jingle.IqError;
				public virtual void handle_transport_info (Xmpp.StanzaNode node) throws Xmpp.Xep.Jingle.IqError;
				public void init (string ufrag, string pwd);
				public void unset_content ();
				public bool incoming { get; private set; }
				public Xmpp.Jid local_full_jid { get; private set; }
				public string local_pwd { get; private set; }
				public string local_ufrag { get; private set; }
				public Xmpp.Jid peer_full_jid { get; private set; }
				public string remote_pwd { get; private set; }
				public string remote_ufrag { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public abstract class Module : Xmpp.XmppStreamModule, Xmpp.Xep.Jingle.Transport {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.JingleIceUdp.Module> IDENTITY;
				protected Module ();
				public override void attach (Xmpp.XmppStream stream);
				public abstract Xmpp.Xep.Jingle.TransportParameters create_transport_parameters (Xmpp.XmppStream stream, uint8 components, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public abstract Xmpp.Xep.Jingle.TransportParameters parse_transport_parameters (Xmpp.XmppStream stream, uint8 components, Xmpp.Jid local_full_jid, Xmpp.Jid peer_full_jid, Xmpp.StanzaNode transport) throws Xmpp.Xep.Jingle.IqError;
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string DTLS_NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace JingleInBandBytestreams {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.Xep.Jingle.Transport, Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.JingleInBandBytestreams.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
			}
		}
		namespace JingleMessageInitiation {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.JingleMessageInitiation.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public void send_session_accept_to_self (Xmpp.XmppStream stream, string sid);
				public void send_session_proceed_to_peer (Xmpp.XmppStream stream, Xmpp.Jid to, string sid);
				public void send_session_propose_to_peer (Xmpp.XmppStream stream, Xmpp.Jid to, string sid, Gee.List<Xmpp.StanzaNode> descriptions);
				public void send_session_reject_to_peer (Xmpp.XmppStream stream, Xmpp.Jid to, string sid);
				public void send_session_reject_to_self (Xmpp.XmppStream stream, string sid);
				public void send_session_retract_to_peer (Xmpp.XmppStream stream, Xmpp.Jid to, string sid);
				public signal void session_accepted (Xmpp.Jid from, Xmpp.Jid to, string sid);
				public signal void session_proposed (Xmpp.Jid from, Xmpp.Jid to, string sid, Gee.List<Xmpp.StanzaNode> descriptions);
				public signal void session_rejected (Xmpp.Jid from, Xmpp.Jid to, string sid);
				public signal void session_retracted (Xmpp.Jid from, Xmpp.Jid to, string sid);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace JingleRawUdp {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Candidate : GLib.Object {
				public Candidate ();
				public int component { get; set; }
				public int generation { get; set; }
				public string id { get; set; }
				public GLib.InetAddress ip { get; set; }
				public uint port { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule, Xmpp.Xep.Jingle.Transport {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.JingleRawUdp.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public Gee.List<string> get_local_ip_addresses ();
				public override string get_ns ();
				public void set_local_ip_address_handler (owned Xmpp.Xep.JingleRawUdp.GetLocalIpAddresses get_local_ip_addresses);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class TransportParameters : Xmpp.Xep.Jingle.TransportParameters, GLib.Object {
				public Gee.List<Xmpp.Xep.JingleRawUdp.Candidate> own_candidates;
				public Gee.List<Xmpp.Xep.JingleRawUdp.Candidate> remote_candidates;
				public TransportParameters (uint8 components, Xmpp.StanzaNode? node = null);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public delegate Gee.List<string> GetLocalIpAddresses ();
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace JingleRtp {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ContentType : Xmpp.Xep.Jingle.ContentType, GLib.Object {
				public ContentType (Xmpp.Xep.JingleRtp.Module module);
				public Xmpp.Xep.Jingle.ContentParameters create_content_parameters (GLib.Object object) throws Xmpp.Xep.Jingle.IqError;
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Crypto {
				public const string AES_CM_128_HMAC_SHA1_32;
				public const string AES_CM_128_HMAC_SHA1_80;
				public const string F8_128_HMAC_SHA1_80;
				public Crypto ();
				public static Xmpp.Xep.JingleRtp.Crypto create (string crypto_suite, uint8[] key_and_salt, string? session_params = null, string tag = "1");
				public static Xmpp.Xep.JingleRtp.Crypto parse (Xmpp.StanzaNode node);
				public Xmpp.Xep.JingleRtp.Crypto rekey (uint8[] key_and_salt);
				public Xmpp.StanzaNode to_xml ();
				public string crypto_suite { get; private set; }
				public bool is_valid { get; }
				public uint8[]? key { owned get; }
				public uint8[]? key_and_salt { owned get; }
				public string key_params { get; private set; }
				public string? lifetime { owned get; }
				public int mki { get; }
				public int mki_length { get; }
				public uint8[]? salt { owned get; }
				public string? session_params { get; private set; }
				public string tag { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class HeaderExtension {
				public const string NAME;
				public const string NS_URI;
				public HeaderExtension (uint8 id, string uri);
				public static Xmpp.Xep.JingleRtp.HeaderExtension parse (Xmpp.StanzaNode node);
				public Xmpp.StanzaNode to_xml ();
				public uint8 id { get; private set; }
				public string uri { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public abstract class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.JingleRtp.Module> IDENTITY;
				public Xmpp.Xep.JingleRtp.SessionInfoType session_info_type;
				protected Module ();
				public async Xmpp.Xep.Jingle.Content add_outgoing_video_content (Xmpp.XmppStream stream, Xmpp.Xep.Jingle.Session session, Xmpp.Jid? muji_muc) throws Xmpp.Xep.Jingle.Error;
				public override void attach (Xmpp.XmppStream stream);
				public abstract void close_stream (Xmpp.Xep.JingleRtp.Stream stream);
				public abstract Xmpp.Xep.JingleRtp.Stream create_stream (Xmpp.Xep.Jingle.Content content);
				public override void detach (Xmpp.XmppStream stream);
				public abstract Xmpp.Xep.JingleRtp.Crypto? generate_local_crypto ();
				public override string get_id ();
				public override string get_ns ();
				public abstract Gee.List<Xmpp.Xep.JingleRtp.HeaderExtension> get_suggested_header_extensions (string media);
				public abstract async Gee.List<Xmpp.Xep.JingleRtp.PayloadType> get_supported_payloads (string media);
				public async bool is_available (Xmpp.XmppStream stream, Xmpp.Jid full_jid);
				public abstract bool is_header_extension_supported (string media, Xmpp.Xep.JingleRtp.HeaderExtension ext);
				public abstract async bool is_payload_supported (string media, Xmpp.Xep.JingleRtp.PayloadType payload_type);
				public abstract Xmpp.Xep.JingleRtp.Crypto? pick_local_crypto (Xmpp.Xep.JingleRtp.Crypto? remote);
				public abstract async Xmpp.Xep.JingleRtp.PayloadType? pick_payload_type (string media, Gee.List<Xmpp.Xep.JingleRtp.PayloadType> payloads);
				public abstract Xmpp.Xep.JingleRtp.Crypto? pick_remote_crypto (Gee.List<Xmpp.Xep.JingleRtp.Crypto> cryptos);
				public async Xmpp.Xep.Jingle.Session start_call (Xmpp.XmppStream stream, Xmpp.Jid receiver_full_jid, bool video, string sid, Xmpp.Jid? muji_room) throws Xmpp.Xep.Jingle.Error;
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Parameters : Xmpp.Xep.Jingle.ContentParameters, GLib.Object {
				public Gee.List<Xmpp.Xep.JingleRtp.HeaderExtension> header_extensions;
				public Xmpp.Xep.JingleRtp.Crypto? local_crypto;
				public Gee.List<Xmpp.Xep.JingleRtp.PayloadType> payload_types;
				public Xmpp.Xep.JingleRtp.Crypto? remote_crypto;
				public Gee.List<Xmpp.Xep.JingleRtp.Crypto> remote_cryptos;
				public Parameters (Xmpp.Xep.JingleRtp.Module parent, string media, Gee.List<Xmpp.Xep.JingleRtp.PayloadType> payload_types, string? ssrc = null, bool rtcp_mux = false, string? bandwidth = null, string? bandwidth_type = null, bool encryption_required = false, Xmpp.Xep.JingleRtp.Crypto? local_crypto = null);
				public Parameters.from_node (Xmpp.Xep.JingleRtp.Module parent, Xmpp.StanzaNode node) throws Xmpp.Xep.Jingle.IqError;
				public Xmpp.Xep.JingleRtp.PayloadType? agreed_payload_type { get; private set; }
				public string? bandwidth { get; private set; }
				public string? bandwidth_type { get; private set; }
				public bool encryption_required { get; private set; }
				public string media { get; private set; }
				public bool rtcp_mux { get; private set; }
				public bool rtcp_ready { get; private set; }
				public bool rtp_ready { get; private set; }
				public string? ssrc { get; private set; }
				public weak Xmpp.Xep.JingleRtp.Stream? stream { get; private set; }
				public signal void connection_ready ();
				public signal void stream_created (Xmpp.Xep.JingleRtp.Stream stream);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class PayloadType {
				public Gee.Map<string,string> parameters;
				public Gee.List<Xmpp.Xep.JingleRtp.RtcpFeedback> rtcp_fbs;
				public const string NAME;
				public PayloadType ();
				public Xmpp.Xep.JingleRtp.PayloadType clone ();
				public static bool equals_func (Xmpp.Xep.JingleRtp.PayloadType a, Xmpp.Xep.JingleRtp.PayloadType b);
				public static uint hash_func (Xmpp.Xep.JingleRtp.PayloadType payload_type);
				public static Xmpp.Xep.JingleRtp.PayloadType parse (Xmpp.StanzaNode node);
				public Xmpp.StanzaNode to_xml ();
				public uint8 channels { get; set; }
				public uint32 clockrate { get; set; }
				public uint8 id { get; set; }
				public uint32 maxptime { get; set; }
				public string? name { get; set; }
				public uint32 ptime { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class RtcpFeedback {
				public const string NAME;
				public const string NS_URI;
				public RtcpFeedback (string type, string? subtype = null);
				public static Xmpp.Xep.JingleRtp.RtcpFeedback parse (Xmpp.StanzaNode node);
				public Xmpp.StanzaNode to_xml ();
				public string? subtype { get; private set; }
				public string type_ { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class SessionInfoType : Xmpp.Xep.Jingle.SessionInfoNs, GLib.Object {
				public const string NS_URI;
				public SessionInfoType ();
				public void send_mute (Xmpp.Xep.Jingle.Session session, bool mute, string media);
				public void send_ringing (Xmpp.Xep.Jingle.Session session);
				public signal void info_received (Xmpp.Xep.Jingle.Session session, Xmpp.Xep.JingleRtp.CallSessionInfo info);
				public signal void mute_update_received (Xmpp.Xep.Jingle.Session session, bool mute, string name);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public abstract class Stream : GLib.Object {
				protected Stream (Xmpp.Xep.Jingle.Content content);
				public abstract void create ();
				public abstract void destroy ();
				public abstract void on_recv_rtcp_data (GLib.Bytes bytes);
				public abstract void on_recv_rtp_data (GLib.Bytes bytes);
				public abstract void on_rtcp_ready ();
				public abstract void on_rtp_ready ();
				public string to_string ();
				public Xmpp.Xep.Jingle.Content content { get; protected set; }
				public Gee.List<Xmpp.Xep.JingleRtp.HeaderExtension>? header_extensions { get; }
				public Xmpp.Xep.JingleRtp.Crypto? local_crypto { get; }
				public string? media { get; }
				public string name { get; }
				public Xmpp.Xep.JingleRtp.PayloadType? payload_type { get; }
				public bool receiving { get; }
				public bool remb_enabled { get; }
				public Xmpp.Xep.JingleRtp.Crypto? remote_crypto { get; }
				public bool rtcp_mux { get; }
				public bool sending { get; }
				public uint target_receive_bitrate { get; set; }
				public uint target_send_bitrate { get; set; }
				public signal void on_send_rtcp_data (GLib.Bytes bytes);
				public signal void on_send_rtp_data (GLib.Bytes bytes);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum CallSessionInfo {
				ACTIVE,
				HOLD,
				UNHOLD,
				MUTE,
				UNMUTE,
				RINGING
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI_AUDIO;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI_VIDEO;
		}
		namespace JingleSocks5Bytestreams {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Candidate : Xmpp.Xep.Socks5Bytestreams.Proxy {
				public Candidate.build (string cid, string host, Xmpp.Jid jid, int port, int local_priority, Xmpp.Xep.JingleSocks5Bytestreams.CandidateType type);
				public static Xmpp.Xep.JingleSocks5Bytestreams.Candidate parse (Xmpp.StanzaNode candidate) throws Xmpp.Xep.Jingle.IqError;
				public Candidate.proxy (string cid, Xmpp.Xep.Socks5Bytestreams.Proxy proxy, int local_priority);
				public Xmpp.StanzaNode to_xml ();
				public string cid { get; private set; }
				public int priority { get; private set; }
				public Xmpp.Xep.JingleSocks5Bytestreams.CandidateType type_ { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.Xep.Jingle.Transport, Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.JingleSocks5Bytestreams.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum CandidateType {
				ASSISTED,
				DIRECT,
				PROXY,
				TUNNEL;
				public static Xmpp.Xep.JingleSocks5Bytestreams.CandidateType parse (string type) throws Xmpp.Xep.Jingle.IqError;
				public string to_string ();
				public int type_preference ();
			}
		}
		namespace LastMessageCorrection {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.LastMessageCorrection.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_replace_id (Xmpp.MessageStanza message);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void set_replace_id (Xmpp.MessageStanza message, string replace_id);
		}
		namespace MessageAttaching {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_attach_to (Xmpp.StanzaNode node);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Xmpp.StanzaNode to_stanza_node (string id);
		}
		namespace MessageCarbons {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class MessageFlag : Xmpp.MessageFlag {
				public const string ID;
				public const string TYPE_RECEIVED;
				public const string TYPE_SENT;
				public MessageFlag (string type);
				public static Xmpp.Xep.MessageCarbons.MessageFlag? get_flag (Xmpp.MessageStanza message);
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.MessageCarbons.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public async void disable (Xmpp.XmppStream stream);
				public async void enable (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ReceivedPipelineListener : Xmpp.StanzaListener<Xmpp.MessageStanza> {
				public ReceivedPipelineListener ();
				public override async bool run (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
				public override string action_group { get; }
				public override string[] after_actions { get; }
			}
		}
		namespace MessageDeliveryReceipts {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.MessageDeliveryReceipts.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public static bool requests_receipt (Xmpp.MessageStanza message);
				public void send_received (Xmpp.XmppStream stream, Xmpp.Jid from, string message_id);
				public signal void receipt_received (Xmpp.XmppStream stream, Xmpp.Jid jid, string id, Xmpp.MessageStanza stanza);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class SendPipelineListener : Xmpp.StanzaListener<Xmpp.MessageStanza> {
				public SendPipelineListener ();
				public override async bool run (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
				public override string action_group { get; }
				public override string[] after_actions { get; }
			}
		}
		namespace MessageMarkup {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Span : GLib.Object {
				public Span ();
				public int end_char { get; set; }
				public int start_char { get; set; }
				public Gee.List<Xmpp.Xep.MessageMarkup.SpanType> types { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum SpanType {
				EMPHASIS,
				STRONG_EMPHASIS,
				DELETED
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void add_spans (Xmpp.MessageStanza stanza, Gee.List<Xmpp.Xep.MessageMarkup.Span> spans);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Gee.List<Xmpp.Xep.MessageMarkup.Span> get_spans (Xmpp.MessageStanza stanza);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string span_type_to_str (Xmpp.Xep.MessageMarkup.SpanType span_type);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Xmpp.Xep.MessageMarkup.SpanType str_to_span_type (string span_str);
		}
		namespace MessageProcessingHints {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string HINT_NO_COPY;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string HINT_NO_PERMANENT_STORE;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string HINT_NO_STORE;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string HINT_STORE;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void set_message_hint (Xmpp.MessageStanza message, string message_hint);
		}
		namespace Muc {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.Muc.Flag> IDENTITY;
				public Gee.HashMap<Xmpp.Jid,Gee.Promise<Xmpp.Xep.Muc.JoinResult?>> enter_futures;
				public Flag ();
				public Xmpp.Xep.Muc.Affiliation get_affiliation (Xmpp.Jid muc_jid, Xmpp.Jid full_jid);
				public string? get_enter_id (Xmpp.Jid muc_jid);
				public string? get_muc_nick (Xmpp.Jid muc_jid);
				public string? get_muc_subject (Xmpp.Jid muc_jid);
				public Xmpp.Jid? get_occupant_jid (Xmpp.Jid real_jid, Xmpp.Jid room);
				public Xmpp.Xep.Muc.Role? get_occupant_role (Xmpp.Jid full_jid);
				public Gee.List<Xmpp.Jid> get_offline_members (Xmpp.Jid muc_jid);
				public Xmpp.Jid? get_real_jid (Xmpp.Jid full_jid);
				public string? get_room_name (Xmpp.Jid muc_jid);
				public bool has_room_feature (Xmpp.Jid muc_jid, Xmpp.Xep.Muc.Feature feature);
				public bool is_muc (Xmpp.Jid jid);
				public bool is_muc_enter_outstanding ();
				public bool is_occupant (Xmpp.Jid jid);
				public void set_muc_nick (Xmpp.Jid muc_jid);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class JoinResult {
				public Xmpp.Xep.Muc.MucEnterError? muc_error;
				public bool newly_created;
				public string? nick;
				public string? stanza_error;
				public JoinResult ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Muc.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public async void change_affiliation (Xmpp.XmppStream stream, Xmpp.Jid muc_jid, Xmpp.Jid? user_jid, string? nick, string new_affiliation);
				public void change_nick (Xmpp.XmppStream stream, Xmpp.Jid jid, string new_nick);
				public void change_role (Xmpp.XmppStream stream, Xmpp.Jid jid, string nick, string new_role);
				public void change_subject (Xmpp.XmppStream stream, Xmpp.Jid jid, string subject);
				public override void detach (Xmpp.XmppStream stream);
				public async Xmpp.Xep.Muc.JoinResult? enter (Xmpp.XmppStream stream, Xmpp.Jid bare_jid, string nick, string? password, GLib.DateTime? history_since, bool receive_history, Xmpp.StanzaNode? additional_node);
				public void exit (Xmpp.XmppStream stream, Xmpp.Jid jid);
				public async Xmpp.Xep.DataForms.DataForm? get_config_form (Xmpp.XmppStream stream, Xmpp.Jid jid);
				public override string get_id ();
				public override string get_ns ();
				public void invite (Xmpp.XmppStream stream, Xmpp.Jid to_muc, Xmpp.Jid jid);
				public void kick (Xmpp.XmppStream stream, Xmpp.Jid jid, string nick);
				public bool kick_possible (Xmpp.XmppStream stream, Xmpp.Jid occupant);
				public void request_voice (Xmpp.XmppStream stream, Xmpp.Jid to_muc);
				public async void set_config_form (Xmpp.XmppStream stream, Xmpp.Jid jid, Xmpp.Xep.DataForms.DataForm data_form);
				public signal void invite_received (Xmpp.XmppStream stream, Xmpp.Jid room_jid, Xmpp.Jid from_jid, string? password, string? reason);
				public signal void received_occupant_affiliation (Xmpp.XmppStream stream, Xmpp.Jid jid, Xmpp.Xep.Muc.Affiliation? affiliation);
				public signal void received_occupant_jid (Xmpp.XmppStream stream, Xmpp.Jid jid, Xmpp.Jid? real_jid);
				public signal void received_occupant_role (Xmpp.XmppStream stream, Xmpp.Jid jid, Xmpp.Xep.Muc.Role? role);
				public signal void removed_from_room (Xmpp.XmppStream stream, Xmpp.Jid jid, Xmpp.Xep.Muc.StatusCode? code);
				public signal void room_info_updated (Xmpp.XmppStream stream, Xmpp.Jid muc_jid);
				public signal void self_removed_from_room (Xmpp.XmppStream stream, Xmpp.Jid jid, Xmpp.Xep.Muc.StatusCode code);
				public signal void subject_set (Xmpp.XmppStream stream, string? subject, Xmpp.Jid jid);
				public signal void voice_request_received (Xmpp.XmppStream stream, Xmpp.Jid room_jid, Xmpp.Jid from_jid, string nick);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ReceivedPipelineListener : Xmpp.StanzaListener<Xmpp.MessageStanza> {
				public ReceivedPipelineListener (Xmpp.Xep.Muc.Module outer);
				public override async bool run (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
				public override string action_group { get; }
				public override string[] after_actions { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum Affiliation {
				NONE,
				ADMIN,
				MEMBER,
				OUTCAST,
				OWNER
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum Feature {
				REGISTER,
				ROOMCONFIG,
				ROOMINFO,
				HIDDEN,
				MEMBERS_ONLY,
				MODERATED,
				NON_ANONYMOUS,
				OPEN,
				PASSWORD_PROTECTED,
				PERSISTENT,
				PUBLIC,
				ROOMS,
				SEMI_ANONYMOUS,
				STABLE_ID,
				TEMPORARY,
				UNMODERATED,
				UNSECURED
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum MucEnterError {
				PASSWORD_REQUIRED,
				BANNED,
				ROOM_DOESNT_EXIST,
				CREATION_RESTRICTED,
				USE_RESERVED_ROOMNICK,
				NOT_IN_MEMBER_LIST,
				NICK_CONFLICT,
				OCCUPANT_LIMIT_REACHED
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum Role {
				NONE,
				MODERATOR,
				PARTICIPANT,
				VISITOR
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public enum StatusCode {
				JID_VISIBLE,
				AFFILIATION_CHANGED,
				SHOWS_UNAVIABLE_MEMBERS,
				SHOWS_UNAVIABLE_MEMBERS_NOT,
				CONFIG_CHANGE_NON_PRIVACY,
				SELF_PRESENCE,
				LOGGING_ENABLED,
				LOGGING_DISABLED,
				NON_ANONYMOUS,
				SEMI_ANONYMOUS,
				NEW_ROOM_CREATED,
				MODIFIED_NICK,
				BANNED,
				ROOM_NICKNAME,
				KICKED,
				REMOVED_AFFILIATION_CHANGE,
				REMOVED_MEMBERS_ONLY,
				REMOVED_SHUTDOWN
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const Xmpp.Xep.Muc.StatusCode[] ROOM_CONFIGURATION_CODES;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const Xmpp.Xep.Muc.StatusCode[] USER_REMOVED_CODES;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void add_muc_pm_message_stanza_x_node (Xmpp.MessageStanza message_stanza);
		}
		namespace MucSelfPing {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static async bool is_joined (Xmpp.XmppStream stream, Xmpp.Jid jid);
		}
		namespace Muji {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.Muji.Flag> IDENTITY;
				public Gee.HashMap<Xmpp.Jid,Xmpp.Xep.Muji.GroupCall> calls;
				public Flag ();
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class GroupCall {
				public Gee.HashMap<string,Gee.List<Xmpp.Xep.JingleRtp.PayloadType>> current_payload_intersection;
				public Xmpp.Jid muc_jid;
				public string our_nick;
				public Gee.ArrayList<Xmpp.Jid> peers;
				public Gee.ArrayList<Xmpp.Jid> peers_to_connect_to;
				public Gee.HashMap<Xmpp.Jid,Xmpp.Jid> real_jids;
				public Gee.HashMap<Gee.Promise,Gee.List<Xmpp.Jid>> waiting_for_finish_prepares;
				public GroupCall (Xmpp.Jid muc_jid);
				public void leave (Xmpp.XmppStream stream);
				public signal void codecs_changed (Gee.List<Xmpp.Xep.JingleRtp.PayloadType> payload_types);
				public signal void peer_joined (Xmpp.Jid real_jid);
				public signal void peer_left (Xmpp.Jid real_jid);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Muji.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public async Xmpp.Xep.Muji.GroupCall? join_call (Xmpp.XmppStream stream, Xmpp.Jid muc_jid, bool video);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace OccupantIds {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.OccupantIds.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public void parse_occupant_id_from_presence (Xmpp.XmppStream stream, Xmpp.Presence.Stanza presence);
				public signal void received_occupant_id (Xmpp.XmppStream stream, Xmpp.Jid jid, string occupant_id);
				public signal void received_own_occupant_id (Xmpp.XmppStream stream, Xmpp.Jid jid, string occupant_id);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_occupant_id (Xmpp.StanzaNode stanza);
		}
		namespace Omemo {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class EncryptState {
				public EncryptState ();
				public void add_result (Xmpp.Xep.Omemo.EncryptionResult enc_res, bool own);
				public string to_string ();
				public bool encrypted { get; set; }
				public int other_devices { get; set; }
				public int other_failure { get; set; }
				public int other_lost { get; set; }
				public int other_success { get; set; }
				public int other_unknown { get; set; }
				public int other_waiting_lists { get; set; }
				public int own_devices { get; set; }
				public int own_failure { get; set; }
				public bool own_list { get; set; }
				public int own_lost { get; set; }
				public int own_success { get; set; }
				public int own_unknown { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class EncryptionData {
				public uint8[] ciphertext;
				public uint8[] iv;
				public Gee.List<Xmpp.StanzaNode> key_nodes;
				public uint8[] keytag;
				public uint32 own_device_id;
				public EncryptionData (uint32 own_device_id);
				public void add_device_key (int device_id, uint8[] device_key, bool prekey);
				public Xmpp.StanzaNode get_encrypted_node ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class EncryptionResult {
				public EncryptionResult ();
				public int failure { get; set; }
				public int lost { get; set; }
				public int success { get; set; }
				public int unknown { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public abstract class OmemoDecryptor : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Omemo.OmemoDecryptor> IDENTITY;
				protected OmemoDecryptor ();
				public override void attach (Xmpp.XmppStream stream);
				public abstract string decrypt (uint8[] ciphertext, uint8[] key, uint8[] iv) throws GLib.Error;
				public abstract uint8[] decrypt_key (Xmpp.Xep.Omemo.ParsedData data, Xmpp.Jid from_jid) throws GLib.Error;
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public Xmpp.Xep.Omemo.ParsedData? parse_node (Xmpp.StanzaNode encrypted_node);
				public abstract uint32 own_device_id { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public abstract class OmemoEncryptor : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Omemo.OmemoEncryptor> IDENTITY;
				protected OmemoEncryptor ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public abstract void encrypt_key (Xmpp.Xep.Omemo.EncryptionData encryption_data, Xmpp.Jid jid, int32 device_id) throws GLib.Error;
				public abstract Xmpp.Xep.Omemo.EncryptionResult encrypt_key_to_recipient (Xmpp.XmppStream stream, Xmpp.Xep.Omemo.EncryptionData enc_data, Xmpp.Jid recipient) throws GLib.Error;
				public abstract Xmpp.Xep.Omemo.EncryptionData encrypt_plaintext (string plaintext) throws GLib.Error;
				public override string get_id ();
				public override string get_ns ();
				public abstract uint32 own_device_id { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ParsedData {
				public uint8[] ciphertext;
				public uchar[] encrypted_key;
				public bool is_prekey;
				public uint8[] iv;
				public Gee.HashMap<GLib.Bytes,bool> our_potential_encrypted_keys;
				public int sid;
				public ParsedData ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NODE_BUNDLES;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NODE_DEVICELIST;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NODE_VERIFICATION;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace OutOfBandData {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void add_url_to_message (Xmpp.MessageStanza message, string url, string? desc = null);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_url_from_message (Xmpp.MessageStanza message);
		}
		namespace Ping {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule, Xmpp.Iq.Handler {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Ping.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public async Xmpp.Iq.Stanza send_ping (Xmpp.XmppStream stream, Xmpp.Jid jid);
			}
		}
		namespace PrivateXmlStorage {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.PrivateXmlStorage.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public async Xmpp.StanzaNode? retrieve (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
				public async void store (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
			}
		}
		namespace Pubsub {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class DeleteListenerDelegate {
				public delegate void ResultFunc (Xmpp.XmppStream stream, Xmpp.Jid jid);
				public DeleteListenerDelegate (owned Xmpp.Xep.Pubsub.DeleteListenerDelegate.ResultFunc on_result);
				public Xmpp.Xep.Pubsub.DeleteListenerDelegate.ResultFunc on_result { get; private owned set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ItemListenerDelegate {
				public delegate void ResultFunc (Xmpp.XmppStream stream, Xmpp.Jid jid, string id, Xmpp.StanzaNode? node);
				public ItemListenerDelegate (owned Xmpp.Xep.Pubsub.ItemListenerDelegate.ResultFunc on_result);
				public Xmpp.Xep.Pubsub.ItemListenerDelegate.ResultFunc on_result { get; private owned set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public delegate void OnResult (Xmpp.XmppStream stream, Xmpp.Jid jid, string? id, Xmpp.StanzaNode? node);
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Pubsub.Module> IDENTITY;
				public Module ();
				public void add_filtered_notification (Xmpp.XmppStream stream, string node, owned Xmpp.Xep.Pubsub.ItemListenerDelegate.ResultFunc? item_listener, owned Xmpp.Xep.Pubsub.RetractListenerDelegate.ResultFunc? retract_listener, owned Xmpp.Xep.Pubsub.DeleteListenerDelegate.ResultFunc? delete_listener);
				public override void attach (Xmpp.XmppStream stream);
				public void delete_node (Xmpp.XmppStream stream, Xmpp.Jid? jid, string node_id);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public async bool publish (Xmpp.XmppStream stream, Xmpp.Jid? jid, string node_id, string? item_id, Xmpp.StanzaNode content, Xmpp.Xep.Pubsub.PublishOptions? publish_options = null, bool try_reconfiguring = true);
				public void remove_filtered_notification (Xmpp.XmppStream stream, string node);
				public void request (Xmpp.XmppStream stream, Xmpp.Jid jid, string node, owned Xmpp.Xep.Pubsub.Module.OnResult listener);
				public async Gee.List<Xmpp.StanzaNode>? request_all (Xmpp.XmppStream stream, Xmpp.Jid jid, string node);
				public async Xmpp.Xep.DataForms.DataForm? request_node_config (Xmpp.XmppStream stream, Xmpp.Jid? jid, string node_id);
				public async bool retract_item (Xmpp.XmppStream stream, Xmpp.Jid? jid, string node_id, string item_id);
				public async bool submit_node_config (Xmpp.XmppStream stream, Xmpp.Xep.DataForms.DataForm data_form, string node_id);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class PublishOptions {
				public Gee.HashMap<string,string> settings;
				public PublishOptions ();
				public Xmpp.Xep.Pubsub.PublishOptions set_access_model (string model);
				public Xmpp.Xep.Pubsub.PublishOptions set_max_items (string max);
				public Xmpp.Xep.Pubsub.PublishOptions set_persist_items (bool persist);
				public Xmpp.Xep.Pubsub.PublishOptions set_send_last_published_item (string send);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class RetractListenerDelegate {
				public delegate void ResultFunc (Xmpp.XmppStream stream, Xmpp.Jid jid, string id);
				public RetractListenerDelegate (owned Xmpp.Xep.Pubsub.RetractListenerDelegate.ResultFunc on_result);
				public Xmpp.Xep.Pubsub.RetractListenerDelegate.ResultFunc on_result { get; private owned set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string ACCESS_MODEL_AUTHORIZE;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string ACCESS_MODEL_OPEN;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string ACCESS_MODEL_PRESENCE;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string ACCESS_MODEL_ROSTER;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string ACCESS_MODEL_WHITELIST;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI_ERROR;
		}
		namespace Reactions {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Reactions.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public async void send_reaction (Xmpp.XmppStream stream, Xmpp.Jid jid, string stanza_type, string message_id, Gee.List<string> reactions) throws GLib.IOError;
				public signal void received_reactions (Xmpp.XmppStream stream, Xmpp.Jid from_jid, string message_id, Gee.List<string> reactions, Xmpp.MessageStanza stanza);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ReceivedPipelineListener : Xmpp.StanzaListener<Xmpp.MessageStanza> {
				public ReceivedPipelineListener ();
				public override async bool run (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
				public override string action_group { get; }
				public override string[] after_actions { get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace Replies {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ReplyTo {
				public ReplyTo (Xmpp.Jid to_jid, string to_message_id);
				public Xmpp.Jid to_jid { get; set; }
				public string to_message_id { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Xmpp.Xep.Replies.ReplyTo? get_reply_to (Xmpp.MessageStanza message);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void set_reply_to (Xmpp.MessageStanza message, Xmpp.Xep.Replies.ReplyTo reply_to);
		}
		namespace ServiceDiscovery {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.ServiceDiscovery.Flag> IDENTITY;
				public Flag ();
				public void add_own_feature (string feature);
				public void add_own_identity (Xmpp.Xep.ServiceDiscovery.Identity identity);
				public override string get_id ();
				public override string get_ns ();
				public void remove_own_feature (string feature);
				public void remove_own_identity (Xmpp.Xep.ServiceDiscovery.Identity identity);
				public Gee.List<string> own_features { owned get; }
				public Gee.Set<Xmpp.Xep.ServiceDiscovery.Identity> own_identities { owned get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Identity {
				public const string CATEGORY_CLIENT;
				public const string CATEGORY_CONFERENCE;
				public const string TYPE_PC;
				public const string TYPE_PHONE;
				public const string TYPE_TABLET;
				public Identity (string category, string type, string? name = null);
				public static bool equals_func (Xmpp.Xep.ServiceDiscovery.Identity a, Xmpp.Xep.ServiceDiscovery.Identity b);
				public static uint hash_func (Xmpp.Xep.ServiceDiscovery.Identity a);
				public string category { get; set; }
				public string? name { get; set; }
				public string type_ { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class InfoResult {
				public InfoResult (Xmpp.Iq.Stanza iq_request);
				public void add_feature (string feature);
				public void add_identity (Xmpp.Xep.ServiceDiscovery.Identity identity);
				public static Xmpp.Xep.ServiceDiscovery.InfoResult? create_from_iq (Xmpp.Iq.Stanza iq);
				public Gee.List<string> features { owned get; set; }
				public Gee.Set<Xmpp.Xep.ServiceDiscovery.Identity> identities { owned get; set; }
				public Xmpp.Iq.Stanza iq { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Item {
				public Xmpp.Jid jid;
				public string? name;
				public string? node;
				public Item (Xmpp.Jid jid, string? name = null, string? node = null);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class ItemsResult {
				public ItemsResult ();
				public static Xmpp.Xep.ServiceDiscovery.ItemsResult? create_from_iq (Xmpp.Iq.Stanza iq);
				public Xmpp.Iq.Stanza iq { get; private set; }
				public Gee.ArrayList<Xmpp.Xep.ServiceDiscovery.Item> items { owned get; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule, Xmpp.Iq.Handler {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.ServiceDiscovery.Module> IDENTITY;
				public Xmpp.Xep.ServiceDiscovery.CapsCache cache;
				public Xmpp.Xep.ServiceDiscovery.Identity own_identity;
				public Module ();
				public void add_feature (Xmpp.XmppStream stream, string feature);
				public void add_feature_notify (Xmpp.XmppStream stream, string feature);
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public async Gee.Set<Xmpp.Xep.ServiceDiscovery.Identity>? get_entity_identities (Xmpp.XmppStream stream, Xmpp.Jid jid);
				public override string get_id ();
				public override string get_ns ();
				public async bool has_entity_feature (Xmpp.XmppStream stream, Xmpp.Jid jid, string feature);
				public void remove_feature (Xmpp.XmppStream stream, string feature);
				public void remove_feature_notify (Xmpp.XmppStream stream, string feature);
				public async Xmpp.Xep.ServiceDiscovery.InfoResult? request_info (Xmpp.XmppStream stream, Xmpp.Jid jid);
				public async Xmpp.Xep.ServiceDiscovery.ItemsResult? request_items (Xmpp.XmppStream stream, Xmpp.Jid jid);
				public static void require (Xmpp.XmppStream stream);
				public Module.with_identity (string category, string type, string? name = null);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface CapsCache : GLib.Object {
				public abstract async Gee.Set<Xmpp.Xep.ServiceDiscovery.Identity> get_entity_identities (Xmpp.Jid jid);
				public abstract async bool has_entity_feature (Xmpp.Jid jid, string feature);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI_INFO;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI_ITEMS;
		}
		namespace Socks5Bytestreams {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.Socks5Bytestreams.Flag> IDENTITY;
				public Gee.List<Xmpp.Xep.Socks5Bytestreams.Proxy> proxies;
				public Flag ();
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule, Xmpp.Iq.Handler {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.Socks5Bytestreams.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public Gee.List<string> get_local_ip_addresses ();
				public override string get_ns ();
				public Gee.List<Xmpp.Xep.Socks5Bytestreams.Proxy> get_proxies (Xmpp.XmppStream stream);
				public void set_local_ip_address_handler (owned Xmpp.Xep.Socks5Bytestreams.GetLocalIpAddresses get_local_ip_addresses);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Proxy : GLib.Object {
				public Proxy (string host, Xmpp.Jid jid, int port);
				public string host { get; private set; }
				public Xmpp.Jid jid { get; private set; }
				public int port { get; private set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public delegate Gee.List<string> GetLocalIpAddresses ();
		}
		namespace StatelessFileSharing {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class FileShare : GLib.Object {
				public FileShare ();
				public string? id { get; set; }
				public Xmpp.Xep.FileMetadataElement.FileMetadata metadata { get; set; }
				public Gee.List<Xmpp.Xep.StatelessFileSharing.Source>? sources { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class HttpSource : GLib.Object, Xmpp.Xep.StatelessFileSharing.Source {
				public HttpSource ();
				public string url { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class SourceAttachment : GLib.Object {
				public SourceAttachment ();
				public Gee.List<Xmpp.Xep.StatelessFileSharing.Source>? sources { get; set; }
				public string? to_file_transfer_id { get; set; }
				public string to_message_id { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public interface Source : GLib.Object {
				public abstract bool equals (Xmpp.Xep.StatelessFileSharing.Source source);
				public static bool equals_func (Xmpp.Xep.StatelessFileSharing.Source s1, Xmpp.Xep.StatelessFileSharing.Source s2);
				public abstract Xmpp.StanzaNode to_stanza_node ();
				public abstract string type ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Gee.List<Xmpp.Xep.StatelessFileSharing.FileShare> get_file_shares (Xmpp.MessageStanza message);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static Gee.List<Xmpp.Xep.StatelessFileSharing.SourceAttachment>? get_source_attachments (Xmpp.MessageStanza message);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void set_sfs_attachment (Xmpp.MessageStanza message, string attach_to_id, string attach_to_file_id, Gee.List<Xmpp.Xep.StatelessFileSharing.Source> sources);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void set_sfs_element (Xmpp.MessageStanza message, string file_sharing_id, Xmpp.Xep.FileMetadataElement.FileMetadata metadata, Gee.List<Xmpp.Xep.StatelessFileSharing.Source>? sources);
		}
		namespace StreamManagement {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Flag : Xmpp.XmppStreamFlag {
				public static Xmpp.FlagIdentity<Xmpp.Xep.StreamManagement.Flag> IDENTITY;
				public bool finished;
				public bool resumed;
				public Flag ();
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamNegotiationModule, Xmpp.WriteNodeFunc {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.StreamManagement.Module> IDENTITY;
				public Gee.List<Xmpp.XmppStreamFlag> flags;
				public int h_inbound;
				public int h_outbound;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public override bool mandatory_outstanding (Xmpp.XmppStream stream);
				public override bool negotiation_active (Xmpp.XmppStream stream);
				public static void require (Xmpp.XmppStream stream);
				public string? session_id { get; set; }
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
		}
		namespace UniqueStableStanzaIDs {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.UniqueStableStanzaIDs.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public const string NS_URI;
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_origin_id (Xmpp.MessageStanza message);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static string? get_stanza_id (Xmpp.MessageStanza message, Xmpp.Jid by);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void set_origin_id (Xmpp.MessageStanza message, string origin_id);
		}
		namespace UserAvatars {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.UserAvatars.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public void on_pubsub_delete (Xmpp.XmppStream stream, Xmpp.Jid jid);
				public void on_pupsub_item (Xmpp.XmppStream stream, Xmpp.Jid jid, string hash, Xmpp.StanzaNode? node);
				public signal void avatar_removed (Xmpp.XmppStream stream, Xmpp.Jid jid);
				public signal void received_avatar_hash (Xmpp.XmppStream stream, Xmpp.Jid jid, string id);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static async GLib.Bytes? fetch_image (Xmpp.XmppStream stream, Xmpp.Jid jid, string hash);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void publish_png (Xmpp.XmppStream stream, uint8[] image, int width, int height);
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static void unset_avatar (Xmpp.XmppStream stream);
		}
		namespace VCard {
			[CCode (cheader_filename = "xmpp-vala.h")]
			public class Module : Xmpp.XmppStreamModule {
				public static Xmpp.ModuleIdentity<Xmpp.Xep.VCard.Module> IDENTITY;
				public Module ();
				public override void attach (Xmpp.XmppStream stream);
				public override void detach (Xmpp.XmppStream stream);
				public override string get_id ();
				public override string get_ns ();
				public signal void received_avatar_hash (Xmpp.XmppStream stream, Xmpp.Jid jid, string hash);
			}
			[CCode (cheader_filename = "xmpp-vala.h")]
			public static async GLib.Bytes? fetch_image (Xmpp.XmppStream stream, Xmpp.Jid jid, string hash);
		}
		[CCode (cheader_filename = "xmpp-vala.h")]
		public interface PixbufStorage : GLib.Object {
			public abstract async Gdk.Pixbuf? get_image (string id);
			public abstract bool has_image (string id);
			public abstract void store (string id, GLib.Bytes data);
		}
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class Conference : GLib.Object {
		public Conference ();
		public bool equals (Xmpp.Conference c);
		public static bool equals_func (Xmpp.Conference a, Xmpp.Conference b);
		public static uint hash_func (Xmpp.Conference a);
		public virtual bool autojoin { get; set; }
		public virtual Xmpp.Jid? jid { get; set; }
		public virtual string? name { get; set; }
		public virtual string? nick { get; set; }
		public virtual string? password { get; set; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class DirectTlsXmppStream : Xmpp.TlsXmppStream {
		public DirectTlsXmppStream (Xmpp.Jid remote_name, string host, uint16 port, Xmpp.TlsXmppStream.OnInvalidCertWrapper on_invalid_cert);
		public override async void connect () throws GLib.IOError;
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class ErrorStanza {
		public Xmpp.StanzaNode error_node;
		public const string CONDITION_BAD_REQUEST;
		public const string CONDITION_CONFLICT;
		public const string CONDITION_FEATURE_NOT_IMPLEMENTED;
		public const string CONDITION_FORBIDDEN;
		public const string CONDITION_GONE;
		public const string CONDITION_INTERNAL_SERVER_ERROR;
		public const string CONDITION_ITEM_NOT_FOUND;
		public const string CONDITION_JID_MALFORMED;
		public const string CONDITION_NOT_ACCEPTABLE;
		public const string CONDITION_NOT_ALLOWED;
		public const string CONDITION_NOT_AUTHORIZED;
		public const string CONDITION_POLICY_VIOLATION;
		public const string CONDITION_RECIPIENT_UNAVAILABLE;
		public const string CONDITION_REDIRECT;
		public const string CONDITION_REGISTRATION_REQUIRED;
		public const string CONDITION_REMOTE_SERVER_NOT_FOUND;
		public const string CONDITION_REMOTE_SERVER_TIMEOUT;
		public const string CONDITION_RESOURCE_CONSTRAINT;
		public const string CONDITION_SERVICE_UNAVAILABLE;
		public const string CONDITION_SUBSCRIPTION_REQUIRED;
		public const string CONDITION_UNDEFINED_CONDITION;
		public const string CONDITION_UNEXPECTED_REQUEST;
		public const string TYPE_AUTH;
		public const string TYPE_CANCEL;
		public const string TYPE_CONTINUE;
		public const string TYPE_MODIFY;
		public const string TYPE_WAIT;
		public ErrorStanza ();
		public ErrorStanza.bad_request (string? human_readable = null);
		public ErrorStanza.build (string type, string condition, string? human_readable, Xmpp.StanzaNode? application_condition);
		public ErrorStanza.feature_not_implemented (string? human_readable = null);
		public static Xmpp.ErrorStanza? from_stanza (Xmpp.StanzaNode stanza);
		public ErrorStanza.item_not_found (Xmpp.StanzaNode? application_condition = null);
		public ErrorStanza.not_acceptable (string? human_readable = null);
		public ErrorStanza.not_allowed (string? human_readable = null);
		public ErrorStanza.resource_constraint (string? human_readable = null);
		public ErrorStanza.service_unavailable ();
		public string? by { get; }
		public string condition { get; }
		public string? text { get; }
		public string type_ { get; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class FlagIdentity<T> : GLib.Object {
		public FlagIdentity (string ns, string id);
		public T cast (Xmpp.XmppStreamFlag flag);
		public bool matches (Xmpp.XmppStreamFlag module);
		public string id { get; private set; }
		public string ns { get; private set; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class IoXmppStream : Xmpp.XmppStream {
		protected IoXmppStream (Xmpp.Jid remote_name, GLib.Cancellable? cancellable = null);
		public void cancel ();
		public override async void disconnect () throws GLib.IOError;
		public override async Xmpp.StanzaNode read () throws GLib.IOError;
		public void reset_stream (GLib.IOStream stream);
		public override async void setup () throws GLib.IOError;
		[Version (deprecated = true, deprecated_since = "0.1", replacement = "write_async")]
		public override void write (Xmpp.StanzaNode node, int io_priority = GLib.Priority.DEFAULT);
		public override async void write_async (Xmpp.StanzaNode node, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class Jid {
		public string domainpart;
		public string? localpart;
		public string? resourcepart;
		public Jid (string jid) throws Xmpp.InvalidJidError;
		public Jid.components (string? localpart, string domainpart, string? resourcepart) throws Xmpp.InvalidJidError;
		public bool equals (Xmpp.Jid? jid);
		public bool equals_bare (Xmpp.Jid? jid);
		public new static bool equals_bare_func (Xmpp.Jid jid1, Xmpp.Jid jid2);
		public static bool equals_func (Xmpp.Jid jid1, Xmpp.Jid jid2);
		public new static uint hash_bare_func (Xmpp.Jid jid);
		public new static uint hash_func (Xmpp.Jid jid);
		public bool is_bare ();
		public bool is_domain ();
		public bool is_full ();
		public string to_string ();
		public Xmpp.Jid with_resource (string? resourcepart) throws Xmpp.InvalidJidError;
		public Xmpp.Jid bare_jid { owned get; }
		public Xmpp.Jid domain_jid { owned get; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class ListenerHolder : GLib.Object {
		protected Gee.ArrayList<Xmpp.OrderedListener> listeners;
		protected ListenerHolder ();
		public new void connect (Xmpp.OrderedListener listener);
		public new void disconnect (Xmpp.OrderedListener listener);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class MessageFlag : GLib.Object {
		protected MessageFlag ();
		public abstract string get_id ();
		public abstract string get_ns ();
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class MessageModule : Xmpp.XmppStreamModule {
		public static Xmpp.ModuleIdentity<Xmpp.MessageModule> IDENTITY;
		public Xmpp.StanzaListenerHolder<Xmpp.MessageStanza> received_pipeline;
		public Xmpp.StanzaListenerHolder<Xmpp.MessageStanza> send_pipeline;
		public MessageModule ();
		public override void attach (Xmpp.XmppStream stream);
		public override void detach (Xmpp.XmppStream stream);
		public override string get_id ();
		public override string get_ns ();
		public async void received_message_stanza_async (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
		public async void send_message (Xmpp.XmppStream stream, Xmpp.MessageStanza message) throws GLib.IOError;
		public signal void received_error (Xmpp.XmppStream stream, Xmpp.MessageStanza message, Xmpp.ErrorStanza error);
		public signal void received_message (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
		public signal void received_message_unprocessed (Xmpp.XmppStream stream, Xmpp.MessageStanza message);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class MessageStanza : Xmpp.Stanza {
		public bool rerun_parsing;
		public const string NODE_BODY;
		public const string NODE_SUBJECT;
		public const string NODE_THREAD;
		public const string TYPE_CHAT;
		public const string TYPE_GROUPCHAT;
		public const string TYPE_HEADLINE;
		public const string TYPE_NORMAL;
		public MessageStanza (string? id = null);
		public void add_flag (Xmpp.MessageFlag flag);
		public MessageStanza.from_stanza (Xmpp.StanzaNode stanza_node, Xmpp.Jid my_jid);
		public Xmpp.MessageFlag? get_flag (string ns, string id);
		public string? body { get; set; }
		public override string? type_ { get; set; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class ModuleIdentity<T> : GLib.Object {
		public ModuleIdentity (string ns, string id);
		public T cast (Xmpp.XmppStreamModule module);
		public bool matches (Xmpp.XmppStreamModule module);
		public string id { get; private set; }
		public string ns { get; private set; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class NamespaceState {
		public string current_ns_uri;
		public NamespaceState ();
		public void add_assoc (string ns_uri, string name);
		public string find_name (string ns_uri) throws GLib.IOError;
		public string find_uri (string name) throws GLib.IOError;
		public NamespaceState.for_stanza ();
		public Xmpp.NamespaceState pop ();
		public Xmpp.NamespaceState push ();
		public void set_current (string current_ns_uri);
		public string to_string ();
		public NamespaceState.with_assoc (Xmpp.NamespaceState old, string ns_uri, string name);
		public NamespaceState.with_current (Xmpp.NamespaceState old, string current_ns_uri);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class OrderedListener : GLib.Object {
		protected OrderedListener ();
		public abstract string action_group { get; }
		public abstract string[] after_actions { get; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class SourceFuncWrapper : GLib.Object {
		public GLib.SourceFunc sfun;
		public SourceFuncWrapper (owned GLib.SourceFunc sfun);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class Stanza : GLib.Object {
		public Xmpp.StanzaNode stanza;
		public const string ATTRIBUTE_FROM;
		public const string ATTRIBUTE_ID;
		public const string ATTRIBUTE_TO;
		public const string ATTRIBUTE_TYPE;
		public const string TYPE_ERROR;
		public Stanza ();
		public Xmpp.ErrorStanza? get_error ();
		public Stanza.incoming (Xmpp.StanzaNode stanza, Xmpp.Jid? my_jid);
		public bool is_error ();
		public Stanza.outgoing (Xmpp.StanzaNode stanza);
		public virtual Xmpp.Jid? from { owned get; set; }
		public virtual string? id { get; set; }
		public virtual Xmpp.Jid? to { owned get; set; }
		public virtual string? type_ { get; set; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class StanzaAttribute : Xmpp.StanzaEntry {
		public StanzaAttribute.build (string ns_uri, string name, string val);
		public bool equals (Xmpp.StanzaAttribute other);
		public string to_ansi_string (bool hide_ns = false);
		public string to_ansi_xml (Xmpp.NamespaceState? state_ = null);
		public override string to_string (int i = 0);
		public string to_xml (Xmpp.NamespaceState? state_ = null);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class StanzaEntry {
		public string name;
		public string? ns_uri;
		public string? val;
		protected const string ANSI_COLOR_END;
		protected const string ANSI_COLOR_GRAY;
		protected const string ANSI_COLOR_GREEN;
		protected const string ANSI_COLOR_YELLOW;
		protected StanzaEntry ();
		public virtual unowned string? get_string_content ();
		public virtual string to_string (int i = 0);
		public string? encoded_val { owned get; set; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class StanzaListener<T> : Xmpp.OrderedListener {
		protected StanzaListener ();
		public abstract async bool run (Xmpp.XmppStream stream, T stanza);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class StanzaListenerHolder<T> : Xmpp.ListenerHolder {
		public StanzaListenerHolder ();
		public async bool run (Xmpp.XmppStream stream, T stanza);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class StanzaNode : Xmpp.StanzaEntry {
		public Gee.List<Xmpp.StanzaAttribute> attributes;
		public bool has_nodes;
		public bool pseudo;
		public Gee.List<Xmpp.StanzaNode> sub_nodes;
		public void add_attribute (Xmpp.StanzaAttribute attr);
		public Xmpp.StanzaNode add_self_xmlns ();
		public StanzaNode.build (string name, string ns_uri = "jabber:client", Gee.ArrayList<Xmpp.StanzaNode>? nodes = null, Gee.ArrayList<Xmpp.StanzaAttribute>? attrs = null);
		public StanzaNode.encoded_text (string text);
		public bool equals (Xmpp.StanzaNode other);
		public Gee.List<Xmpp.StanzaNode> get_all_subnodes ();
		public unowned string? get_attribute (string name, string? ns_uri = null);
		public bool get_attribute_bool (string name, bool def = false, string? ns_uri = null);
		public int get_attribute_int (string name, int def = -1, string? ns_uri = null);
		public Xmpp.StanzaAttribute? get_attribute_raw (string name, string? ns_uri = null);
		public uint get_attribute_uint (string name, uint def = 0, string? ns_uri = null);
		public Gee.List<Xmpp.StanzaAttribute> get_attributes_by_ns_uri (string ns_uri);
		public Gee.List<Xmpp.StanzaNode> get_deep_all_subnodes (...);
		public unowned string? get_deep_attribute (...);
		public Xmpp.StanzaAttribute? get_deep_attribute_ (va_list l);
		public unowned string? get_deep_string_content (...);
		public Xmpp.StanzaNode? get_deep_subnode (...);
		public Xmpp.StanzaNode? get_deep_subnode_ (va_list l);
		public Gee.List<Xmpp.StanzaNode> get_deep_subnodes (...);
		public Gee.List<Xmpp.StanzaNode> get_deep_subnodes_ (va_list l);
		public override unowned string? get_string_content ();
		public Xmpp.StanzaNode? get_subnode (string name, string? ns_uri = null, bool recurse = false);
		public Gee.List<Xmpp.StanzaNode> get_subnodes (string name, string? ns_uri = null, bool recurse = false);
		public Xmpp.StanzaNode put_attribute (string name, string val, string? ns_uri = null);
		public Xmpp.StanzaNode put_node (Xmpp.StanzaNode node);
		public void set_attribute (string name, string val, string? ns_uri = null);
		public StanzaNode.text (string text);
		public string to_ansi_string (bool hide_ns = false, int i = 0);
		public override string to_string (int i = 0);
		public string to_xml (Xmpp.NamespaceState? state = null) throws GLib.IOError;
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class StanzaReader {
		public StanzaReader ();
		public StanzaReader.for_buffer (uint8[] buffer);
		public StanzaReader.for_stream (GLib.InputStream input, GLib.Cancellable? cancellable = null);
		public StanzaReader.for_string (string s);
		public async Xmpp.StanzaNode read_node () throws GLib.IOError;
		public async Xmpp.StanzaNode read_node_start () throws GLib.IOError;
		public async Xmpp.StanzaNode read_root_node () throws GLib.IOError;
		public async Xmpp.StanzaNode read_stanza_node () throws GLib.IOError;
		public async Xmpp.StanzaNode read_text_node () throws GLib.IOError;
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class StanzaWriter {
		public StanzaWriter ();
		public StanzaWriter.for_stream (GLib.OutputStream output, GLib.Cancellable? cancellable = null);
		public async void write (string s, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
		public async void write_node (Xmpp.StanzaNode node, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
		public async void write_nodes (Xmpp.StanzaNode node1, Xmpp.StanzaNode node2, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class StartTlsXmppStream : Xmpp.TlsXmppStream {
		public StartTlsXmppStream (Xmpp.Jid remote, string host, uint16 port, Xmpp.TlsXmppStream.OnInvalidCertWrapper on_invalid_cert);
		public override async void connect () throws GLib.IOError;
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class TlsXmppStream : Xmpp.IoXmppStream {
		public class OnInvalidCertWrapper {
			public Xmpp.TlsXmppStream.OnInvalidCert func;
			public OnInvalidCertWrapper (owned Xmpp.TlsXmppStream.OnInvalidCert func);
		}
		public delegate bool OnInvalidCert (GLib.TlsCertificate peer_cert, GLib.TlsCertificateFlags errors);
		public GLib.TlsCertificateFlags? errors;
		protected TlsXmppStream (Xmpp.Jid remote_name);
		protected bool on_invalid_certificate (GLib.TlsCertificate peer_cert, GLib.TlsCertificateFlags errors);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class XmppLog {
		protected const string ANSI_COLOR_END;
		protected const string ANSI_COLOR_WHITE;
		public XmppLog (string? ident = null, string? desc = null);
		public void node (string what, Xmpp.StanzaNode node, Xmpp.XmppStream stream);
		public virtual bool should_log_node (Xmpp.StanzaNode node);
		public virtual bool should_log_str (string str);
		public void str (string what, string str, Xmpp.XmppStream stream);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class XmppStream : GLib.Object {
		protected bool disconnected;
		public Xmpp.XmppLog log;
		protected bool non_negotiation_modules_attached;
		public Xmpp.Jid remote_name;
		protected bool setup_needed;
		public const string NS_URI;
		protected XmppStream (Xmpp.Jid remote_name);
		public void add_flag (Xmpp.XmppStreamFlag flag);
		public Xmpp.XmppStream add_module (Xmpp.XmppStreamModule module);
		public void attach_negotation_modules ();
		public new abstract async void connect () throws GLib.IOError;
		public void detach_modules ();
		public new abstract async void disconnect () throws GLib.IOError;
		public T get_flag<T> (Xmpp.FlagIdentity<T>? identity);
		public T get_module<T> (Xmpp.ModuleIdentity<T>? identity);
		public bool has_flag<T> (Xmpp.FlagIdentity<T>? identity);
		public bool is_negotiation_active ();
		public bool is_setup_needed ();
		public async void loop () throws GLib.IOError;
		public abstract async Xmpp.StanzaNode read () throws GLib.IOError;
		public void remove_flag (Xmpp.XmppStreamFlag flag);
		public void require_setup ();
		public abstract async void setup () throws GLib.IOError;
		[Version (deprecated = true, deprecated_since = "0.1", replacement = "write_async")]
		public abstract void write (Xmpp.StanzaNode node, int io_priority = GLib.Priority.DEFAULT);
		public abstract async void write_async (Xmpp.StanzaNode node, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
		public Xmpp.StanzaNode? features { get; private set; }
		public Gee.List<Xmpp.XmppStreamFlag> flags { get; private set; }
		public Gee.List<Xmpp.XmppStreamModule> modules { get; private set; }
		public bool negotiation_complete { get; set; }
		public signal void attached_modules (Xmpp.XmppStream stream);
		public signal void received_features_node (Xmpp.XmppStream stream);
		public signal void received_iq_stanza (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
		public signal void received_message_stanza (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
		public signal void received_node (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
		public signal void received_nonza (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
		public signal void received_presence_stanza (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
		public signal void received_root_node (Xmpp.XmppStream stream, Xmpp.StanzaNode node);
		public signal void stream_negotiated (Xmpp.XmppStream stream);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class XmppStreamFlag : GLib.Object {
		protected XmppStreamFlag ();
		public abstract string get_id ();
		public abstract string get_ns ();
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class XmppStreamModule : GLib.Object {
		protected XmppStreamModule ();
		public abstract void attach (Xmpp.XmppStream stream);
		public abstract void detach (Xmpp.XmppStream stream);
		public abstract string get_id ();
		public abstract string get_ns ();
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public abstract class XmppStreamNegotiationModule : Xmpp.XmppStreamModule {
		protected XmppStreamNegotiationModule ();
		public abstract bool mandatory_outstanding (Xmpp.XmppStream stream);
		public abstract bool negotiation_active (Xmpp.XmppStream stream);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public class XmppStreamResult {
		public XmppStreamResult ();
		public GLib.IOError? io_error { get; set; }
		public Xmpp.TlsXmppStream? stream { get; set; }
		public GLib.TlsCertificateFlags? tls_errors { get; set; }
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public interface BookmarksProvider : GLib.Object {
		public abstract async void add_conference (Xmpp.XmppStream stream, Xmpp.Conference conference);
		public abstract async Gee.Set<Xmpp.Conference>? get_conferences (Xmpp.XmppStream stream);
		public abstract async void remove_conference (Xmpp.XmppStream stream, Xmpp.Conference conference);
		public abstract async void replace_conference (Xmpp.XmppStream stream, Xmpp.Jid muc_jid, Xmpp.Conference modified_conference);
		public signal void conference_added (Xmpp.XmppStream stream, Xmpp.Conference conferences);
		public signal void conference_changed (Xmpp.XmppStream stream, Xmpp.Conference conferences);
		public signal void conference_removed (Xmpp.XmppStream stream, Xmpp.Jid jid);
		public signal void received_conferences (Xmpp.XmppStream stream, Gee.Set<Xmpp.Conference> conferences);
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public interface WriteNodeFunc : GLib.Object {
		public abstract async void write_stanza (Xmpp.XmppStream stream, Xmpp.StanzaNode node, int io_priority = GLib.Priority.DEFAULT, GLib.Cancellable? cancellable = null) throws GLib.IOError;
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public errordomain InvalidJidError {
		EMPTY_DOMAIN,
		EMPTY_RESOURCE,
		EMPTY_LOCAL,
		INVALID_CHAR,
		UNKNOWN
	}
	[CCode (cheader_filename = "xmpp-vala.h")]
	public const string JABBER_URI;
	[CCode (cheader_filename = "xmpp-vala.h")]
	public const string XMLNS_URI;
	[CCode (cheader_filename = "xmpp-vala.h")]
	public const string XML_URI;
	[CCode (cheader_filename = "xmpp-vala.h")]
	public static async Xmpp.XmppStreamResult establish_stream (Xmpp.Jid bare_jid, Gee.List<Xmpp.XmppStreamModule> modules, string? log_options, owned Xmpp.TlsXmppStream.OnInvalidCert on_invalid_cert);
	[CCode (cheader_filename = "xmpp-vala.h")]
	public static string random_uuid ();
}
namespace Hsluv {
}
