/* libsocialweb-client.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "Sw", gir_namespace = "SocialWebClient", gir_version = "0.25", lower_case_cprefix = "sw_")]
namespace SocialWebClient {
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", type_id = "sw_client_get_type ()")]
	public class Client : GLib.Object {
		[CCode (has_construct_function = false)]
		public Client ();
		public SocialWebClient.ClientService get_service (string service_name);
		public void get_services (SocialWebClient.ClientGetServicesCallback cb);
		public void is_online (SocialWebClient.ClientIsOnlineCallback cb);
		public signal void online_changed (bool object);
	}
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", type_id = "sw_client_contact_view_get_type ()")]
	public class ClientContactView : GLib.Object {
		[CCode (has_construct_function = false)]
		protected ClientContactView ();
		public void close ();
		public void refresh ();
		public void start ();
		public void stop ();
		[NoAccessorMethod]
		public string object_path { owned get; construct; }
		public signal void contacts_added (GLib.List<SocialWebClient.Contact> contacts);
		public signal void contacts_changed (GLib.List<SocialWebClient.Contact> contacts);
		public signal void contacts_removed (GLib.List<SocialWebClient.Contact> contacts);
	}
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", type_id = "sw_client_item_view_get_type ()")]
	public class ClientItemView : GLib.Object {
		[CCode (has_construct_function = false)]
		protected ClientItemView ();
		public void close ();
		public void refresh ();
		public void start ();
		public void stop ();
		[NoAccessorMethod]
		public string object_path { owned get; construct; }
		public signal void items_added (GLib.List<SocialWebClient.Item> items);
		public signal void items_changed (GLib.List<SocialWebClient.Item> items);
		public signal void items_removed (GLib.List<SocialWebClient.Item> items);
	}
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", type_id = "sw_client_lastfm_get_type ()")]
	public class ClientLastfm : GLib.Object {
		[CCode (has_construct_function = false)]
		public ClientLastfm ();
		public void now_playing (string artist, string album, string track, uint32 length, uint32 tracknumber, string musicbrainz_id);
		public void submit_track (string artist, string album, string track, uint64 time, string source, string rating, uint32 length, uint32 tracknumber, string musicbrainz_id);
	}
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", type_id = "sw_client_service_get_type ()")]
	public class ClientService : GLib.Object {
		[CCode (has_construct_function = false)]
		protected ClientService ();
		public void banishable_hide_item (string uid);
		public void contacts_query_open_view (string query, GLib.HashTable<string,string> @params, SocialWebClient.ClientServiceContactsQueryOpenViewCallback cb);
		public void credentials_updated ();
		public unowned string get_display_name ();
		public void get_dynamic_capabilities (SocialWebClient.ClientServiceGetCapabilitiesCallback cb);
		public unowned string get_name ();
		public void get_static_capabilities (SocialWebClient.ClientServiceGetCapabilitiesCallback cb);
		public static bool has_cap ([CCode (array_length = false, array_null_terminated = true)] string[] caps, string cap);
		public void query_open_view (string query, GLib.HashTable<string,string> @params, SocialWebClient.ClientServiceQueryOpenViewCallback cb);
		public void request_avatar ();
		public void update_status ([CCode (delegate_target_pos = 2.1)] SocialWebClient.ClientServiceUpdateStatusCallback cb, string status_msg);
		public void update_status_with_fields ([CCode (delegate_target_pos = 3.1)] SocialWebClient.ClientServiceUpdateStatusCallback cb, string status_msg, GLib.HashTable<string,string> fields);
		public bool upload_photo_finish (GLib.AsyncResult res) throws GLib.Error;
		public bool upload_video_finish (GLib.AsyncResult res) throws GLib.Error;
		public virtual signal void avatar_retrieved (string path);
		public virtual signal void capabilities_changed ([CCode (array_length = false, array_null_terminated = true)] string[] caps);
		public virtual signal void status_updated (bool success);
		public virtual signal void user_changed ();
	}
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "sw_contact_get_type ()")]
	[Compact]
	public class Contact {
		public GLib.TimeVal date;
		public weak GLib.HashTable<string,string> props;
		public int refcount;
		public weak string service;
		public weak string uuid;
		[CCode (has_construct_function = false)]
		public Contact ();
		public void free ();
		public unowned string get_value (string key);
		[CCode (array_length = false, array_null_terminated = true)]
		public unowned string[] get_value_all (string key);
		public bool has_key (string key);
		public bool is_from_cache ();
		public SocialWebClient.Contact @ref ();
		public void unref ();
	}
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "sw_item_get_type ()")]
	[Compact]
	public class Item {
		public GLib.TimeVal date;
		public weak GLib.HashTable<string,string> props;
		public int refcount;
		public weak string service;
		public weak string uuid;
		[CCode (has_construct_function = false)]
		public Item ();
		public void free ();
		public unowned string get_value (string key);
		public bool has_key (string key);
		public bool is_from_cache ();
		public SocialWebClient.Item @ref ();
		public void unref ();
	}
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", instance_pos = 2.9)]
	public delegate void ClientGetServicesCallback (SocialWebClient.Client client, GLib.List<string> services);
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", instance_pos = 2.9)]
	public delegate void ClientIsOnlineCallback (SocialWebClient.Client client, bool online);
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", instance_pos = 2.9)]
	public delegate void ClientServiceContactsQueryOpenViewCallback (SocialWebClient.ClientService query, SocialWebClient.ClientContactView? contact_view);
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", instance_pos = 3.9)]
	public delegate void ClientServiceGetCapabilitiesCallback (SocialWebClient.ClientService service, [CCode (array_length = false, array_null_terminated = true)] string[] caps, GLib.Error error);
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", instance_pos = 2.9)]
	public delegate void ClientServiceQueryOpenViewCallback (SocialWebClient.ClientService query, SocialWebClient.ClientItemView? item_view);
	[CCode (cheader_filename = "libsocialweb-client/libsocialweb-client-hack-for-vala.h", instance_pos = 2.9)]
	public delegate void ClientServiceUpdateStatusCallback (SocialWebClient.ClientService service, GLib.Error error);
}
