/* BudgieSession.h generated by valac 0.30.1, the Vala compiler, do not modify */


#ifndef __BUDGIESESSION_H__
#define __BUDGIESESSION_H__

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

G_BEGIN_DECLS


#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);
};


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


G_END_DECLS

#endif
