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

#ifndef __SRC_RAVEN_RAVEN_H__
#define __SRC_RAVEN_RAVEN_H__

#include <gtk/gtk.h>
#include <glib-object.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include "budgie-private.h"
#include <gio/gio.h>
#include <libpeas.h>
#include <gdk/gdk.h>
#include <float.h>
#include <math.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 BUDGIE_ROOT_KEY_SPAM_APPS "spam-apps"
#define BUDGIE_ROOT_KEY_SPAM_CATEGORIES "spam-categories"
#define BUDGIE_NOTIFICATION_DBUS_NAME "org.budgie_desktop.Notifications"
#define BUDGIE_NOTIFICATION_DBUS_OBJECT_PATH "/org/budgie_desktop/Notifications"
#define BUDGIE_RAVEN_DBUS_NAME "org.budgie_desktop.Raven"
#define BUDGIE_RAVEN_DBUS_OBJECT_PATH "/org/budgie_desktop/Raven"

#define BUDGIE_TYPE_HEADER_EXPANDER (budgie_header_expander_get_type ())
#define BUDGIE_HEADER_EXPANDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_HEADER_EXPANDER, BudgieHeaderExpander))
#define BUDGIE_HEADER_EXPANDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_HEADER_EXPANDER, BudgieHeaderExpanderClass))
#define BUDGIE_IS_HEADER_EXPANDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_HEADER_EXPANDER))
#define BUDGIE_IS_HEADER_EXPANDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_HEADER_EXPANDER))
#define BUDGIE_HEADER_EXPANDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_HEADER_EXPANDER, BudgieHeaderExpanderClass))

typedef struct _BudgieHeaderExpander BudgieHeaderExpander;
typedef struct _BudgieHeaderExpanderClass BudgieHeaderExpanderClass;
typedef struct _BudgieHeaderExpanderPrivate BudgieHeaderExpanderPrivate;

#define BUDGIE_TYPE_HEADER_WIDGET (budgie_header_widget_get_type ())
#define BUDGIE_HEADER_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_HEADER_WIDGET, BudgieHeaderWidget))
#define BUDGIE_HEADER_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_HEADER_WIDGET, BudgieHeaderWidgetClass))
#define BUDGIE_IS_HEADER_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_HEADER_WIDGET))
#define BUDGIE_IS_HEADER_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_HEADER_WIDGET))
#define BUDGIE_HEADER_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_HEADER_WIDGET, BudgieHeaderWidgetClass))

typedef struct _BudgieHeaderWidget BudgieHeaderWidget;
typedef struct _BudgieHeaderWidgetClass BudgieHeaderWidgetClass;
typedef struct _BudgieHeaderWidgetPrivate BudgieHeaderWidgetPrivate;

#define BUDGIE_TYPE_RAVEN_EXPANDER (budgie_raven_expander_get_type ())
#define BUDGIE_RAVEN_EXPANDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_RAVEN_EXPANDER, BudgieRavenExpander))
#define BUDGIE_RAVEN_EXPANDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_RAVEN_EXPANDER, BudgieRavenExpanderClass))
#define BUDGIE_IS_RAVEN_EXPANDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_RAVEN_EXPANDER))
#define BUDGIE_IS_RAVEN_EXPANDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_RAVEN_EXPANDER))
#define BUDGIE_RAVEN_EXPANDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_RAVEN_EXPANDER, BudgieRavenExpanderClass))

typedef struct _BudgieRavenExpander BudgieRavenExpander;
typedef struct _BudgieRavenExpanderClass BudgieRavenExpanderClass;
typedef struct _BudgieRavenExpanderPrivate BudgieRavenExpanderPrivate;

#define BUDGIE_TYPE_MAIN_VIEW (budgie_main_view_get_type ())
#define BUDGIE_MAIN_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_MAIN_VIEW, BudgieMainView))
#define BUDGIE_MAIN_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_MAIN_VIEW, BudgieMainViewClass))
#define BUDGIE_IS_MAIN_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_MAIN_VIEW))
#define BUDGIE_IS_MAIN_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_MAIN_VIEW))
#define BUDGIE_MAIN_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_MAIN_VIEW, BudgieMainViewClass))

typedef struct _BudgieMainView BudgieMainView;
typedef struct _BudgieMainViewClass BudgieMainViewClass;
typedef struct _BudgieMainViewPrivate BudgieMainViewPrivate;

#define TYPE_NOTIFICATION_WIDGET (notification_widget_get_type ())
#define NOTIFICATION_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFICATION_WIDGET, NotificationWidget))
#define NOTIFICATION_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFICATION_WIDGET, NotificationWidgetClass))
#define IS_NOTIFICATION_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFICATION_WIDGET))
#define IS_NOTIFICATION_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFICATION_WIDGET))
#define NOTIFICATION_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFICATION_WIDGET, NotificationWidgetClass))

typedef struct _NotificationWidget NotificationWidget;
typedef struct _NotificationWidgetClass NotificationWidgetClass;
typedef struct _NotificationWidgetPrivate NotificationWidgetPrivate;

#define BUDGIE_TYPE_NOTIFICATION_GROUP (budgie_notification_group_get_type ())
#define BUDGIE_NOTIFICATION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_NOTIFICATION_GROUP, BudgieNotificationGroup))
#define BUDGIE_NOTIFICATION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_NOTIFICATION_GROUP, BudgieNotificationGroupClass))
#define BUDGIE_IS_NOTIFICATION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_NOTIFICATION_GROUP))
#define BUDGIE_IS_NOTIFICATION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_NOTIFICATION_GROUP))
#define BUDGIE_NOTIFICATION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_NOTIFICATION_GROUP, BudgieNotificationGroupClass))

typedef struct _BudgieNotificationGroup BudgieNotificationGroup;
typedef struct _BudgieNotificationGroupClass BudgieNotificationGroupClass;
typedef struct _BudgieNotificationGroupPrivate BudgieNotificationGroupPrivate;
typedef enum  {
	BUDGIE_NOTIFICATION_SORT_NEW_OLD = 1,
	BUDGIE_NOTIFICATION_SORT_OLD_NEW = 2
} BudgieNotificationSort;

#define BUDGIE_TYPE_NOTIFICATION_SORT (budgie_notification_sort_get_type ())

#define BUDGIE_TYPE_NOTIFICATION_PLACEHOLDER (budgie_notification_placeholder_get_type ())
#define BUDGIE_NOTIFICATION_PLACEHOLDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_NOTIFICATION_PLACEHOLDER, BudgieNotificationPlaceholder))
#define BUDGIE_NOTIFICATION_PLACEHOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_NOTIFICATION_PLACEHOLDER, BudgieNotificationPlaceholderClass))
#define BUDGIE_IS_NOTIFICATION_PLACEHOLDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_NOTIFICATION_PLACEHOLDER))
#define BUDGIE_IS_NOTIFICATION_PLACEHOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_NOTIFICATION_PLACEHOLDER))
#define BUDGIE_NOTIFICATION_PLACEHOLDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_NOTIFICATION_PLACEHOLDER, BudgieNotificationPlaceholderClass))

typedef struct _BudgieNotificationPlaceholder BudgieNotificationPlaceholder;
typedef struct _BudgieNotificationPlaceholderClass BudgieNotificationPlaceholderClass;
typedef struct _BudgieNotificationPlaceholderPrivate BudgieNotificationPlaceholderPrivate;

#define BUDGIE_TYPE_DISPATCHER (budgie_dispatcher_get_type ())
#define BUDGIE_DISPATCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_DISPATCHER, BudgieDispatcher))
#define BUDGIE_IS_DISPATCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_DISPATCHER))
#define BUDGIE_DISPATCHER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BUDGIE_TYPE_DISPATCHER, BudgieDispatcherIface))

typedef struct _BudgieDispatcher BudgieDispatcher;
typedef struct _BudgieDispatcherIface BudgieDispatcherIface;

#define BUDGIE_TYPE_DISPATCHER_PROXY (budgie_dispatcher_proxy_get_type ())

#define BUDGIE_TYPE_RAVEN_INTERFACE (budgie_raven_interface_get_type ())
#define BUDGIE_RAVEN_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_RAVEN_INTERFACE, BudgieRavenInterface))
#define BUDGIE_IS_RAVEN_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_RAVEN_INTERFACE))
#define BUDGIE_RAVEN_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BUDGIE_TYPE_RAVEN_INTERFACE, BudgieRavenInterfaceIface))

typedef struct _BudgieRavenInterface BudgieRavenInterface;
typedef struct _BudgieRavenInterfaceIface BudgieRavenInterfaceIface;

#define BUDGIE_TYPE_RAVEN_INTERFACE_PROXY (budgie_raven_interface_proxy_get_type ())

#define BUDGIE_TYPE_NOTIFICATIONS_VIEW (budgie_notifications_view_get_type ())
#define BUDGIE_NOTIFICATIONS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_NOTIFICATIONS_VIEW, BudgieNotificationsView))
#define BUDGIE_NOTIFICATIONS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_NOTIFICATIONS_VIEW, BudgieNotificationsViewClass))
#define BUDGIE_IS_NOTIFICATIONS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_NOTIFICATIONS_VIEW))
#define BUDGIE_IS_NOTIFICATIONS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_NOTIFICATIONS_VIEW))
#define BUDGIE_NOTIFICATIONS_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_NOTIFICATIONS_VIEW, BudgieNotificationsViewClass))

typedef struct _BudgieNotificationsView BudgieNotificationsView;
typedef struct _BudgieNotificationsViewClass BudgieNotificationsViewClass;
typedef struct _BudgieNotificationsViewPrivate BudgieNotificationsViewPrivate;
typedef enum  {
	BUDGIE_RAVEN_WIDGET_CREATION_RESULT_SUCCESS,
	BUDGIE_RAVEN_WIDGET_CREATION_RESULT_PLUGIN_INFO_MISSING,
	BUDGIE_RAVEN_WIDGET_CREATION_RESULT_INVALID_MODULE_NAME,
	BUDGIE_RAVEN_WIDGET_CREATION_RESULT_PLUGIN_LOAD_FAILED,
	BUDGIE_RAVEN_WIDGET_CREATION_RESULT_SCHEMA_LOAD_FAILED,
	BUDGIE_RAVEN_WIDGET_CREATION_RESULT_INSTANCE_CREATION_FAILED
} BudgieRavenWidgetCreationResult;

#define BUDGIE_TYPE_RAVEN_WIDGET_CREATION_RESULT (budgie_raven_widget_creation_result_get_type ())

#define BUDGIE_TYPE_RAVEN_PLUGIN_MANAGER (budgie_raven_plugin_manager_get_type ())
#define BUDGIE_RAVEN_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_RAVEN_PLUGIN_MANAGER, BudgieRavenPluginManager))
#define BUDGIE_RAVEN_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_RAVEN_PLUGIN_MANAGER, BudgieRavenPluginManagerClass))
#define BUDGIE_IS_RAVEN_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_RAVEN_PLUGIN_MANAGER))
#define BUDGIE_IS_RAVEN_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_RAVEN_PLUGIN_MANAGER))
#define BUDGIE_RAVEN_PLUGIN_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_RAVEN_PLUGIN_MANAGER, BudgieRavenPluginManagerClass))

typedef struct _BudgieRavenPluginManager BudgieRavenPluginManager;
typedef struct _BudgieRavenPluginManagerClass BudgieRavenPluginManagerClass;
typedef struct _BudgieRavenPluginManagerPrivate BudgieRavenPluginManagerPrivate;

#define BUDGIE_TYPE_RAVEN_WIDGET_DATA (budgie_raven_widget_data_get_type ())
#define BUDGIE_RAVEN_WIDGET_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_RAVEN_WIDGET_DATA, BudgieRavenWidgetData))
#define BUDGIE_RAVEN_WIDGET_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_RAVEN_WIDGET_DATA, BudgieRavenWidgetDataClass))
#define BUDGIE_IS_RAVEN_WIDGET_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_RAVEN_WIDGET_DATA))
#define BUDGIE_IS_RAVEN_WIDGET_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_RAVEN_WIDGET_DATA))
#define BUDGIE_RAVEN_WIDGET_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_RAVEN_WIDGET_DATA, BudgieRavenWidgetDataClass))

typedef struct _BudgieRavenWidgetData BudgieRavenWidgetData;
typedef struct _BudgieRavenWidgetDataClass BudgieRavenWidgetDataClass;
typedef struct _BudgieRavenWidgetDataPrivate BudgieRavenWidgetDataPrivate;
typedef enum  {
	BUDGIE_RAVEN_POSITION_AUTOMATIC = 1,
	BUDGIE_RAVEN_POSITION_LEFT = 2,
	BUDGIE_RAVEN_POSITION_RIGHT = 3
} BudgieRavenPosition;

#define BUDGIE_TYPE_RAVEN_POSITION (budgie_raven_position_get_type ())

#define BUDGIE_TYPE_RAVEN_IFACE (budgie_raven_iface_get_type ())
#define BUDGIE_RAVEN_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_RAVEN_IFACE, BudgieRavenIface))
#define BUDGIE_RAVEN_IFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_RAVEN_IFACE, BudgieRavenIfaceClass))
#define BUDGIE_IS_RAVEN_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_RAVEN_IFACE))
#define BUDGIE_IS_RAVEN_IFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_RAVEN_IFACE))
#define BUDGIE_RAVEN_IFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_RAVEN_IFACE, BudgieRavenIfaceClass))

typedef struct _BudgieRavenIface BudgieRavenIface;
typedef struct _BudgieRavenIfaceClass BudgieRavenIfaceClass;
typedef struct _BudgieRavenIfacePrivate BudgieRavenIfacePrivate;

#define BUDGIE_TYPE_RAVEN (budgie_raven_get_type ())
#define BUDGIE_RAVEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_RAVEN, BudgieRaven))
#define BUDGIE_RAVEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_RAVEN, BudgieRavenClass))
#define BUDGIE_IS_RAVEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_RAVEN))
#define BUDGIE_IS_RAVEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_RAVEN))
#define BUDGIE_RAVEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_RAVEN, BudgieRavenClass))

typedef struct _BudgieRaven BudgieRaven;
typedef struct _BudgieRavenClass BudgieRavenClass;
typedef struct _BudgieRavenPrivate BudgieRavenPrivate;

struct _BudgieHeaderExpander {
	GtkButton parent_instance;
	BudgieHeaderExpanderPrivate * priv;
};

struct _BudgieHeaderExpanderClass {
	GtkButtonClass parent_class;
};

struct _BudgieHeaderWidget {
	GtkBox parent_instance;
	BudgieHeaderWidgetPrivate * priv;
	BudgieHeaderExpander* expander_btn;
};

struct _BudgieHeaderWidgetClass {
	GtkBoxClass parent_class;
};

struct _BudgieRavenExpander {
	GtkBox parent_instance;
	BudgieRavenExpanderPrivate * priv;
	GtkRevealer* content;
};

struct _BudgieRavenExpanderClass {
	GtkBoxClass parent_class;
};

struct _BudgieMainView {
	GtkBox parent_instance;
	BudgieMainViewPrivate * priv;
};

struct _BudgieMainViewClass {
	GtkBoxClass parent_class;
};

struct _NotificationWidget {
	GtkListBoxRow parent_instance;
	NotificationWidgetPrivate * priv;
};

struct _NotificationWidgetClass {
	GtkListBoxRowClass parent_class;
};

struct _BudgieNotificationGroup {
	GtkListBoxRow parent_instance;
	BudgieNotificationGroupPrivate * priv;
};

struct _BudgieNotificationGroupClass {
	GtkListBoxRowClass parent_class;
};

struct _BudgieNotificationPlaceholder {
	GtkBox parent_instance;
	BudgieNotificationPlaceholderPrivate * priv;
};

struct _BudgieNotificationPlaceholderClass {
	GtkBoxClass parent_class;
};

struct _BudgieDispatcherIface {
	GTypeInterface parent_iface;
	gboolean (*get_do_not_disturb) (BudgieDispatcher* self, GError** error);
	void (*toggle_do_not_disturb) (BudgieDispatcher* self, GError** error);
	gboolean (*get_notifications_paused) (BudgieDispatcher* self);
	void (*set_notifications_paused) (BudgieDispatcher* self, gboolean value);
};

struct _BudgieRavenInterfaceIface {
	GTypeInterface parent_iface;
};

struct _BudgieNotificationsView {
	GtkBox parent_instance;
	BudgieNotificationsViewPrivate * priv;
};

struct _BudgieNotificationsViewClass {
	GtkBoxClass parent_class;
};

struct _BudgieRavenPluginManager {
	GTypeInstance parent_instance;
	volatile int ref_count;
	BudgieRavenPluginManagerPrivate * priv;
};

struct _BudgieRavenPluginManagerClass {
	GTypeClass parent_class;
	void (*finalize) (BudgieRavenPluginManager *self);
};

struct _BudgieRavenWidgetData {
	GTypeInstance parent_instance;
	volatile int ref_count;
	BudgieRavenWidgetDataPrivate * priv;
};

struct _BudgieRavenWidgetDataClass {
	GTypeClass parent_class;
	void (*finalize) (BudgieRavenWidgetData *self);
};

struct _BudgieRavenIface {
	GTypeInstance parent_instance;
	volatile int ref_count;
	BudgieRavenIfacePrivate * priv;
	guint notifications;
};

struct _BudgieRavenIfaceClass {
	GTypeClass parent_class;
	void (*finalize) (BudgieRavenIface *self);
};

struct _BudgieRaven {
	GtkWindow parent_instance;
	BudgieRavenPrivate * priv;
};

struct _BudgieRavenClass {
	GtkWindowClass parent_class;
};

VALA_EXTERN GType budgie_header_expander_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieHeaderExpander, g_object_unref)
VALA_EXTERN GType budgie_header_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieHeaderWidget, g_object_unref)
VALA_EXTERN BudgieHeaderExpander* budgie_header_expander_new (BudgieHeaderWidget* owner);
VALA_EXTERN BudgieHeaderExpander* budgie_header_expander_construct (GType object_type,
                                                        BudgieHeaderWidget* owner);
VALA_EXTERN gboolean budgie_header_expander_get_expanded (BudgieHeaderExpander* self);
VALA_EXTERN void budgie_header_expander_set_expanded (BudgieHeaderExpander* self,
                                          gboolean value);
VALA_EXTERN BudgieHeaderWidget* budgie_header_widget_new (const gchar* text,
                                              const gchar* icon_name,
                                              gboolean can_close,
                                              GtkWidget* custom_widget,
                                              GtkWidget* end_widget);
VALA_EXTERN BudgieHeaderWidget* budgie_header_widget_construct (GType object_type,
                                                    const gchar* text,
                                                    const gchar* icon_name,
                                                    gboolean can_close,
                                                    GtkWidget* custom_widget,
                                                    GtkWidget* end_widget);
VALA_EXTERN void budgie_header_widget_notify_expanded_change (BudgieHeaderWidget* self,
                                                  gboolean value);
VALA_EXTERN const gchar* budgie_header_widget_get_text (BudgieHeaderWidget* self);
VALA_EXTERN void budgie_header_widget_set_text (BudgieHeaderWidget* self,
                                    const gchar* value);
VALA_EXTERN gchar* budgie_header_widget_get_icon_name (BudgieHeaderWidget* self);
VALA_EXTERN void budgie_header_widget_set_icon_name (BudgieHeaderWidget* self,
                                         const gchar* value);
VALA_EXTERN gboolean budgie_header_widget_get_can_close (BudgieHeaderWidget* self);
VALA_EXTERN void budgie_header_widget_set_can_close (BudgieHeaderWidget* self,
                                         gboolean value);
VALA_EXTERN gboolean budgie_header_widget_get_expanded (BudgieHeaderWidget* self);
VALA_EXTERN void budgie_header_widget_set_expanded (BudgieHeaderWidget* self,
                                        gboolean value);
VALA_EXTERN GType budgie_raven_expander_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieRavenExpander, g_object_unref)
VALA_EXTERN BudgieRavenExpander* budgie_raven_expander_new (BudgieHeaderWidget* header);
VALA_EXTERN BudgieRavenExpander* budgie_raven_expander_construct (GType object_type,
                                                      BudgieHeaderWidget* header);
VALA_EXTERN gboolean budgie_raven_expander_get_expanded (BudgieRavenExpander* self);
VALA_EXTERN void budgie_raven_expander_set_expanded (BudgieRavenExpander* self,
                                         gboolean value);
VALA_EXTERN GType budgie_main_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieMainView, g_object_unref)
VALA_EXTERN void budgie_main_view_expose_notification (BudgieMainView* self);
VALA_EXTERN BudgieMainView* budgie_main_view_new (void);
VALA_EXTERN BudgieMainView* budgie_main_view_construct (GType object_type);
VALA_EXTERN void budgie_main_view_add_widget_instance (BudgieMainView* self,
                                           GtkBin* widget_instance);
VALA_EXTERN void budgie_main_view_remove_widget_instance (BudgieMainView* self,
                                              GtkBin* widget_instance);
VALA_EXTERN void budgie_main_view_move_widget_instance_by_offset (BudgieMainView* self,
                                                      GtkBin* widget_instance,
                                                      gint offset);
VALA_EXTERN void budgie_main_view_set_clean (BudgieMainView* self);
VALA_EXTERN void budgie_main_view_raven_expanded (BudgieMainView* self,
                                      gboolean expanded);
VALA_EXTERN GType notification_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NotificationWidget, g_object_unref)
VALA_EXTERN NotificationWidget* notification_widget_new (BudgieNotification* notification);
VALA_EXTERN NotificationWidget* notification_widget_construct (GType object_type,
                                                   BudgieNotification* notification);
VALA_EXTERN void notification_widget_Dismiss (NotificationWidget* self);
VALA_EXTERN BudgieNotification* notification_widget_get_notification (NotificationWidget* self);
VALA_EXTERN GType budgie_notification_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieNotificationGroup, g_object_unref)
VALA_EXTERN GType budgie_notification_sort_get_type (void) G_GNUC_CONST ;
VALA_EXTERN BudgieNotificationGroup* budgie_notification_group_new (BudgieNotification* notification,
                                                        BudgieNotificationSort sort_mode,
                                                        guint keep);
VALA_EXTERN BudgieNotificationGroup* budgie_notification_group_construct (GType object_type,
                                                              BudgieNotification* notification,
                                                              BudgieNotificationSort sort_mode,
                                                              guint keep);
VALA_EXTERN void budgie_notification_group_add_notification (BudgieNotificationGroup* self,
                                                 guint32 id,
                                                 BudgieNotification* notification);
VALA_EXTERN void budgie_notification_group_dismiss_all (BudgieNotificationGroup* self);
VALA_EXTERN void budgie_notification_group_remove_notification (BudgieNotificationGroup* self,
                                                    guint32 id);
VALA_EXTERN void budgie_notification_group_limit_notifications (BudgieNotificationGroup* self);
VALA_EXTERN void budgie_notification_group_set_group_max_notifications (BudgieNotificationGroup* self,
                                                            guint keep);
VALA_EXTERN void budgie_notification_group_set_sort_mode (BudgieNotificationGroup* self,
                                              BudgieNotificationSort sort_mode);
VALA_EXTERN const gchar* budgie_notification_group_get_app_name (BudgieNotificationGroup* self);
VALA_EXTERN GtkImage* budgie_notification_group_get_image (BudgieNotificationGroup* self);
VALA_EXTERN guint budgie_notification_group_get_tokeep (BudgieNotificationGroup* self);
VALA_EXTERN void budgie_notification_group_set_tokeep (BudgieNotificationGroup* self,
                                           guint value);
VALA_EXTERN BudgieNotificationSort budgie_notification_group_get_noti_sort_mode (BudgieNotificationGroup* self);
VALA_EXTERN void budgie_notification_group_set_noti_sort_mode (BudgieNotificationGroup* self,
                                                   BudgieNotificationSort value);
VALA_EXTERN gint budgie_notification_group_get_noti_count (BudgieNotificationGroup* self);
VALA_EXTERN GType budgie_notification_placeholder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieNotificationPlaceholder, g_object_unref)
VALA_EXTERN BudgieNotificationPlaceholder* budgie_notification_placeholder_new (void);
VALA_EXTERN BudgieNotificationPlaceholder* budgie_notification_placeholder_construct (GType object_type);
VALA_EXTERN GType budgie_dispatcher_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint budgie_dispatcher_register_object (void* object,
                                         GDBusConnection* connection,
                                         const gchar* path,
                                         GError** error);
VALA_EXTERN GType budgie_dispatcher_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieDispatcher, g_object_unref)
VALA_EXTERN gboolean budgie_dispatcher_get_do_not_disturb (BudgieDispatcher* self,
                                               GError** error);
VALA_EXTERN void budgie_dispatcher_toggle_do_not_disturb (BudgieDispatcher* self,
                                              GError** error);
VALA_EXTERN gboolean budgie_dispatcher_get_notifications_paused (BudgieDispatcher* self);
VALA_EXTERN void budgie_dispatcher_set_notifications_paused (BudgieDispatcher* self,
                                                 gboolean value);
VALA_EXTERN GType budgie_raven_interface_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieRavenInterface, g_object_unref)
VALA_EXTERN GType budgie_raven_interface_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint budgie_raven_interface_register_object (void* object,
                                              GDBusConnection* connection,
                                              const gchar* path,
                                              GError** error);
VALA_EXTERN GType budgie_notifications_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieNotificationsView, g_object_unref)
VALA_EXTERN BudgieNotificationsView* budgie_notifications_view_new (void);
VALA_EXTERN BudgieNotificationsView* budgie_notifications_view_construct (GType object_type);
VALA_EXTERN GType budgie_raven_widget_creation_result_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gpointer budgie_raven_plugin_manager_ref (gpointer instance);
VALA_EXTERN void budgie_raven_plugin_manager_unref (gpointer instance);
VALA_EXTERN GParamSpec* budgie_param_spec_raven_plugin_manager (const gchar* name,
                                                    const gchar* nick,
                                                    const gchar* blurb,
                                                    GType object_type,
                                                    GParamFlags flags);
VALA_EXTERN void budgie_value_set_raven_plugin_manager (GValue* value,
                                            gpointer v_object);
VALA_EXTERN void budgie_value_take_raven_plugin_manager (GValue* value,
                                             gpointer v_object);
VALA_EXTERN gpointer budgie_value_get_raven_plugin_manager (const GValue* value);
VALA_EXTERN GType budgie_raven_plugin_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieRavenPluginManager, budgie_raven_plugin_manager_unref)
VALA_EXTERN BudgieRavenPluginManager* budgie_raven_plugin_manager_new (void);
VALA_EXTERN BudgieRavenPluginManager* budgie_raven_plugin_manager_construct (GType object_type);
VALA_EXTERN void budgie_raven_plugin_manager_setup_plugins (BudgieRavenPluginManager* self);
VALA_EXTERN gboolean budgie_raven_plugin_manager_is_plugin_loaded (BudgieRavenPluginManager* self,
                                                       const gchar* module_name);
VALA_EXTERN GSettings* budgie_raven_plugin_manager_get_widget_info_from_uuid (BudgieRavenPluginManager* self,
                                                                  const gchar* uuid);
VALA_EXTERN void budgie_raven_plugin_manager_clear_widget_instance_info (BudgieRavenPluginManager* self,
                                                             const gchar* uuid);
VALA_EXTERN void budgie_raven_plugin_manager_clear_widget_instance_settings (BudgieRavenPluginManager* self,
                                                                 const gchar* uuid);
VALA_EXTERN gpointer budgie_raven_widget_data_ref (gpointer instance);
VALA_EXTERN void budgie_raven_widget_data_unref (gpointer instance);
VALA_EXTERN GParamSpec* budgie_param_spec_raven_widget_data (const gchar* name,
                                                 const gchar* nick,
                                                 const gchar* blurb,
                                                 GType object_type,
                                                 GParamFlags flags);
VALA_EXTERN void budgie_value_set_raven_widget_data (GValue* value,
                                         gpointer v_object);
VALA_EXTERN void budgie_value_take_raven_widget_data (GValue* value,
                                          gpointer v_object);
VALA_EXTERN gpointer budgie_value_get_raven_widget_data (const GValue* value);
VALA_EXTERN GType budgie_raven_widget_data_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieRavenWidgetData, budgie_raven_widget_data_unref)
VALA_EXTERN BudgieRavenWidgetCreationResult budgie_raven_plugin_manager_new_widget_instance_for_plugin (BudgieRavenPluginManager* self,
                                                                                            const gchar* module_name,
                                                                                            const gchar* existing_uuid,
                                                                                            BudgieRavenWidgetData** widget_data);
VALA_EXTERN GList* budgie_raven_plugin_manager_get_all_plugins (BudgieRavenPluginManager* self);
VALA_EXTERN void budgie_raven_plugin_manager_rescan_plugins (BudgieRavenPluginManager* self);
VALA_EXTERN void budgie_raven_plugin_manager_modprobe (BudgieRavenPluginManager* self,
                                           const gchar* module_name);
VALA_EXTERN BudgieRavenWidgetData* budgie_raven_widget_data_new (GtkBin* widget_instance,
                                                     PeasPluginInfo* plugin_info,
                                                     const gchar* uuid,
                                                     gboolean supports_settings);
VALA_EXTERN BudgieRavenWidgetData* budgie_raven_widget_data_construct (GType object_type,
                                                           GtkBin* widget_instance,
                                                           PeasPluginInfo* plugin_info,
                                                           const gchar* uuid,
                                                           gboolean supports_settings);
VALA_EXTERN GtkBin* budgie_raven_widget_data_get_widget_instance (BudgieRavenWidgetData* self);
VALA_EXTERN PeasPluginInfo* budgie_raven_widget_data_get_plugin_info (BudgieRavenWidgetData* self);
VALA_EXTERN const gchar* budgie_raven_widget_data_get_uuid (BudgieRavenWidgetData* self);
VALA_EXTERN gboolean budgie_raven_widget_data_get_supports_settings (BudgieRavenWidgetData* self);
VALA_EXTERN GType budgie_raven_position_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* budgie_raven_position_get_display_name (BudgieRavenPosition self);
VALA_EXTERN gchar* budgie_notification_sort_get_display_name (BudgieNotificationSort self);
VALA_EXTERN gpointer budgie_raven_iface_ref (gpointer instance);
VALA_EXTERN void budgie_raven_iface_unref (gpointer instance);
VALA_EXTERN GParamSpec* budgie_param_spec_raven_iface (const gchar* name,
                                           const gchar* nick,
                                           const gchar* blurb,
                                           GType object_type,
                                           GParamFlags flags);
VALA_EXTERN void budgie_value_set_raven_iface (GValue* value,
                                   gpointer v_object);
VALA_EXTERN void budgie_value_take_raven_iface (GValue* value,
                                    gpointer v_object);
VALA_EXTERN gpointer budgie_value_get_raven_iface (const GValue* value);
VALA_EXTERN GType budgie_raven_iface_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieRavenIface, budgie_raven_iface_unref)
VALA_EXTERN guint budgie_raven_iface_register_object (void* object,
                                          GDBusConnection* connection,
                                          const gchar* path,
                                          GError** error);
VALA_EXTERN GType budgie_raven_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieRaven, g_object_unref)
VALA_EXTERN BudgieRavenIface* budgie_raven_iface_new (BudgieRaven* parent);
VALA_EXTERN BudgieRavenIface* budgie_raven_iface_construct (GType object_type,
                                                BudgieRaven* parent);
VALA_EXTERN void budgie_raven_iface_ClearNotifications (BudgieRavenIface* self,
                                            GError** error);
VALA_EXTERN gboolean budgie_raven_iface_GetExpanded (BudgieRavenIface* self,
                                         GError** error);
VALA_EXTERN gboolean budgie_raven_iface_GetLeftAnchored (BudgieRavenIface* self,
                                             GError** error);
VALA_EXTERN void budgie_raven_iface_SetExpanded (BudgieRavenIface* self,
                                     gboolean b,
                                     GError** error);
VALA_EXTERN void budgie_raven_iface_Toggle (BudgieRavenIface* self,
                                GError** error);
VALA_EXTERN void budgie_raven_iface_ToggleAppletView (BudgieRavenIface* self,
                                          GError** error);
VALA_EXTERN void budgie_raven_iface_ToggleNotificationsView (BudgieRavenIface* self,
                                                 GError** error);
VALA_EXTERN void budgie_raven_iface_Dismiss (BudgieRavenIface* self,
                                 GError** error);
VALA_EXTERN guint budgie_raven_iface_GetNotificationCount (BudgieRavenIface* self,
                                               GError** error);
VALA_EXTERN gchar* budgie_raven_iface_get_version (BudgieRavenIface* self,
                                       GError** error);
VALA_EXTERN gboolean budgie_raven_iface_get_is_expanded (BudgieRavenIface* self);
VALA_EXTERN void budgie_raven_iface_set_is_expanded (BudgieRavenIface* self,
                                         gboolean value);
VALA_EXTERN void budgie_raven_ReadNotifications (BudgieRaven* self);
VALA_EXTERN void budgie_raven_UnreadNotifications (BudgieRaven* self);
VALA_EXTERN void budgie_raven_expose_main_view (BudgieRaven* self);
VALA_EXTERN void budgie_raven_expose_notification (BudgieRaven* self);
VALA_EXTERN BudgieRaven* budgie_raven_get_instance (void);
VALA_EXTERN void budgie_raven_set_notification_count (BudgieRaven* self,
                                          guint count);
VALA_EXTERN BudgieRaven* budgie_raven_new (BudgieDesktopManager* manager,
                               BudgieRavenPluginManager* plugin_manager);
VALA_EXTERN BudgieRaven* budgie_raven_construct (GType object_type,
                                     BudgieDesktopManager* manager,
                                     BudgieRavenPluginManager* plugin_manager);
VALA_EXTERN void budgie_raven_setup_dbus (BudgieRaven* self);
VALA_EXTERN void budgie_raven_update_geometry (BudgieRaven* self,
                                   GdkRectangle* rect);
VALA_EXTERN void budgie_raven_set_expanded (BudgieRaven* self,
                                gboolean exp);
VALA_EXTERN gboolean budgie_raven_get_expanded (BudgieRaven* self);
VALA_EXTERN void budgie_raven_update_uuids (BudgieRaven* self);
VALA_EXTERN BudgieRavenWidgetCreationResult budgie_raven_create_widget_instance (BudgieRaven* self,
                                                                     const gchar* module_name);
VALA_EXTERN GList* budgie_raven_get_existing_widgets (BudgieRaven* self);
VALA_EXTERN void budgie_raven_remove_widget (BudgieRaven* self,
                                 BudgieRavenWidgetData* widget_data);
VALA_EXTERN void budgie_raven_move_widget_by_offset (BudgieRaven* self,
                                         BudgieRavenWidgetData* widget_data,
                                         gint offset);
VALA_EXTERN GtkPositionType budgie_raven_get_screen_edge (BudgieRaven* self);
VALA_EXTERN void budgie_raven_set_screen_edge (BudgieRaven* self,
                                   GtkPositionType value);
VALA_EXTERN gint budgie_raven_get_required_size (BudgieRaven* self);
VALA_EXTERN void budgie_raven_set_required_size (BudgieRaven* self,
                                     gint value);
VALA_EXTERN BudgieDesktopManager* budgie_raven_get_manager (BudgieRaven* self);
VALA_EXTERN void budgie_raven_set_manager (BudgieRaven* self,
                               BudgieDesktopManager* value);
VALA_EXTERN gdouble budgie_raven_get_nscale (BudgieRaven* self);
VALA_EXTERN void budgie_raven_set_nscale (BudgieRaven* self,
                              gdouble value);

G_END_DECLS

#endif
