/* folks-dummy.h generated by valac 0.48.10, the Vala compiler, do not modify */

#ifndef __BACKENDS_DUMMY_LIB_FOLKS_FOLKS_DUMMY_H__
#define __BACKENDS_DUMMY_LIB_FOLKS_FOLKS_DUMMY_H__

#include "folks/folks.h"
#include <glib-object.h>
#include <gio/gio.h>
#include <gee.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>

G_BEGIN_DECLS

#define FOLKS_DUMMY_TYPE_BACKEND (folks_dummy_backend_get_type ())
#define FOLKS_DUMMY_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_DUMMY_TYPE_BACKEND, FolksDummyBackend))
#define FOLKS_DUMMY_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_DUMMY_TYPE_BACKEND, FolksDummyBackendClass))
#define FOLKS_DUMMY_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_DUMMY_TYPE_BACKEND))
#define FOLKS_DUMMY_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_DUMMY_TYPE_BACKEND))
#define FOLKS_DUMMY_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_DUMMY_TYPE_BACKEND, FolksDummyBackendClass))

typedef struct _FolksDummyBackend FolksDummyBackend;
typedef struct _FolksDummyBackendClass FolksDummyBackendClass;
typedef struct _FolksDummyBackendPrivate FolksDummyBackendPrivate;

#define FOLKS_DUMMY_TYPE_PERSONA_STORE (folks_dummy_persona_store_get_type ())
#define FOLKS_DUMMY_PERSONA_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_DUMMY_TYPE_PERSONA_STORE, FolksDummyPersonaStore))
#define FOLKS_DUMMY_PERSONA_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_DUMMY_TYPE_PERSONA_STORE, FolksDummyPersonaStoreClass))
#define FOLKS_DUMMY_IS_PERSONA_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_DUMMY_TYPE_PERSONA_STORE))
#define FOLKS_DUMMY_IS_PERSONA_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_DUMMY_TYPE_PERSONA_STORE))
#define FOLKS_DUMMY_PERSONA_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_DUMMY_TYPE_PERSONA_STORE, FolksDummyPersonaStoreClass))

typedef struct _FolksDummyPersonaStore FolksDummyPersonaStore;
typedef struct _FolksDummyPersonaStoreClass FolksDummyPersonaStoreClass;

#define FOLKS_DUMMY_TYPE_PERSONA (folks_dummy_persona_get_type ())
#define FOLKS_DUMMY_PERSONA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_DUMMY_TYPE_PERSONA, FolksDummyPersona))
#define FOLKS_DUMMY_PERSONA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_DUMMY_TYPE_PERSONA, FolksDummyPersonaClass))
#define FOLKS_DUMMY_IS_PERSONA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_DUMMY_TYPE_PERSONA))
#define FOLKS_DUMMY_IS_PERSONA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_DUMMY_TYPE_PERSONA))
#define FOLKS_DUMMY_PERSONA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_DUMMY_TYPE_PERSONA, FolksDummyPersonaClass))

typedef struct _FolksDummyPersona FolksDummyPersona;
typedef struct _FolksDummyPersonaClass FolksDummyPersonaClass;
typedef struct _FolksDummyPersonaPrivate FolksDummyPersonaPrivate;

#define FOLKS_DUMMY_TYPE_FULL_PERSONA (folks_dummy_full_persona_get_type ())
#define FOLKS_DUMMY_FULL_PERSONA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_DUMMY_TYPE_FULL_PERSONA, FolksDummyFullPersona))
#define FOLKS_DUMMY_FULL_PERSONA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_DUMMY_TYPE_FULL_PERSONA, FolksDummyFullPersonaClass))
#define FOLKS_DUMMY_IS_FULL_PERSONA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_DUMMY_TYPE_FULL_PERSONA))
#define FOLKS_DUMMY_IS_FULL_PERSONA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_DUMMY_TYPE_FULL_PERSONA))
#define FOLKS_DUMMY_FULL_PERSONA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_DUMMY_TYPE_FULL_PERSONA, FolksDummyFullPersonaClass))

typedef struct _FolksDummyFullPersona FolksDummyFullPersona;
typedef struct _FolksDummyFullPersonaClass FolksDummyFullPersonaClass;
typedef struct _FolksDummyFullPersonaPrivate FolksDummyFullPersonaPrivate;
typedef struct _FolksDummyPersonaStorePrivate FolksDummyPersonaStorePrivate;
typedef gint (*FolksDummyPersonaStoreAddPersonaFromDetailsMock) (FolksDummyPersona* persona, gpointer user_data, GError** error);
typedef gint (*FolksDummyPersonaStoreRemovePersonaMock) (FolksDummyPersona* persona, gpointer user_data, GError** error);
typedef gint (*FolksDummyPersonaStorePrepareMock) (gpointer user_data, GError** error);
typedef void (*FolksDummyPersonaChangePropertyCallback) (gpointer user_data);

struct _FolksDummyBackend {
	FolksBackend parent_instance;
	FolksDummyBackendPrivate * priv;
};

struct _FolksDummyBackendClass {
	FolksBackendClass parent_class;
};

struct _FolksDummyPersona {
	FolksPersona parent_instance;
	FolksDummyPersonaPrivate * priv;
};

struct _FolksDummyPersonaClass {
	FolksPersonaClass parent_class;
};

struct _FolksDummyFullPersona {
	FolksDummyPersona parent_instance;
	FolksDummyFullPersonaPrivate * priv;
};

struct _FolksDummyFullPersonaClass {
	FolksDummyPersonaClass parent_class;
};

struct _FolksDummyPersonaStore {
	FolksPersonaStore parent_instance;
	FolksDummyPersonaStorePrivate * priv;
};

struct _FolksDummyPersonaStoreClass {
	FolksPersonaStoreClass parent_class;
};

GType folks_dummy_backend_get_type (void) G_GNUC_CONST;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FolksDummyBackend, g_object_unref)
FolksDummyBackend* folks_dummy_backend_new (void);
FolksDummyBackend* folks_dummy_backend_construct (GType object_type);
GType folks_dummy_persona_store_get_type (void) G_GNUC_CONST;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FolksDummyPersonaStore, g_object_unref)
void folks_dummy_backend_register_persona_stores (FolksDummyBackend* self,
                                                  GeeSet* stores,
                                                  gboolean enable_stores);
void folks_dummy_backend_unregister_persona_stores (FolksDummyBackend* self,
                                                    GeeSet* stores);
GType folks_dummy_persona_get_type (void) G_GNUC_CONST;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FolksDummyPersona, g_object_unref)
GType folks_dummy_full_persona_get_type (void) G_GNUC_CONST;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FolksDummyFullPersona, g_object_unref)
FolksDummyFullPersona* folks_dummy_full_persona_new (FolksDummyPersonaStore* store,
                                                     const gchar* contact_id,
                                                     gboolean is_user,
                                                     gchar** linkable_properties,
                                                     gint linkable_properties_length1);
FolksDummyFullPersona* folks_dummy_full_persona_construct (GType object_type,
                                                           FolksDummyPersonaStore* store,
                                                           const gchar* contact_id,
                                                           gboolean is_user,
                                                           gchar** linkable_properties,
                                                           gint linkable_properties_length1);
void folks_dummy_full_persona_update_gender (FolksDummyFullPersona* self,
                                             FolksGender gender);
void folks_dummy_full_persona_update_calendar_event_id (FolksDummyFullPersona* self,
                                                        const gchar* calendar_event_id);
void folks_dummy_full_persona_update_birthday (FolksDummyFullPersona* self,
                                               GDateTime* birthday);
void folks_dummy_full_persona_update_roles (FolksDummyFullPersona* self,
                                            GeeSet* roles);
void folks_dummy_full_persona_update_groups (FolksDummyFullPersona* self,
                                             GeeSet* groups);
void folks_dummy_full_persona_update_web_service_addresses (FolksDummyFullPersona* self,
                                                            GeeMultiMap* web_service_addresses);
void folks_dummy_full_persona_update_email_addresses (FolksDummyFullPersona* self,
                                                      GeeSet* email_addresses);
void folks_dummy_full_persona_update_notes (FolksDummyFullPersona* self,
                                            GeeSet* notes);
void folks_dummy_full_persona_update_full_name (FolksDummyFullPersona* self,
                                                const gchar* full_name);
void folks_dummy_full_persona_update_nickname (FolksDummyFullPersona* self,
                                               const gchar* nickname);
void folks_dummy_full_persona_update_structured_name (FolksDummyFullPersona* self,
                                                      FolksStructuredName* structured_name);
void folks_dummy_full_persona_update_avatar (FolksDummyFullPersona* self,
                                             GLoadableIcon* avatar);
void folks_dummy_full_persona_update_urls (FolksDummyFullPersona* self,
                                           GeeSet* urls);
void folks_dummy_full_persona_update_im_addresses (FolksDummyFullPersona* self,
                                                   GeeMultiMap* im_addresses);
void folks_dummy_full_persona_update_phone_numbers (FolksDummyFullPersona* self,
                                                    GeeSet* phone_numbers);
void folks_dummy_full_persona_update_postal_addresses (FolksDummyFullPersona* self,
                                                       GeeSet* postal_addresses);
void folks_dummy_full_persona_update_local_ids (FolksDummyFullPersona* self,
                                                GeeSet* local_ids);
void folks_dummy_full_persona_update_is_favourite (FolksDummyFullPersona* self,
                                                   gboolean is_favourite);
void folks_dummy_full_persona_update_anti_links (FolksDummyFullPersona* self,
                                                 GeeSet* anti_links);
FolksDummyPersonaStore* folks_dummy_persona_store_new (const gchar* id,
                                                       const gchar* display_name,
                                                       gchar** always_writeable_properties,
                                                       gint always_writeable_properties_length1);
FolksDummyPersonaStore* folks_dummy_persona_store_construct (GType object_type,
                                                             const gchar* id,
                                                             const gchar* display_name,
                                                             gchar** always_writeable_properties,
                                                             gint always_writeable_properties_length1);
void folks_dummy_persona_store_update_capabilities (FolksDummyPersonaStore* self,
                                                    FolksMaybeBool can_add_personas,
                                                    FolksMaybeBool can_alias_personas,
                                                    FolksMaybeBool can_remove_personas);
void folks_dummy_persona_store_freeze_personas_changed (FolksDummyPersonaStore* self);
void folks_dummy_persona_store_thaw_personas_changed (FolksDummyPersonaStore* self);
void folks_dummy_persona_store_register_personas (FolksDummyPersonaStore* self,
                                                  GeeSet* personas);
void folks_dummy_persona_store_unregister_personas (FolksDummyPersonaStore* self,
                                                    GeeSet* personas);
void folks_dummy_persona_store_reach_quiescence (FolksDummyPersonaStore* self);
void folks_dummy_persona_store_update_is_user_set_default (FolksDummyPersonaStore* self,
                                                           gboolean is_user_set_default);
void folks_dummy_persona_store_update_trust_level (FolksDummyPersonaStore* self,
                                                   FolksPersonaStoreTrust trust_level);
void folks_dummy_persona_store_set_add_persona_from_details_mock (FolksDummyPersonaStore* self,
                                                                  FolksDummyPersonaStoreAddPersonaFromDetailsMock mock,
                                                                  gpointer mock_target);
void folks_dummy_persona_store_set_remove_persona_mock (FolksDummyPersonaStore* self,
                                                        FolksDummyPersonaStoreRemovePersonaMock mock,
                                                        gpointer mock_target);
void folks_dummy_persona_store_set_prepare_mock (FolksDummyPersonaStore* self,
                                                 FolksDummyPersonaStorePrepareMock mock,
                                                 gpointer mock_target);
GType folks_dummy_persona_store_get_persona_type (FolksDummyPersonaStore* self);
void folks_dummy_persona_store_set_persona_type (FolksDummyPersonaStore* self,
                                                 GType value);
FolksDummyPersona* folks_dummy_persona_new (FolksDummyPersonaStore* store,
                                            const gchar* contact_id,
                                            gboolean is_user,
                                            gchar** linkable_properties,
                                            gint linkable_properties_length1);
FolksDummyPersona* folks_dummy_persona_construct (GType object_type,
                                                  FolksDummyPersonaStore* store,
                                                  const gchar* contact_id,
                                                  gboolean is_user,
                                                  gchar** linkable_properties,
                                                  gint linkable_properties_length1);
void folks_dummy_persona_update_writeable_properties (FolksDummyPersona* self,
                                                      gchar** writeable_properties,
                                                      gint writeable_properties_length1);
void folks_dummy_persona_update_linkable_properties (FolksDummyPersona* self,
                                                     gchar** linkable_properties,
                                                     gint linkable_properties_length1);
void folks_dummy_persona_change_property (FolksDummyPersona* self,
                                          const gchar* property_name,
                                          FolksDummyPersonaChangePropertyCallback callback,
                                          gpointer callback_target,
                                          GAsyncReadyCallback _callback_,
                                          gpointer _user_data_);
void folks_dummy_persona_change_property_finish (FolksDummyPersona* self,
                                                 GAsyncResult* _res_);
gint folks_dummy_persona_get_property_change_delay (FolksDummyPersona* self);
void folks_dummy_persona_set_property_change_delay (FolksDummyPersona* self,
                                                    gint value);

G_END_DECLS

#endif
