/* elementary-calendar.h generated by valac 0.42.6, the Vala compiler, do not modify */


#ifndef __CORE_ELEMENTARY_CALENDAR_H__
#define __CORE_ELEMENTARY_CALENDAR_H__

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <libedataserver/libedataserver.h>
#include <gee.h>
#include <gio/gio.h>
#include <gtk/gtk.h>
#include <libecal/libecal.h>
#include <granite.h>
#include <libical/ical.h>
#include <gdk/gdk.h>

G_BEGIN_DECLS


#define MAYA_TYPE_BACKEND (maya_backend_get_type ())
#define MAYA_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_TYPE_BACKEND, MayaBackend))
#define MAYA_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_TYPE_BACKEND))
#define MAYA_BACKEND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MAYA_TYPE_BACKEND, MayaBackendIface))

typedef struct _MayaBackend MayaBackend;
typedef struct _MayaBackendIface MayaBackendIface;

#define MAYA_TYPE_PLACEMENT_WIDGET (maya_placement_widget_get_type ())
#define MAYA_PLACEMENT_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_TYPE_PLACEMENT_WIDGET, MayaPlacementWidget))
#define MAYA_PLACEMENT_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAYA_TYPE_PLACEMENT_WIDGET, MayaPlacementWidgetClass))
#define MAYA_IS_PLACEMENT_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_TYPE_PLACEMENT_WIDGET))
#define MAYA_IS_PLACEMENT_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAYA_TYPE_PLACEMENT_WIDGET))
#define MAYA_PLACEMENT_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAYA_TYPE_PLACEMENT_WIDGET, MayaPlacementWidgetClass))

typedef struct _MayaPlacementWidget MayaPlacementWidget;
typedef struct _MayaPlacementWidgetClass MayaPlacementWidgetClass;

#define MAYA_TYPE_BACKENDS_MANAGER (maya_backends_manager_get_type ())
#define MAYA_BACKENDS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_TYPE_BACKENDS_MANAGER, MayaBackendsManager))
#define MAYA_BACKENDS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAYA_TYPE_BACKENDS_MANAGER, MayaBackendsManagerClass))
#define MAYA_IS_BACKENDS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_TYPE_BACKENDS_MANAGER))
#define MAYA_IS_BACKENDS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAYA_TYPE_BACKENDS_MANAGER))
#define MAYA_BACKENDS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAYA_TYPE_BACKENDS_MANAGER, MayaBackendsManagerClass))

typedef struct _MayaBackendsManager MayaBackendsManager;
typedef struct _MayaBackendsManagerClass MayaBackendsManagerClass;
typedef struct _MayaBackendsManagerPrivate MayaBackendsManagerPrivate;

#define MAYA_TYPE_LOCAL_BACKEND (maya_local_backend_get_type ())
#define MAYA_LOCAL_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_TYPE_LOCAL_BACKEND, MayaLocalBackend))
#define MAYA_LOCAL_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAYA_TYPE_LOCAL_BACKEND, MayaLocalBackendClass))
#define MAYA_IS_LOCAL_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_TYPE_LOCAL_BACKEND))
#define MAYA_IS_LOCAL_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAYA_TYPE_LOCAL_BACKEND))
#define MAYA_LOCAL_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAYA_TYPE_LOCAL_BACKEND, MayaLocalBackendClass))

typedef struct _MayaLocalBackend MayaLocalBackend;
typedef struct _MayaLocalBackendClass MayaLocalBackendClass;
typedef struct _MayaLocalBackendPrivate MayaLocalBackendPrivate;
typedef struct _MayaPlacementWidgetPrivate MayaPlacementWidgetPrivate;

#define MAYA_MODEL_TYPE_CALENDAR_MODEL (maya_model_calendar_model_get_type ())
#define MAYA_MODEL_CALENDAR_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_MODEL_TYPE_CALENDAR_MODEL, MayaModelCalendarModel))
#define MAYA_MODEL_CALENDAR_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAYA_MODEL_TYPE_CALENDAR_MODEL, MayaModelCalendarModelClass))
#define MAYA_MODEL_IS_CALENDAR_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_MODEL_TYPE_CALENDAR_MODEL))
#define MAYA_MODEL_IS_CALENDAR_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAYA_MODEL_TYPE_CALENDAR_MODEL))
#define MAYA_MODEL_CALENDAR_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAYA_MODEL_TYPE_CALENDAR_MODEL, MayaModelCalendarModelClass))

typedef struct _MayaModelCalendarModel MayaModelCalendarModel;
typedef struct _MayaModelCalendarModelClass MayaModelCalendarModelClass;
typedef struct _MayaModelCalendarModelPrivate MayaModelCalendarModelPrivate;

#define MAYA_UTIL_TYPE_DATE_RANGE (maya_util_date_range_get_type ())
#define MAYA_UTIL_DATE_RANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_UTIL_TYPE_DATE_RANGE, MayaUtilDateRange))
#define MAYA_UTIL_DATE_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAYA_UTIL_TYPE_DATE_RANGE, MayaUtilDateRangeClass))
#define MAYA_UTIL_IS_DATE_RANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_UTIL_TYPE_DATE_RANGE))
#define MAYA_UTIL_IS_DATE_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAYA_UTIL_TYPE_DATE_RANGE))
#define MAYA_UTIL_DATE_RANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAYA_UTIL_TYPE_DATE_RANGE, MayaUtilDateRangeClass))

typedef struct _MayaUtilDateRange MayaUtilDateRange;
typedef struct _MayaUtilDateRangeClass MayaUtilDateRangeClass;
typedef enum  {
	MAYA_SETTINGS_WEEKDAY_SUNDAY = 0,
	MAYA_SETTINGS_WEEKDAY_MONDAY,
	MAYA_SETTINGS_WEEKDAY_TUESDAY,
	MAYA_SETTINGS_WEEKDAY_WEDNESDAY,
	MAYA_SETTINGS_WEEKDAY_THURSDAY,
	MAYA_SETTINGS_WEEKDAY_FRIDAY,
	MAYA_SETTINGS_WEEKDAY_SATURDAY
} MayaSettingsWeekday;


#define MAYA_SETTINGS_TYPE_WEEKDAY (maya_settings_weekday_get_type ())

#define MAYA_SETTINGS_TYPE_MAYA_SETTINGS (maya_settings_maya_settings_get_type ())
#define MAYA_SETTINGS_MAYA_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_SETTINGS_TYPE_MAYA_SETTINGS, MayaSettingsMayaSettings))
#define MAYA_SETTINGS_MAYA_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAYA_SETTINGS_TYPE_MAYA_SETTINGS, MayaSettingsMayaSettingsClass))
#define MAYA_SETTINGS_IS_MAYA_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_SETTINGS_TYPE_MAYA_SETTINGS))
#define MAYA_SETTINGS_IS_MAYA_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAYA_SETTINGS_TYPE_MAYA_SETTINGS))
#define MAYA_SETTINGS_MAYA_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAYA_SETTINGS_TYPE_MAYA_SETTINGS, MayaSettingsMayaSettingsClass))

typedef struct _MayaSettingsMayaSettings MayaSettingsMayaSettings;
typedef struct _MayaSettingsMayaSettingsClass MayaSettingsMayaSettingsClass;
typedef struct _MayaSettingsMayaSettingsPrivate MayaSettingsMayaSettingsPrivate;

#define MAYA_SETTINGS_TYPE_SAVED_STATE (maya_settings_saved_state_get_type ())
#define MAYA_SETTINGS_SAVED_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_SETTINGS_TYPE_SAVED_STATE, MayaSettingsSavedState))
#define MAYA_SETTINGS_SAVED_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAYA_SETTINGS_TYPE_SAVED_STATE, MayaSettingsSavedStateClass))
#define MAYA_SETTINGS_IS_SAVED_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_SETTINGS_TYPE_SAVED_STATE))
#define MAYA_SETTINGS_IS_SAVED_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAYA_SETTINGS_TYPE_SAVED_STATE))
#define MAYA_SETTINGS_SAVED_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAYA_SETTINGS_TYPE_SAVED_STATE, MayaSettingsSavedStateClass))

typedef struct _MayaSettingsSavedState MayaSettingsSavedState;
typedef struct _MayaSettingsSavedStateClass MayaSettingsSavedStateClass;
typedef struct _MayaSettingsSavedStatePrivate MayaSettingsSavedStatePrivate;

#define MAYA_UTIL_TYPE_DATE_ITERATOR (maya_util_date_iterator_get_type ())
#define MAYA_UTIL_DATE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_UTIL_TYPE_DATE_ITERATOR, MayaUtilDateIterator))
#define MAYA_UTIL_DATE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAYA_UTIL_TYPE_DATE_ITERATOR, MayaUtilDateIteratorClass))
#define MAYA_UTIL_IS_DATE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_UTIL_TYPE_DATE_ITERATOR))
#define MAYA_UTIL_IS_DATE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAYA_UTIL_TYPE_DATE_ITERATOR))
#define MAYA_UTIL_DATE_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAYA_UTIL_TYPE_DATE_ITERATOR, MayaUtilDateIteratorClass))

typedef struct _MayaUtilDateIterator MayaUtilDateIterator;
typedef struct _MayaUtilDateIteratorClass MayaUtilDateIteratorClass;
typedef struct _MayaUtilDateIteratorPrivate MayaUtilDateIteratorPrivate;
typedef struct _MayaUtilDateRangePrivate MayaUtilDateRangePrivate;

#define MAYA_UTIL_TYPE_CSS (maya_util_css_get_type ())
#define MAYA_UTIL_CSS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAYA_UTIL_TYPE_CSS, MayaUtilCss))
#define MAYA_UTIL_CSS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAYA_UTIL_TYPE_CSS, MayaUtilCssClass))
#define MAYA_UTIL_IS_CSS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAYA_UTIL_TYPE_CSS))
#define MAYA_UTIL_IS_CSS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAYA_UTIL_TYPE_CSS))
#define MAYA_UTIL_CSS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAYA_UTIL_TYPE_CSS, MayaUtilCssClass))

typedef struct _MayaUtilCss MayaUtilCss;
typedef struct _MayaUtilCssClass MayaUtilCssClass;
typedef struct _MayaUtilCssPrivate MayaUtilCssPrivate;

struct _MayaBackendIface {
	GTypeInterface parent_iface;
	gchar* (*get_name) (MayaBackend* self);
	gchar* (*get_uid) (MayaBackend* self);
	GeeCollection* (*get_new_calendar_widget) (MayaBackend* self, ESource* to_edit);
	void (*add_new_calendar) (MayaBackend* self, const gchar* name, const gchar* color, gboolean set_default, GeeCollection* widgets);
	void (*modify_calendar) (MayaBackend* self, const gchar* name, const gchar* color, gboolean set_default, GeeCollection* widgets, ESource* source);
};

struct _MayaBackendsManager {
	GObject parent_instance;
	MayaBackendsManagerPrivate * priv;
	GeeArrayList* backends;
};

struct _MayaBackendsManagerClass {
	GObjectClass parent_class;
};

struct _MayaLocalBackend {
	GObject parent_instance;
	MayaLocalBackendPrivate * priv;
};

struct _MayaLocalBackendClass {
	GObjectClass parent_class;
};

struct _MayaPlacementWidget {
	GObject parent_instance;
	MayaPlacementWidgetPrivate * priv;
	GtkWidget* widget;
	gint row;
	gint column;
	gchar* ref_name;
	gboolean needed;
};

struct _MayaPlacementWidgetClass {
	GObjectClass parent_class;
};

struct _MayaModelCalendarModel {
	GObject parent_instance;
	MayaModelCalendarModelPrivate * priv;
	GQueue* calendar_trash;
};

struct _MayaModelCalendarModelClass {
	GObjectClass parent_class;
};

struct _MayaSettingsMayaSettings {
	GraniteServicesSettings parent_instance;
	MayaSettingsMayaSettingsPrivate * priv;
};

struct _MayaSettingsMayaSettingsClass {
	GraniteServicesSettingsClass parent_class;
};

struct _MayaSettingsSavedState {
	GraniteServicesSettings parent_instance;
	MayaSettingsSavedStatePrivate * priv;
};

struct _MayaSettingsSavedStateClass {
	GraniteServicesSettingsClass parent_class;
};

struct _MayaUtilDateIterator {
	GObject parent_instance;
	MayaUtilDateIteratorPrivate * priv;
};

struct _MayaUtilDateIteratorClass {
	GObjectClass parent_class;
};

struct _MayaUtilDateRange {
	GObject parent_instance;
	MayaUtilDateRangePrivate * priv;
};

struct _MayaUtilDateRangeClass {
	GObjectClass parent_class;
};

struct _MayaUtilCss {
	GTypeInstance parent_instance;
	volatile int ref_count;
	MayaUtilCssPrivate * priv;
};

struct _MayaUtilCssClass {
	GTypeClass parent_class;
	void (*finalize) (MayaUtilCss *self);
};


GType maya_placement_widget_get_type (void) G_GNUC_CONST;
GType maya_backend_get_type (void) G_GNUC_CONST;
gchar* maya_backend_get_name (MayaBackend* self);
gchar* maya_backend_get_uid (MayaBackend* self);
GeeCollection* maya_backend_get_new_calendar_widget (MayaBackend* self,
                                                     ESource* to_edit);
void maya_backend_add_new_calendar (MayaBackend* self,
                                    const gchar* name,
                                    const gchar* color,
                                    gboolean set_default,
                                    GeeCollection* widgets);
void maya_backend_modify_calendar (MayaBackend* self,
                                   const gchar* name,
                                   const gchar* color,
                                   gboolean set_default,
                                   GeeCollection* widgets,
                                   ESource* source);
GType maya_backends_manager_get_type (void) G_GNUC_CONST;
MayaBackendsManager* maya_backends_manager_get_default (void);
void maya_backends_manager_add_backend (MayaBackendsManager* self,
                                        MayaBackend* b);
void maya_backends_manager_remove_backend (MayaBackendsManager* self,
                                           MayaBackend* b);
GType maya_local_backend_get_type (void) G_GNUC_CONST;
void maya_local_backend_add_source (MayaLocalBackend* self,
                                    ESource* new_source,
                                    gboolean set_default,
                                    GAsyncReadyCallback _callback_,
                                    gpointer _user_data_);
void maya_local_backend_add_source_finish (MayaLocalBackend* self,
                                           GAsyncResult* _res_);
void maya_local_backend_set_source_default (MayaLocalBackend* self,
                                            ESource* source,
                                            GAsyncReadyCallback _callback_,
                                            gpointer _user_data_);
void maya_local_backend_set_source_default_finish (MayaLocalBackend* self,
                                                   GAsyncResult* _res_);
MayaLocalBackend* maya_local_backend_new (void);
MayaLocalBackend* maya_local_backend_construct (GType object_type);
MayaPlacementWidget* maya_placement_widget_new (void);
MayaPlacementWidget* maya_placement_widget_construct (GType object_type);
GeeLinkedList* maya_default_placement_widgets_get_user (gint row,
                                                        gboolean needed,
                                                        const gchar* entry_text,
                                                        const gchar* ph_text);
GeeLinkedList* maya_default_placement_widgets_get_email (gint row,
                                                         gboolean needed,
                                                         const gchar* entry_text,
                                                         const gchar* ph_text);
MayaPlacementWidget* maya_default_placement_widgets_get_keep_copy (gint row,
                                                                   gboolean default_value);
GType maya_model_calendar_model_get_type (void) G_GNUC_CONST;
MayaModelCalendarModel* maya_model_calendar_model_get_default (void);
void maya_model_calendar_model_open (MayaModelCalendarModel* self,
                                     GAsyncReadyCallback _callback_,
                                     gpointer _user_data_);
void maya_model_calendar_model_open_finish (MayaModelCalendarModel* self,
                                            GAsyncResult* _res_);
void maya_model_calendar_model_add_event (MayaModelCalendarModel* self,
                                          ESource* source,
                                          ECalComponent* event);
gboolean maya_model_calendar_model_calclient_is_readonly (MayaModelCalendarModel* self,
                                                          ESource* source);
void maya_model_calendar_model_update_event (MayaModelCalendarModel* self,
                                             ESource* source,
                                             ECalComponent* event,
                                             CalObjModType mod_type);
void maya_model_calendar_model_remove_event (MayaModelCalendarModel* self,
                                             ESource* source,
                                             ECalComponent* event,
                                             CalObjModType mod_type);
void maya_model_calendar_model_trash_calendar (MayaModelCalendarModel* self,
                                               ESource* source);
void maya_model_calendar_model_restore_calendar (MayaModelCalendarModel* self);
void maya_model_calendar_model_delete_trashed_calendars (MayaModelCalendarModel* self);
void maya_model_calendar_model_change_month (MayaModelCalendarModel* self,
                                             gint relative);
void maya_model_calendar_model_change_year (MayaModelCalendarModel* self,
                                            gint relative);
void maya_model_calendar_model_load_all_sources (MayaModelCalendarModel* self);
void maya_model_calendar_model_add_source (MayaModelCalendarModel* self,
                                           ESource* source);
void maya_model_calendar_model_remove_source (MayaModelCalendarModel* self,
                                              ESource* source);
GeeCollection* maya_model_calendar_model_get_events (MayaModelCalendarModel* self);
GType maya_util_date_range_get_type (void) G_GNUC_CONST;
MayaUtilDateRange* maya_model_calendar_model_get_data_range (MayaModelCalendarModel* self);
MayaUtilDateRange* maya_model_calendar_model_get_month_range (MayaModelCalendarModel* self);
ESourceRegistry* maya_model_calendar_model_get_registry (MayaModelCalendarModel* self);
GDateTime* maya_model_calendar_model_get_month_start (MayaModelCalendarModel* self);
void maya_model_calendar_model_set_month_start (MayaModelCalendarModel* self,
                                                GDateTime* value);
gint maya_model_calendar_model_get_num_weeks (MayaModelCalendarModel* self);
GType maya_settings_weekday_get_type (void) G_GNUC_CONST;
MayaSettingsWeekday maya_model_calendar_model_get_week_starts_on (MayaModelCalendarModel* self);
void maya_model_calendar_model_set_week_starts_on (MayaModelCalendarModel* self,
                                                   MayaSettingsWeekday value);
ECalComponent* maya_model_calendar_model_get_drag_component (MayaModelCalendarModel* self);
void maya_model_calendar_model_set_drag_component (MayaModelCalendarModel* self,
                                                   ECalComponent* value);
GType maya_settings_maya_settings_get_type (void) G_GNUC_CONST;
MayaSettingsMayaSettings* maya_settings_maya_settings_get_default (void);
gchar** maya_settings_maya_settings_get_plugins_disabled (MayaSettingsMayaSettings* self,
                                                          int* result_length1);
void maya_settings_maya_settings_set_plugins_disabled (MayaSettingsMayaSettings* self,
                                                       gchar** value,
                                                       int value_length1);
GType maya_settings_saved_state_get_type (void) G_GNUC_CONST;
MayaSettingsSavedState* maya_settings_saved_state_get_default (void);
GDateTime* maya_settings_saved_state_get_page (MayaSettingsSavedState* self);
GDateTime* maya_settings_saved_state_get_selected (MayaSettingsSavedState* self);
gboolean maya_settings_saved_state_get_show_weeks (MayaSettingsSavedState* self);
void maya_settings_saved_state_set_show_weeks (MayaSettingsSavedState* self,
                                               gboolean value);
const gchar* maya_settings_saved_state_get_month_page (MayaSettingsSavedState* self);
void maya_settings_saved_state_set_month_page (MayaSettingsSavedState* self,
                                               const gchar* value);
const gchar* maya_settings_saved_state_get_selected_day (MayaSettingsSavedState* self);
void maya_settings_saved_state_set_selected_day (MayaSettingsSavedState* self,
                                                 const gchar* value);
GType maya_util_date_iterator_get_type (void) G_GNUC_CONST;
MayaUtilDateIterator* maya_util_date_iterator_new (MayaUtilDateRange* range);
MayaUtilDateIterator* maya_util_date_iterator_construct (GType object_type,
                                                         MayaUtilDateRange* range);
gboolean maya_util_date_iterator_first (MayaUtilDateIterator* self);
MayaUtilDateRange* maya_util_date_range_new (GDateTime* first,
                                             GDateTime* last);
MayaUtilDateRange* maya_util_date_range_construct (GType object_type,
                                                   GDateTime* first,
                                                   GDateTime* last);
MayaUtilDateRange* maya_util_date_range_new_copy (MayaUtilDateRange* date_range);
MayaUtilDateRange* maya_util_date_range_construct_copy (GType object_type,
                                                        MayaUtilDateRange* date_range);
gboolean maya_util_date_range_equals (MayaUtilDateRange* self,
                                      MayaUtilDateRange* other);
gboolean maya_util_date_range_contains (MayaUtilDateRange* self,
                                        GDateTime* time);
GeeSortedSet* maya_util_date_range_to_set (MayaUtilDateRange* self);
GeeList* maya_util_date_range_to_list (MayaUtilDateRange* self);
GDateTime* maya_util_date_range_get_first_dt (MayaUtilDateRange* self);
GDateTime* maya_util_date_range_get_last_dt (MayaUtilDateRange* self);
gint64 maya_util_date_range_get_days (MayaUtilDateRange* self);
gint maya_util_compare_events (ECalComponent* comp1,
                               ECalComponent* comp2);
struct icaltimetype maya_util_date_time_to_ical (GDateTime* date,
                                                 GDateTime* time_local,
                                                 const gchar* timezone);
GDateTime* maya_util_ical_to_date_time (struct icaltimetype date);
void maya_util_get_local_datetimes_from_icalcomponent (icalcomponent* comp,
                                                       GDateTime* * start_date,
                                                       GDateTime* * end_date);
gboolean maya_util_is_event_in_range (icalcomponent* comp,
                                      MayaUtilDateRange* view_range);
gboolean maya_util_is_day_in_range (GDateTime* day,
                                    MayaUtilDateRange* range);
GeeCollection* maya_util_event_date_ranges (icalcomponent* comp,
                                            MayaUtilDateRange* view_range);
gboolean maya_util_is_multiday_event (icalcomponent* comp);
gboolean maya_util_is_all_day (GDateTime* dtstart,
                               GDateTime* dtend);
GDateTime* maya_util_get_start_of_month (GDateTime* date);
GDateTime* maya_util_strip_time (GDateTime* datetime);
gpointer maya_util_css_ref (gpointer instance);
void maya_util_css_unref (gpointer instance);
GParamSpec* maya_util_param_spec_css (const gchar* name,
                                      const gchar* nick,
                                      const gchar* blurb,
                                      GType object_type,
                                      GParamFlags flags);
void maya_util_value_set_css (GValue* value,
                              gpointer v_object);
void maya_util_value_take_css (GValue* value,
                               gpointer v_object);
gpointer maya_util_value_get_css (const GValue* value);
GType maya_util_css_get_type (void) G_GNUC_CONST;
GtkCssProvider* maya_util_css_get_css_provider (void);
MayaUtilCss* maya_util_css_new (void);
MayaUtilCss* maya_util_css_construct (GType object_type);
gchar* maya_util_get_source_location (ESource* source);
void maya_util_save_temp_selected_calendars (void);
#define MAYA_UTIL_SHOW_WEEKS_SCHEMA "io.elementary.desktop.wingpanel.datetime"
gboolean maya_util_show_weeks (void);
void maya_util_toggle_show_weeks (void);
gboolean maya_gestures_utils_on_scroll_event (GdkEventScroll* event);
void maya_gestures_utils_reset_timer (GAsyncReadyCallback _callback_,
                                      gpointer _user_data_);
void maya_gestures_utils_reset_timer_finish (GAsyncResult* _res_);
#define BUILD_APP_NAME "Calendar"
#define BUILD_EXEC_NAME "io.elementary.calendar"
#define BUILD_PLUGIN_DIR "/usr/lib/io.elementary.calendar/plugins"


G_END_DECLS

#endif
