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

#ifndef __BACKENDS_TELEPATHY_LIB_FOLKS_FOLKS_TELEPATHY_H__
#define __BACKENDS_TELEPATHY_LIB_FOLKS_FOLKS_TELEPATHY_H__

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

G_BEGIN_DECLS

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TPF_TYPE_PERSONA_STORE (tpf_persona_store_get_type ())
#define TPF_PERSONA_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TPF_TYPE_PERSONA_STORE, TpfPersonaStore))
#define TPF_PERSONA_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TPF_TYPE_PERSONA_STORE, TpfPersonaStoreClass))
#define TPF_IS_PERSONA_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TPF_TYPE_PERSONA_STORE))
#define TPF_IS_PERSONA_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TPF_TYPE_PERSONA_STORE))
#define TPF_PERSONA_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TPF_TYPE_PERSONA_STORE, TpfPersonaStoreClass))

typedef struct _TpfPersonaStore TpfPersonaStore;
typedef struct _TpfPersonaStoreClass TpfPersonaStoreClass;
typedef struct _TpfPersonaStorePrivate TpfPersonaStorePrivate;

#define TPF_TYPE_PERSONA (tpf_persona_get_type ())
#define TPF_PERSONA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TPF_TYPE_PERSONA, TpfPersona))
#define TPF_PERSONA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TPF_TYPE_PERSONA, TpfPersonaClass))
#define TPF_IS_PERSONA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TPF_TYPE_PERSONA))
#define TPF_IS_PERSONA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TPF_TYPE_PERSONA))
#define TPF_PERSONA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TPF_TYPE_PERSONA, TpfPersonaClass))

typedef struct _TpfPersona TpfPersona;
typedef struct _TpfPersonaClass TpfPersonaClass;
typedef struct _TpfPersonaPrivate TpfPersonaPrivate;

struct _TpfPersonaStore {
	FolksPersonaStore parent_instance;
	TpfPersonaStorePrivate * priv;
};

struct _TpfPersonaStoreClass {
	FolksPersonaStoreClass parent_class;
};

struct _TpfPersona {
	FolksPersona parent_instance;
	TpfPersonaPrivate * priv;
	GDateTime* _last_im_interaction_datetime;
	GDateTime* _last_call_interaction_datetime;
};

struct _TpfPersonaClass {
	FolksPersonaClass parent_class;
};

VALA_EXTERN GType tpf_persona_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TpfPersonaStore, g_object_unref)
VALA_EXTERN TpfPersonaStore* tpf_persona_store_new (TpAccount* account);
VALA_EXTERN TpfPersonaStore* tpf_persona_store_construct (GType object_type,
                                              TpAccount* account);
VALA_EXTERN GeeMap* tpf_persona_store_list_persona_stores (void);
VALA_EXTERN TpfPersonaStore* tpf_persona_store_dup_for_account (TpAccount* account);
VALA_EXTERN TpAccount* tpf_persona_store_get_account (TpfPersonaStore* self);
VALA_EXTERN GType tpf_persona_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TpfPersona, g_object_unref)
VALA_EXTERN TpfPersona* tpf_persona_new (TpContact* contact,
                             TpfPersonaStore* store);
VALA_EXTERN TpfPersona* tpf_persona_construct (GType object_type,
                                   TpContact* contact,
                                   TpfPersonaStore* store);
VALA_EXTERN TpfPersona* tpf_persona_dup_for_contact (TpContact* contact);
VALA_EXTERN gboolean tpf_persona_get_is_in_contact_list (TpfPersona* self);
VALA_EXTERN void tpf_persona_set_is_in_contact_list (TpfPersona* self,
                                         gboolean value);
VALA_EXTERN TpContact* tpf_persona_get_contact (TpfPersona* self);

G_END_DECLS

#endif
