/* notifications.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __NOTIFICATIONS_H__
#define __NOTIFICATIONS_H__

#include <wingpanel-9.h>
#include <glib-object.h>
#include <gmodule.h>
#include <granite-7.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gio/gio.h>
#include <gee.h>
#include <gtk/gtk.h>
#include <gio/gdesktopappinfo.h>
#include <gdk-pixbuf/gdk-pixbuf.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 NOTIFICATIONS_NOTIFICATIONS_LIST_ACTION_GROUP_PREFIX "notifications-list"
#define NOTIFICATIONS_NOTIFICATIONS_LIST_ACTION_PREFIX NOTIFICATIONS_NOTIFICATIONS_LIST_ACTION_GROUP_PREFIX "."
#define NOTIFICATIONS_NOTIFICATION_DEFAULT_ACTION "default"
#define NOTIFICATIONS_NOTIFICATION_DESKTOP_ID_EXT ".desktop"

#define NOTIFICATIONS_TYPE_INDICATOR (notifications_indicator_get_type ())
#define NOTIFICATIONS_INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOTIFICATIONS_TYPE_INDICATOR, NotificationsIndicator))
#define NOTIFICATIONS_INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOTIFICATIONS_TYPE_INDICATOR, NotificationsIndicatorClass))
#define NOTIFICATIONS_IS_INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOTIFICATIONS_TYPE_INDICATOR))
#define NOTIFICATIONS_IS_INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOTIFICATIONS_TYPE_INDICATOR))
#define NOTIFICATIONS_INDICATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOTIFICATIONS_TYPE_INDICATOR, NotificationsIndicatorClass))

typedef struct _NotificationsIndicator NotificationsIndicator;
typedef struct _NotificationsIndicatorClass NotificationsIndicatorClass;
typedef struct _NotificationsIndicatorPrivate NotificationsIndicatorPrivate;

#define NOTIFICATIONS_TYPE_NOTIFICATIONS_LIST (notifications_notifications_list_get_type ())
#define NOTIFICATIONS_NOTIFICATIONS_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOTIFICATIONS_TYPE_NOTIFICATIONS_LIST, NotificationsNotificationsList))
#define NOTIFICATIONS_NOTIFICATIONS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOTIFICATIONS_TYPE_NOTIFICATIONS_LIST, NotificationsNotificationsListClass))
#define NOTIFICATIONS_IS_NOTIFICATIONS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOTIFICATIONS_TYPE_NOTIFICATIONS_LIST))
#define NOTIFICATIONS_IS_NOTIFICATIONS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOTIFICATIONS_TYPE_NOTIFICATIONS_LIST))
#define NOTIFICATIONS_NOTIFICATIONS_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOTIFICATIONS_TYPE_NOTIFICATIONS_LIST, NotificationsNotificationsListClass))

typedef struct _NotificationsNotificationsList NotificationsNotificationsList;
typedef struct _NotificationsNotificationsListClass NotificationsNotificationsListClass;
typedef struct _NotificationsNotificationsListPrivate NotificationsNotificationsListPrivate;

#define NOTIFICATIONS_TYPE_NOTIFICATION (notifications_notification_get_type ())
#define NOTIFICATIONS_NOTIFICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOTIFICATIONS_TYPE_NOTIFICATION, NotificationsNotification))
#define NOTIFICATIONS_NOTIFICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOTIFICATIONS_TYPE_NOTIFICATION, NotificationsNotificationClass))
#define NOTIFICATIONS_IS_NOTIFICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOTIFICATIONS_TYPE_NOTIFICATION))
#define NOTIFICATIONS_IS_NOTIFICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOTIFICATIONS_TYPE_NOTIFICATION))
#define NOTIFICATIONS_NOTIFICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOTIFICATIONS_TYPE_NOTIFICATION, NotificationsNotificationClass))

typedef struct _NotificationsNotification NotificationsNotification;
typedef struct _NotificationsNotificationClass NotificationsNotificationClass;

#define NOTIFICATIONS_TYPE_APP_ENTRY (notifications_app_entry_get_type ())
#define NOTIFICATIONS_APP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOTIFICATIONS_TYPE_APP_ENTRY, NotificationsAppEntry))
#define NOTIFICATIONS_APP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOTIFICATIONS_TYPE_APP_ENTRY, NotificationsAppEntryClass))
#define NOTIFICATIONS_IS_APP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOTIFICATIONS_TYPE_APP_ENTRY))
#define NOTIFICATIONS_IS_APP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOTIFICATIONS_TYPE_APP_ENTRY))
#define NOTIFICATIONS_APP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOTIFICATIONS_TYPE_APP_ENTRY, NotificationsAppEntryClass))

typedef struct _NotificationsAppEntry NotificationsAppEntry;
typedef struct _NotificationsAppEntryClass NotificationsAppEntryClass;

#define NOTIFICATIONS_TYPE_NOTIFICATION_ENTRY (notifications_notification_entry_get_type ())
#define NOTIFICATIONS_NOTIFICATION_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOTIFICATIONS_TYPE_NOTIFICATION_ENTRY, NotificationsNotificationEntry))
#define NOTIFICATIONS_NOTIFICATION_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOTIFICATIONS_TYPE_NOTIFICATION_ENTRY, NotificationsNotificationEntryClass))
#define NOTIFICATIONS_IS_NOTIFICATION_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOTIFICATIONS_TYPE_NOTIFICATION_ENTRY))
#define NOTIFICATIONS_IS_NOTIFICATION_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOTIFICATIONS_TYPE_NOTIFICATION_ENTRY))
#define NOTIFICATIONS_NOTIFICATION_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOTIFICATIONS_TYPE_NOTIFICATION_ENTRY, NotificationsNotificationEntryClass))

typedef struct _NotificationsNotificationEntry NotificationsNotificationEntry;
typedef struct _NotificationsNotificationEntryClass NotificationsNotificationEntryClass;
typedef struct _NotificationsNotificationEntryPrivate NotificationsNotificationEntryPrivate;
typedef struct _NotificationsAppEntryPrivate NotificationsAppEntryPrivate;

#define NOTIFICATIONS_TYPE_NOTIFICATIONS_MONITOR (notifications_notifications_monitor_get_type ())
#define NOTIFICATIONS_NOTIFICATIONS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOTIFICATIONS_TYPE_NOTIFICATIONS_MONITOR, NotificationsNotificationsMonitor))
#define NOTIFICATIONS_NOTIFICATIONS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOTIFICATIONS_TYPE_NOTIFICATIONS_MONITOR, NotificationsNotificationsMonitorClass))
#define NOTIFICATIONS_IS_NOTIFICATIONS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOTIFICATIONS_TYPE_NOTIFICATIONS_MONITOR))
#define NOTIFICATIONS_IS_NOTIFICATIONS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOTIFICATIONS_TYPE_NOTIFICATIONS_MONITOR))
#define NOTIFICATIONS_NOTIFICATIONS_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOTIFICATIONS_TYPE_NOTIFICATIONS_MONITOR, NotificationsNotificationsMonitorClass))

typedef struct _NotificationsNotificationsMonitor NotificationsNotificationsMonitor;
typedef struct _NotificationsNotificationsMonitorClass NotificationsNotificationsMonitorClass;
typedef struct _NotificationsNotificationPrivate NotificationsNotificationPrivate;
typedef enum  {
	NOTIFICATIONS_NOTIFICATION_CLOSE_REASON_EXPIRED = 1,
	NOTIFICATIONS_NOTIFICATION_CLOSE_REASON_DISMISSED = 2,
	NOTIFICATIONS_NOTIFICATION_CLOSE_REASON_CLOSE_NOTIFICATION_CALL = 3,
	NOTIFICATIONS_NOTIFICATION_CLOSE_REASON_UNDEFINED = 4
} NotificationsNotificationCloseReason;

#define NOTIFICATIONS_NOTIFICATION_TYPE_CLOSE_REASON (notifications_notification_close_reason_get_type ())

#define NOTIFICATIONS_TYPE_SESSION (notifications_session_get_type ())
#define NOTIFICATIONS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOTIFICATIONS_TYPE_SESSION, NotificationsSession))
#define NOTIFICATIONS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOTIFICATIONS_TYPE_SESSION, NotificationsSessionClass))
#define NOTIFICATIONS_IS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOTIFICATIONS_TYPE_SESSION))
#define NOTIFICATIONS_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOTIFICATIONS_TYPE_SESSION))
#define NOTIFICATIONS_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOTIFICATIONS_TYPE_SESSION, NotificationsSessionClass))

typedef struct _NotificationsSession NotificationsSession;
typedef struct _NotificationsSessionClass NotificationsSessionClass;
typedef struct _NotificationsSessionPrivate NotificationsSessionPrivate;

struct _NotificationsIndicator {
	WingpanelIndicator parent_instance;
	NotificationsIndicatorPrivate * priv;
};

struct _NotificationsIndicatorClass {
	WingpanelIndicatorClass parent_class;
};

struct _NotificationsNotificationsList {
	GraniteBin parent_instance;
	NotificationsNotificationsListPrivate * priv;
};

struct _NotificationsNotificationsListClass {
	GraniteBinClass parent_class;
};

struct _NotificationsNotificationEntry {
	GtkListBoxRow parent_instance;
	NotificationsNotificationEntryPrivate * priv;
};

struct _NotificationsNotificationEntryClass {
	GtkListBoxRowClass parent_class;
};

struct _NotificationsAppEntry {
	GtkListBoxRow parent_instance;
	NotificationsAppEntryPrivate * priv;
	GList* app_notifications;
};

struct _NotificationsAppEntryClass {
	GtkListBoxRowClass parent_class;
};

struct _NotificationsNotification {
	GObject parent_instance;
	NotificationsNotificationPrivate * priv;
	gchar* app_name;
	gchar* summary;
	gchar* message_body;
	gchar* app_icon;
	gchar* sender;
	gchar** actions;
	gint actions_length1;
	GList* buttons;
	guint32 replaces_id;
	gboolean has_temp_file;
	GDateTime* timestamp;
	gchar* desktop_id;
	GDesktopAppInfo* app_info;
};

struct _NotificationsNotificationClass {
	GObjectClass parent_class;
};

struct _NotificationsSession {
	GObject parent_instance;
	NotificationsSessionPrivate * priv;
};

struct _NotificationsSessionClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType notifications_indicator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NotificationsIndicator, g_object_unref)
VALA_EXTERN NotificationsIndicator* notifications_indicator_new (void);
VALA_EXTERN NotificationsIndicator* notifications_indicator_construct (GType object_type);
VALA_EXTERN WingpanelIndicator* get_indicator (GModule* module,
                                   WingpanelIndicatorManagerServerType server_type);
VALA_EXTERN GType notifications_notifications_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NotificationsNotificationsList, g_object_unref)
VALA_EXTERN GType notifications_notification_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NotificationsNotification, g_object_unref)
VALA_EXTERN void notifications_notifications_list_add_entry (NotificationsNotificationsList* self,
                                                 NotificationsNotification* notification,
                                                 gboolean add_to_session,
                                                 GAsyncReadyCallback _callback_,
                                                 gpointer _user_data_);
VALA_EXTERN void notifications_notifications_list_add_entry_finish (NotificationsNotificationsList* self,
                                                        GAsyncResult* _res_);
VALA_EXTERN guint notifications_notifications_list_count_notifications (NotificationsNotificationsList* self,
                                                            guint* number_of_apps);
VALA_EXTERN void notifications_notifications_list_clear_all (NotificationsNotificationsList* self);
VALA_EXTERN NotificationsNotificationsList* notifications_notifications_list_new (void);
VALA_EXTERN NotificationsNotificationsList* notifications_notifications_list_construct (GType object_type);
VALA_EXTERN GType notifications_app_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NotificationsAppEntry, g_object_unref)
VALA_EXTERN GeeHashMap* notifications_notifications_list_get_app_entries (NotificationsNotificationsList* self);
VALA_EXTERN GType notifications_notification_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NotificationsNotificationEntry, g_object_unref)
VALA_EXTERN NotificationsNotificationEntry* notifications_notification_entry_new (NotificationsNotification* notification);
VALA_EXTERN NotificationsNotificationEntry* notifications_notification_entry_construct (GType object_type,
                                                                            NotificationsNotification* notification);
VALA_EXTERN void notifications_notification_entry_dismiss (NotificationsNotificationEntry* self);
VALA_EXTERN NotificationsNotification* notifications_notification_entry_get_notification (NotificationsNotificationEntry* self);
VALA_EXTERN GtkRevealer* notifications_notification_entry_get_revealer (NotificationsNotificationEntry* self);
VALA_EXTERN NotificationsAppEntry* notifications_app_entry_new (GAppInfo* app_info);
VALA_EXTERN NotificationsAppEntry* notifications_app_entry_construct (GType object_type,
                                                          GAppInfo* app_info);
VALA_EXTERN void notifications_app_entry_add_notification_entry (NotificationsAppEntry* self,
                                                     NotificationsNotificationEntry* entry);
VALA_EXTERN void notifications_app_entry_remove_notification_entry (NotificationsAppEntry* self,
                                                        NotificationsNotificationEntry* entry);
VALA_EXTERN void notifications_app_entry_clear_all_notification_entries (NotificationsAppEntry* self);
VALA_EXTERN const gchar* notifications_app_entry_get_app_id (NotificationsAppEntry* self);
VALA_EXTERN GAppInfo* notifications_app_entry_get_app_info (NotificationsAppEntry* self);
VALA_EXTERN GType notifications_notifications_monitor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NotificationsNotificationsMonitor, g_object_unref)
VALA_EXTERN void notifications_notifications_monitor_init (NotificationsNotificationsMonitor* self,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_);
VALA_EXTERN void notifications_notifications_monitor_init_finish (NotificationsNotificationsMonitor* self,
                                                      GAsyncResult* _res_,
                                                      GError** error);
VALA_EXTERN NotificationsNotificationsMonitor* notifications_notifications_monitor_new (void);
VALA_EXTERN NotificationsNotificationsMonitor* notifications_notifications_monitor_construct (GType object_type);
VALA_EXTERN GDBusActionGroup* notifications_notifications_monitor_get_notifications_action_group (NotificationsNotificationsMonitor* self);
VALA_EXTERN GType notifications_notification_close_reason_get_type (void) G_GNUC_CONST ;
VALA_EXTERN NotificationsNotification* notifications_notification_new (const gchar* _internal_id,
                                                           const gchar* _app_name,
                                                           const gchar* _app_icon,
                                                           const gchar* _summary,
                                                           const gchar* _message_body,
                                                           const gchar* _image_path,
                                                           gchar** _actions,
                                                           gint _actions_length1,
                                                           const gchar* _desktop_id,
                                                           gint64 _unix_time,
                                                           guint64 _replaces_id,
                                                           const gchar* _sender,
                                                           gboolean _has_temp_file);
VALA_EXTERN NotificationsNotification* notifications_notification_construct (GType object_type,
                                                                 const gchar* _internal_id,
                                                                 const gchar* _app_name,
                                                                 const gchar* _app_icon,
                                                                 const gchar* _summary,
                                                                 const gchar* _message_body,
                                                                 const gchar* _image_path,
                                                                 gchar** _actions,
                                                                 gint _actions_length1,
                                                                 const gchar* _desktop_id,
                                                                 gint64 _unix_time,
                                                                 guint64 _replaces_id,
                                                                 const gchar* _sender,
                                                                 gboolean _has_temp_file);
VALA_EXTERN NotificationsNotification* notifications_notification_new_from_message (GDBusMessage* message,
                                                                        guint32 _id);
VALA_EXTERN NotificationsNotification* notifications_notification_construct_from_message (GType object_type,
                                                                              GDBusMessage* message,
                                                                              guint32 _id);
VALA_EXTERN gchar* notifications_notification_store_pixbuf (NotificationsNotification* self,
                                                GdkPixbuf* pixbuf);
VALA_EXTERN const gchar* notifications_notification_get_internal_id (NotificationsNotification* self);
VALA_EXTERN void notifications_notification_set_internal_id (NotificationsNotification* self,
                                                 const gchar* value);
VALA_EXTERN const gchar* notifications_notification_get_image_path (NotificationsNotification* self);
VALA_EXTERN const gchar* notifications_notification_get_default_action (NotificationsNotification* self);
VALA_EXTERN guint32 notifications_notification_get_server_id (NotificationsNotification* self);
VALA_EXTERN void notifications_notification_set_server_id (NotificationsNotification* self,
                                               guint32 value);
VALA_EXTERN GIcon* notifications_notification_get_badge_icon (NotificationsNotification* self);
VALA_EXTERN void notifications_notification_set_badge_icon (NotificationsNotification* self,
                                                GIcon* value);
VALA_EXTERN GType notifications_session_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NotificationsSession, g_object_unref)
VALA_EXTERN NotificationsSession* notifications_session_get_instance (void);
VALA_EXTERN GList* notifications_session_get_session_notifications (NotificationsSession* self);
VALA_EXTERN void notifications_session_add_notification (NotificationsSession* self,
                                             NotificationsNotification* notification,
                                             gboolean write_file);
VALA_EXTERN void notifications_session_remove_notification (NotificationsSession* self,
                                                NotificationsNotification* notification,
                                                gboolean write_file);
VALA_EXTERN void notifications_session_remove_notifications (NotificationsSession* self,
                                                 NotificationsNotification** notifications,
                                                 gint notifications_length1);
VALA_EXTERN void notifications_session_clear (NotificationsSession* self);

G_END_DECLS

#endif
