/* session.h generated by valac 0.56.18-dirty, the Vala compiler, do not modify */

#ifndef __SRC_LIBSESSION_SESSION_H__
#define __SRC_LIBSESSION_SESSION_H__

#include <glib-object.h>
#include <gio/gio.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 LIB_SESSION_TYPE_SESSION_MANAGER (lib_session_session_manager_get_type ())
#define LIB_SESSION_SESSION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIB_SESSION_TYPE_SESSION_MANAGER, LibSessionSessionManager))
#define LIB_SESSION_IS_SESSION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIB_SESSION_TYPE_SESSION_MANAGER))
#define LIB_SESSION_SESSION_MANAGER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LIB_SESSION_TYPE_SESSION_MANAGER, LibSessionSessionManagerIface))

typedef struct _LibSessionSessionManager LibSessionSessionManager;
typedef struct _LibSessionSessionManagerIface LibSessionSessionManagerIface;

#define LIB_SESSION_TYPE_SESSION_MANAGER_PROXY (lib_session_session_manager_proxy_get_type ())

#define LIB_SESSION_TYPE_SESSION_CLIENT (lib_session_session_client_get_type ())
#define LIB_SESSION_SESSION_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIB_SESSION_TYPE_SESSION_CLIENT, LibSessionSessionClient))
#define LIB_SESSION_IS_SESSION_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIB_SESSION_TYPE_SESSION_CLIENT))
#define LIB_SESSION_SESSION_CLIENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LIB_SESSION_TYPE_SESSION_CLIENT, LibSessionSessionClientIface))

typedef struct _LibSessionSessionClient LibSessionSessionClient;
typedef struct _LibSessionSessionClientIface LibSessionSessionClientIface;

#define LIB_SESSION_TYPE_SESSION_CLIENT_PROXY (lib_session_session_client_proxy_get_type ())

struct _LibSessionSessionManagerIface {
	GTypeInterface parent_iface;
	void (*RegisterClient) (LibSessionSessionManager* self, const gchar* app_id, const gchar* client_start_id, GAsyncReadyCallback _callback_, gpointer _user_data_);
	char* (*RegisterClient_finish) (LibSessionSessionManager* self, GAsyncResult* _res_, GError** error);
};

struct _LibSessionSessionClientIface {
	GTypeInterface parent_iface;
	void (*EndSessionResponse) (LibSessionSessionClient* self, gboolean is_ok, const gchar* reason, GError** error);
};

VALA_EXTERN GType lib_session_session_manager_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint lib_session_session_manager_register_object (void* object,
                                                   GDBusConnection* connection,
                                                   const gchar* path,
                                                   GError** error);
VALA_EXTERN GType lib_session_session_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LibSessionSessionManager, g_object_unref)
VALA_EXTERN void lib_session_session_manager_RegisterClient (LibSessionSessionManager* self,
                                                 const gchar* app_id,
                                                 const gchar* client_start_id,
                                                 GAsyncReadyCallback _callback_,
                                                 gpointer _user_data_);
VALA_EXTERN char* lib_session_session_manager_RegisterClient_finish (LibSessionSessionManager* self,
                                                         GAsyncResult* _res_,
                                                         GError** error);
VALA_EXTERN GType lib_session_session_client_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint lib_session_session_client_register_object (void* object,
                                                  GDBusConnection* connection,
                                                  const gchar* path,
                                                  GError** error);
VALA_EXTERN GType lib_session_session_client_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LibSessionSessionClient, g_object_unref)
VALA_EXTERN void lib_session_session_client_EndSessionResponse (LibSessionSessionClient* self,
                                                    gboolean is_ok,
                                                    const gchar* reason,
                                                    GError** error);
VALA_EXTERN void lib_session_register_with_session (const gchar* app_id,
                                        GAsyncReadyCallback _callback_,
                                        gpointer _user_data_);
VALA_EXTERN LibSessionSessionClient* lib_session_register_with_session_finish (GAsyncResult* _res_);

G_END_DECLS

#endif
