/* libgitg-ext.h generated by valac 0.25.1.21-9d0d5, the Vala compiler, do not modify */


#ifndef __LIBGITG_EXT_LIBGITG_EXT_H__
#define __LIBGITG_EXT_LIBGITG_EXT_H__

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>
#include "libgitg/libgitg.h"
#include <gtk/gtk.h>
#include <gee.h>
#include <libgit2-glib/ggit.h>

G_BEGIN_DECLS


#define GITG_EXT_TYPE_REF_ACTION_INTERFACE (gitg_ext_ref_action_interface_get_type ())
#define GITG_EXT_REF_ACTION_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_REF_ACTION_INTERFACE, GitgExtRefActionInterface))
#define GITG_EXT_IS_REF_ACTION_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_REF_ACTION_INTERFACE))
#define GITG_EXT_REF_ACTION_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_REF_ACTION_INTERFACE, GitgExtRefActionInterfaceIface))

typedef struct _GitgExtRefActionInterface GitgExtRefActionInterface;
typedef struct _GitgExtRefActionInterfaceIface GitgExtRefActionInterfaceIface;

#define GITG_EXT_TYPE_APPLICATION (gitg_ext_application_get_type ())
#define GITG_EXT_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_APPLICATION, GitgExtApplication))
#define GITG_EXT_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_APPLICATION))
#define GITG_EXT_APPLICATION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_APPLICATION, GitgExtApplicationIface))

typedef struct _GitgExtApplication GitgExtApplication;
typedef struct _GitgExtApplicationIface GitgExtApplicationIface;

#define GITG_EXT_TYPE_UI_ELEMENT (gitg_ext_ui_element_get_type ())
#define GITG_EXT_UI_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_UI_ELEMENT, GitgExtUIElement))
#define GITG_EXT_IS_UI_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_UI_ELEMENT))
#define GITG_EXT_UI_ELEMENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_UI_ELEMENT, GitgExtUIElementIface))

typedef struct _GitgExtUIElement GitgExtUIElement;
typedef struct _GitgExtUIElementIface GitgExtUIElementIface;

#define GITG_EXT_TYPE_ACTIVITY (gitg_ext_activity_get_type ())
#define GITG_EXT_ACTIVITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_ACTIVITY, GitgExtActivity))
#define GITG_EXT_IS_ACTIVITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_ACTIVITY))
#define GITG_EXT_ACTIVITY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_ACTIVITY, GitgExtActivityIface))

typedef struct _GitgExtActivity GitgExtActivity;
typedef struct _GitgExtActivityIface GitgExtActivityIface;

#define GITG_EXT_TYPE_USER_QUERY (gitg_ext_user_query_get_type ())
#define GITG_EXT_USER_QUERY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_USER_QUERY, GitgExtUserQuery))
#define GITG_EXT_USER_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_EXT_TYPE_USER_QUERY, GitgExtUserQueryClass))
#define GITG_EXT_IS_USER_QUERY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_USER_QUERY))
#define GITG_EXT_IS_USER_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_EXT_TYPE_USER_QUERY))
#define GITG_EXT_USER_QUERY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_EXT_TYPE_USER_QUERY, GitgExtUserQueryClass))

typedef struct _GitgExtUserQuery GitgExtUserQuery;
typedef struct _GitgExtUserQueryClass GitgExtUserQueryClass;

#define GITG_EXT_TYPE_MESSAGE_BUS (gitg_ext_message_bus_get_type ())
#define GITG_EXT_MESSAGE_BUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_MESSAGE_BUS, GitgExtMessageBus))
#define GITG_EXT_MESSAGE_BUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_EXT_TYPE_MESSAGE_BUS, GitgExtMessageBusClass))
#define GITG_EXT_IS_MESSAGE_BUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_MESSAGE_BUS))
#define GITG_EXT_IS_MESSAGE_BUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_EXT_TYPE_MESSAGE_BUS))
#define GITG_EXT_MESSAGE_BUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_EXT_TYPE_MESSAGE_BUS, GitgExtMessageBusClass))

typedef struct _GitgExtMessageBus GitgExtMessageBus;
typedef struct _GitgExtMessageBusClass GitgExtMessageBusClass;

#define GITG_EXT_TYPE_ACTION (gitg_ext_action_get_type ())
#define GITG_EXT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_ACTION, GitgExtAction))
#define GITG_EXT_IS_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_ACTION))
#define GITG_EXT_ACTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_ACTION, GitgExtActionIface))

typedef struct _GitgExtAction GitgExtAction;
typedef struct _GitgExtActionIface GitgExtActionIface;

#define GITG_EXT_TYPE_COMMIT_ACTION (gitg_ext_commit_action_get_type ())
#define GITG_EXT_COMMIT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_COMMIT_ACTION, GitgExtCommitAction))
#define GITG_EXT_IS_COMMIT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_COMMIT_ACTION))
#define GITG_EXT_COMMIT_ACTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_COMMIT_ACTION, GitgExtCommitActionIface))

typedef struct _GitgExtCommitAction GitgExtCommitAction;
typedef struct _GitgExtCommitActionIface GitgExtCommitActionIface;

#define GITG_EXT_TYPE_REF_ACTION (gitg_ext_ref_action_get_type ())
#define GITG_EXT_REF_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_REF_ACTION, GitgExtRefAction))
#define GITG_EXT_IS_REF_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_REF_ACTION))
#define GITG_EXT_REF_ACTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_REF_ACTION, GitgExtRefActionIface))

typedef struct _GitgExtRefAction GitgExtRefAction;
typedef struct _GitgExtRefActionIface GitgExtRefActionIface;

#define GITG_EXT_TYPE_MESSAGE_ID (gitg_ext_message_id_get_type ())
#define GITG_EXT_MESSAGE_ID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_MESSAGE_ID, GitgExtMessageId))
#define GITG_EXT_MESSAGE_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_EXT_TYPE_MESSAGE_ID, GitgExtMessageIdClass))
#define GITG_EXT_IS_MESSAGE_ID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_MESSAGE_ID))
#define GITG_EXT_IS_MESSAGE_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_EXT_TYPE_MESSAGE_ID))
#define GITG_EXT_MESSAGE_ID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_EXT_TYPE_MESSAGE_ID, GitgExtMessageIdClass))

typedef struct _GitgExtMessageId GitgExtMessageId;
typedef struct _GitgExtMessageIdClass GitgExtMessageIdClass;
typedef struct _GitgExtMessageIdPrivate GitgExtMessageIdPrivate;

#define GITG_EXT_TYPE_MESSAGE (gitg_ext_message_get_type ())
#define GITG_EXT_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_MESSAGE, GitgExtMessage))
#define GITG_EXT_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_EXT_TYPE_MESSAGE, GitgExtMessageClass))
#define GITG_EXT_IS_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_MESSAGE))
#define GITG_EXT_IS_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_EXT_TYPE_MESSAGE))
#define GITG_EXT_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_EXT_TYPE_MESSAGE, GitgExtMessageClass))

typedef struct _GitgExtMessage GitgExtMessage;
typedef struct _GitgExtMessageClass GitgExtMessageClass;
typedef struct _GitgExtMessagePrivate GitgExtMessagePrivate;
typedef struct _GitgExtMessageBusPrivate GitgExtMessageBusPrivate;

#define GITG_EXT_TYPE_HISTORY (gitg_ext_history_get_type ())
#define GITG_EXT_HISTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_HISTORY, GitgExtHistory))
#define GITG_EXT_IS_HISTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_HISTORY))
#define GITG_EXT_HISTORY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_HISTORY, GitgExtHistoryIface))

typedef struct _GitgExtHistory GitgExtHistory;
typedef struct _GitgExtHistoryIface GitgExtHistoryIface;

#define GITG_EXT_TYPE_HISTORY_PANEL (gitg_ext_history_panel_get_type ())
#define GITG_EXT_HISTORY_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_HISTORY_PANEL, GitgExtHistoryPanel))
#define GITG_EXT_IS_HISTORY_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_HISTORY_PANEL))
#define GITG_EXT_HISTORY_PANEL_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_HISTORY_PANEL, GitgExtHistoryPanelIface))

typedef struct _GitgExtHistoryPanel GitgExtHistoryPanel;
typedef struct _GitgExtHistoryPanelIface GitgExtHistoryPanelIface;

#define GITG_EXT_TYPE_COMMAND_LINE (gitg_ext_command_line_get_type ())
#define GITG_EXT_COMMAND_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_COMMAND_LINE, GitgExtCommandLine))
#define GITG_EXT_IS_COMMAND_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_COMMAND_LINE))
#define GITG_EXT_COMMAND_LINE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_COMMAND_LINE, GitgExtCommandLineIface))

typedef struct _GitgExtCommandLine GitgExtCommandLine;
typedef struct _GitgExtCommandLineIface GitgExtCommandLineIface;

#define GITG_EXT_TYPE_PREFERENCES (gitg_ext_preferences_get_type ())
#define GITG_EXT_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_PREFERENCES, GitgExtPreferences))
#define GITG_EXT_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_PREFERENCES))
#define GITG_EXT_PREFERENCES_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_PREFERENCES, GitgExtPreferencesIface))

typedef struct _GitgExtPreferences GitgExtPreferences;
typedef struct _GitgExtPreferencesIface GitgExtPreferencesIface;

#define GITG_EXT_TYPE_SEARCHABLE (gitg_ext_searchable_get_type ())
#define GITG_EXT_SEARCHABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_SEARCHABLE, GitgExtSearchable))
#define GITG_EXT_IS_SEARCHABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_SEARCHABLE))
#define GITG_EXT_SEARCHABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_SEARCHABLE, GitgExtSearchableIface))

typedef struct _GitgExtSearchable GitgExtSearchable;
typedef struct _GitgExtSearchableIface GitgExtSearchableIface;

#define GITG_EXT_TYPE_SELECTION_MODE (gitg_ext_selection_mode_get_type ())

#define GITG_EXT_TYPE_SELECTABLE (gitg_ext_selectable_get_type ())
#define GITG_EXT_SELECTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_SELECTABLE, GitgExtSelectable))
#define GITG_EXT_IS_SELECTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_SELECTABLE))
#define GITG_EXT_SELECTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_EXT_TYPE_SELECTABLE, GitgExtSelectableIface))

typedef struct _GitgExtSelectable GitgExtSelectable;
typedef struct _GitgExtSelectableIface GitgExtSelectableIface;

#define GITG_EXT_TYPE_UI (gitg_ext_ui_get_type ())
#define GITG_EXT_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_UI, GitgExtUI))
#define GITG_EXT_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_EXT_TYPE_UI, GitgExtUIClass))
#define GITG_EXT_IS_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_UI))
#define GITG_EXT_IS_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_EXT_TYPE_UI))
#define GITG_EXT_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_EXT_TYPE_UI, GitgExtUIClass))

typedef struct _GitgExtUI GitgExtUI;
typedef struct _GitgExtUIClass GitgExtUIClass;
typedef struct _GitgExtUIPrivate GitgExtUIPrivate;

#define GITG_EXT_TYPE_USER_QUERY_RESPONSE (gitg_ext_user_query_response_get_type ())
#define GITG_EXT_USER_QUERY_RESPONSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_EXT_TYPE_USER_QUERY_RESPONSE, GitgExtUserQueryResponse))
#define GITG_EXT_USER_QUERY_RESPONSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_EXT_TYPE_USER_QUERY_RESPONSE, GitgExtUserQueryResponseClass))
#define GITG_EXT_IS_USER_QUERY_RESPONSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_EXT_TYPE_USER_QUERY_RESPONSE))
#define GITG_EXT_IS_USER_QUERY_RESPONSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_EXT_TYPE_USER_QUERY_RESPONSE))
#define GITG_EXT_USER_QUERY_RESPONSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_EXT_TYPE_USER_QUERY_RESPONSE, GitgExtUserQueryResponseClass))

typedef struct _GitgExtUserQueryResponse GitgExtUserQueryResponse;
typedef struct _GitgExtUserQueryResponseClass GitgExtUserQueryResponseClass;
typedef struct _GitgExtUserQueryResponsePrivate GitgExtUserQueryResponsePrivate;
typedef struct _GitgExtUserQueryPrivate GitgExtUserQueryPrivate;

typedef void (*GitgExtRefNameEditingDone) (const gchar* new_name, gboolean cancelled, void* user_data);
struct _GitgExtUIElementIface {
	GTypeInterface parent_iface;
	gint (*negotiate_order) (GitgExtUIElement* self, GitgExtUIElement* other);
	void (*activate) (GitgExtUIElement* self);
	GitgExtApplication* (*get_application) (GitgExtUIElement* self);
	void (*set_application) (GitgExtUIElement* self, GitgExtApplication* value);
	gchar* (*get_id) (GitgExtUIElement* self);
	gchar* (*get_display_name) (GitgExtUIElement* self);
	gchar* (*get_description) (GitgExtUIElement* self);
	gchar* (*get_icon) (GitgExtUIElement* self);
	GtkWidget* (*get_widget) (GitgExtUIElement* self);
	gboolean (*get_available) (GitgExtUIElement* self);
	gboolean (*get_enabled) (GitgExtUIElement* self);
};

struct _GitgExtActivityIface {
	GTypeInterface parent_iface;
	gboolean (*is_default_for) (GitgExtActivity* self, const gchar* action);
};

struct _GitgExtApplicationIface {
	GTypeInterface parent_iface;
	GitgExtActivity* (*activity) (GitgExtApplication* self, const gchar* id);
	void (*user_query) (GitgExtApplication* self, GitgExtUserQuery* query);
	void (*show_infobar) (GitgExtApplication* self, const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType type);
	GitgRepository* (*get_repository) (GitgExtApplication* self);
	void (*set_repository) (GitgExtApplication* self, GitgRepository* value);
	GitgExtMessageBus* (*get_message_bus) (GitgExtApplication* self);
	GitgExtActivity* (*get_current_activity) (GitgExtApplication* self);
	gboolean (*get_busy) (GitgExtApplication* self);
	void (*set_busy) (GitgExtApplication* self, gboolean value);
	GeeMap* (*get_environment) (GitgExtApplication* self);
};

struct _GitgExtRefActionInterfaceIface {
	GTypeInterface parent_iface;
	void (*add_ref) (GitgExtRefActionInterface* self, GitgRef* reference);
	void (*remove_ref) (GitgExtRefActionInterface* self, GitgRef* reference);
	void (*replace_ref) (GitgExtRefActionInterface* self, GitgRef* old_ref, GitgRef* new_ref);
	void (*set_busy) (GitgExtRefActionInterface* self, GitgRef* reference, gboolean busy);
	void (*edit_ref_name) (GitgExtRefActionInterface* self, GitgRef* reference, GitgExtRefNameEditingDone callback, void* callback_target, GDestroyNotify callback_target_destroy_notify);
	GitgExtApplication* (*get_application) (GitgExtRefActionInterface* self);
	void (*set_application) (GitgExtRefActionInterface* self, GitgExtApplication* value);
};

struct _GitgExtActionIface {
	GTypeInterface parent_iface;
	void (*populate_menu) (GitgExtAction* self, GtkMenu* menu);
};

struct _GitgExtCommitActionIface {
	GTypeInterface parent_iface;
	GitgExtRefActionInterface* (*get_action_interface) (GitgExtCommitAction* self);
	void (*set_action_interface) (GitgExtCommitAction* self, GitgExtRefActionInterface* value);
	GitgCommit* (*get_commit) (GitgExtCommitAction* self);
	void (*set_commit) (GitgExtCommitAction* self, GitgCommit* value);
};

struct _GitgExtRefActionIface {
	GTypeInterface parent_iface;
	GitgExtRefActionInterface* (*get_action_interface) (GitgExtRefAction* self);
	void (*set_action_interface) (GitgExtRefAction* self, GitgExtRefActionInterface* value);
	GitgRef* (*get_reference) (GitgExtRefAction* self);
	void (*set_reference) (GitgExtRefAction* self, GitgRef* value);
};

struct _GitgExtMessageId {
	GObject parent_instance;
	GitgExtMessageIdPrivate * priv;
};

struct _GitgExtMessageIdClass {
	GObjectClass parent_class;
};

struct _GitgExtMessage {
	GObject parent_instance;
	GitgExtMessagePrivate * priv;
};

struct _GitgExtMessageClass {
	GObjectClass parent_class;
};

typedef void (*GitgExtMessageCallback) (GitgExtMessage* message, void* user_data);
struct _GitgExtMessageBus {
	GObject parent_instance;
	GitgExtMessageBusPrivate * priv;
};

struct _GitgExtMessageBusClass {
	GObjectClass parent_class;
	void (*dispatch) (GitgExtMessageBus* self, GitgExtMessage* message);
};

typedef gboolean (*GitgExtForeachCommitSelectionFunc) (GgitCommit* object, void* user_data);
struct _GitgExtHistoryIface {
	GTypeInterface parent_iface;
	void (*foreach_selected) (GitgExtHistory* self, GitgExtForeachCommitSelectionFunc func, void* func_target);
};

struct _GitgExtHistoryPanelIface {
	GTypeInterface parent_iface;
	GitgExtHistory* (*get_history) (GitgExtHistoryPanel* self);
	void (*set_history) (GitgExtHistoryPanel* self, GitgExtHistory* value);
};

struct _GitgExtCommandLineIface {
	GTypeInterface parent_iface;
	GOptionGroup* (*get_option_group) (GitgExtCommandLine* self);
};

struct _GitgExtPreferencesIface {
	GTypeInterface parent_iface;
	gchar* (*get_id) (GitgExtPreferences* self);
	gchar* (*get_display_name) (GitgExtPreferences* self);
	GtkWidget* (*get_widget) (GitgExtPreferences* self);
};

struct _GitgExtSearchableIface {
	GTypeInterface parent_iface;
	gchar* (*get_search_text) (GitgExtSearchable* self);
	void (*set_search_text) (GitgExtSearchable* self, const gchar* value);
	gboolean (*get_search_visible) (GitgExtSearchable* self);
	void (*set_search_visible) (GitgExtSearchable* self, gboolean value);
	gboolean (*get_search_enabled) (GitgExtSearchable* self);
	void (*set_search_enabled) (GitgExtSearchable* self, gboolean value);
};

typedef enum  {
	GITG_EXT_SELECTION_MODE_NORMAL,
	GITG_EXT_SELECTION_MODE_SELECTION
} GitgExtSelectionMode;

struct _GitgExtSelectableIface {
	GTypeInterface parent_iface;
	GitgExtSelectionMode (*get_selectable_mode) (GitgExtSelectable* self);
	void (*set_selectable_mode) (GitgExtSelectable* self, GitgExtSelectionMode value);
	GtkWidget* (*get_action_widget) (GitgExtSelectable* self);
};

struct _GitgExtUI {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GitgExtUIPrivate * priv;
};

struct _GitgExtUIClass {
	GTypeClass parent_class;
	void (*finalize) (GitgExtUI *self);
};

struct _GitgExtUserQueryResponse {
	GObject parent_instance;
	GitgExtUserQueryResponsePrivate * priv;
	gchar* text;
	GtkResponseType response_type;
};

struct _GitgExtUserQueryResponseClass {
	GObjectClass parent_class;
};

struct _GitgExtUserQuery {
	GObject parent_instance;
	GitgExtUserQueryPrivate * priv;
};

struct _GitgExtUserQueryClass {
	GObjectClass parent_class;
};


GType gitg_ext_ui_element_get_type (void) G_GNUC_CONST;
GType gitg_ext_activity_get_type (void) G_GNUC_CONST;
GType gitg_ext_user_query_get_type (void) G_GNUC_CONST;
GType gitg_ext_message_bus_get_type (void) G_GNUC_CONST;
GType gitg_ext_application_get_type (void) G_GNUC_CONST;
GType gitg_ext_ref_action_interface_get_type (void) G_GNUC_CONST;
void gitg_ext_ref_action_interface_add_ref (GitgExtRefActionInterface* self, GitgRef* reference);
void gitg_ext_ref_action_interface_remove_ref (GitgExtRefActionInterface* self, GitgRef* reference);
void gitg_ext_ref_action_interface_replace_ref (GitgExtRefActionInterface* self, GitgRef* old_ref, GitgRef* new_ref);
void gitg_ext_ref_action_interface_set_busy (GitgExtRefActionInterface* self, GitgRef* reference, gboolean busy);
void gitg_ext_ref_action_interface_edit_ref_name (GitgExtRefActionInterface* self, GitgRef* reference, GitgExtRefNameEditingDone callback, void* callback_target, GDestroyNotify callback_target_destroy_notify);
GitgExtApplication* gitg_ext_ref_action_interface_get_application (GitgExtRefActionInterface* self);
void gitg_ext_ref_action_interface_set_application (GitgExtRefActionInterface* self, GitgExtApplication* value);
GType gitg_ext_action_get_type (void) G_GNUC_CONST;
void gitg_ext_action_populate_menu (GitgExtAction* self, GtkMenu* menu);
GType gitg_ext_commit_action_get_type (void) G_GNUC_CONST;
GitgExtRefActionInterface* gitg_ext_commit_action_get_action_interface (GitgExtCommitAction* self);
void gitg_ext_commit_action_set_action_interface (GitgExtCommitAction* self, GitgExtRefActionInterface* value);
GitgCommit* gitg_ext_commit_action_get_commit (GitgExtCommitAction* self);
void gitg_ext_commit_action_set_commit (GitgExtCommitAction* self, GitgCommit* value);
GType gitg_ext_ref_action_get_type (void) G_GNUC_CONST;
GitgExtRefActionInterface* gitg_ext_ref_action_get_action_interface (GitgExtRefAction* self);
void gitg_ext_ref_action_set_action_interface (GitgExtRefAction* self, GitgExtRefActionInterface* value);
GitgRef* gitg_ext_ref_action_get_reference (GitgExtRefAction* self);
void gitg_ext_ref_action_set_reference (GitgExtRefAction* self, GitgRef* value);
GitgExtActivity* gitg_ext_application_activity (GitgExtApplication* self, const gchar* id);
void gitg_ext_application_user_query (GitgExtApplication* self, GitgExtUserQuery* query);
void gitg_ext_application_show_infobar (GitgExtApplication* self, const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType type);
GitgRepository* gitg_ext_application_get_repository (GitgExtApplication* self);
void gitg_ext_application_set_repository (GitgExtApplication* self, GitgRepository* value);
GitgExtMessageBus* gitg_ext_application_get_message_bus (GitgExtApplication* self);
GitgExtActivity* gitg_ext_application_get_current_activity (GitgExtApplication* self);
gboolean gitg_ext_application_get_busy (GitgExtApplication* self);
void gitg_ext_application_set_busy (GitgExtApplication* self, gboolean value);
GeeMap* gitg_ext_application_get_environment (GitgExtApplication* self);
gint gitg_ext_ui_element_negotiate_order (GitgExtUIElement* self, GitgExtUIElement* other);
GitgExtApplication* gitg_ext_ui_element_get_application (GitgExtUIElement* self);
void gitg_ext_ui_element_set_application (GitgExtUIElement* self, GitgExtApplication* value);
gchar* gitg_ext_ui_element_get_id (GitgExtUIElement* self);
gchar* gitg_ext_ui_element_get_display_name (GitgExtUIElement* self);
gchar* gitg_ext_ui_element_get_description (GitgExtUIElement* self);
gchar* gitg_ext_ui_element_get_icon (GitgExtUIElement* self);
GtkWidget* gitg_ext_ui_element_get_widget (GitgExtUIElement* self);
gboolean gitg_ext_ui_element_get_available (GitgExtUIElement* self);
gboolean gitg_ext_ui_element_get_enabled (GitgExtUIElement* self);
gboolean gitg_ext_activity_is_default_for (GitgExtActivity* self, const gchar* action);
GType gitg_ext_message_id_get_type (void) G_GNUC_CONST;
guint gitg_ext_message_id_hash (GitgExtMessageId* self);
gboolean gitg_ext_message_id_equal (GitgExtMessageId* self, GitgExtMessageId* other);
GitgExtMessageId* gitg_ext_message_id_new (const gchar* object_path, const gchar* method);
GitgExtMessageId* gitg_ext_message_id_construct (GType object_type, const gchar* object_path, const gchar* method);
GitgExtMessageId* gitg_ext_message_id_copy (GitgExtMessageId* self);
gboolean gitg_ext_message_id_valid_object_path (const gchar* path);
const gchar* gitg_ext_message_id_get_object_path (GitgExtMessageId* self);
void gitg_ext_message_id_set_object_path (GitgExtMessageId* self, const gchar* value);
const gchar* gitg_ext_message_id_get_method (GitgExtMessageId* self);
void gitg_ext_message_id_set_method (GitgExtMessageId* self, const gchar* value);
gchar* gitg_ext_message_id_get_id (GitgExtMessageId* self);
GType gitg_ext_message_get_type (void) G_GNUC_CONST;
gboolean gitg_ext_message_has (GitgExtMessage* self, const gchar* propname);
gboolean gitg_ext_message_type_has (GType type, const gchar* propname);
gboolean gitg_ext_message_type_check (GType type, const gchar* propname, GType value_type);
GitgExtMessage* gitg_ext_message_construct (GType object_type);
GitgExtMessageId* gitg_ext_message_get_id (GitgExtMessage* self);
void gitg_ext_message_set_id (GitgExtMessage* self, GitgExtMessageId* value);
GitgExtMessageBus* gitg_ext_message_bus_new (void);
GitgExtMessageBus* gitg_ext_message_bus_construct (GType object_type);
GitgExtMessageBus* gitg_ext_message_bus_get_default (void);
GType gitg_ext_message_bus_lookup (GitgExtMessageBus* self, GitgExtMessageId* id);
void gitg_ext_message_bus_register (GitgExtMessageBus* self, GType message_type, GitgExtMessageId* id);
void gitg_ext_message_bus_unregister (GitgExtMessageBus* self, GitgExtMessageId* id);
void gitg_ext_message_bus_unregister_all (GitgExtMessageBus* self, const gchar* object_path);
gboolean gitg_ext_message_bus_is_registered (GitgExtMessageBus* self, GitgExtMessageId* id);
guint gitg_ext_message_bus_connect (GitgExtMessageBus* self, GitgExtMessageId* id, GitgExtMessageCallback callback, void* callback_target, GDestroyNotify callback_target_destroy_notify);
void gitg_ext_message_bus_disconnect (GitgExtMessageBus* self, guint id);
void gitg_ext_message_bus_block (GitgExtMessageBus* self, guint id);
void gitg_ext_message_bus_unblock (GitgExtMessageBus* self, guint id);
GitgExtMessage* gitg_ext_message_bus_send_message (GitgExtMessageBus* self, GitgExtMessage* message);
GitgExtMessage* gitg_ext_message_bus_send (GitgExtMessageBus* self, GitgExtMessageId* id, const gchar* firstprop, ...);
GType gitg_ext_history_get_type (void) G_GNUC_CONST;
void gitg_ext_history_foreach_selected (GitgExtHistory* self, GitgExtForeachCommitSelectionFunc func, void* func_target);
GType gitg_ext_history_panel_get_type (void) G_GNUC_CONST;
GitgExtHistory* gitg_ext_history_panel_get_history (GitgExtHistoryPanel* self);
void gitg_ext_history_panel_set_history (GitgExtHistoryPanel* self, GitgExtHistory* value);
GType gitg_ext_command_line_get_type (void) G_GNUC_CONST;
GOptionGroup* gitg_ext_command_line_get_option_group (GitgExtCommandLine* self);
GType gitg_ext_preferences_get_type (void) G_GNUC_CONST;
gchar* gitg_ext_preferences_get_id (GitgExtPreferences* self);
gchar* gitg_ext_preferences_get_display_name (GitgExtPreferences* self);
GtkWidget* gitg_ext_preferences_get_widget (GitgExtPreferences* self);
GType gitg_ext_searchable_get_type (void) G_GNUC_CONST;
gchar* gitg_ext_searchable_get_search_text (GitgExtSearchable* self);
void gitg_ext_searchable_set_search_text (GitgExtSearchable* self, const gchar* value);
gboolean gitg_ext_searchable_get_search_visible (GitgExtSearchable* self);
void gitg_ext_searchable_set_search_visible (GitgExtSearchable* self, gboolean value);
gboolean gitg_ext_searchable_get_search_enabled (GitgExtSearchable* self);
void gitg_ext_searchable_set_search_enabled (GitgExtSearchable* self, gboolean value);
GType gitg_ext_selection_mode_get_type (void) G_GNUC_CONST;
GType gitg_ext_selectable_get_type (void) G_GNUC_CONST;
GitgExtSelectionMode gitg_ext_selectable_get_selectable_mode (GitgExtSelectable* self);
void gitg_ext_selectable_set_selectable_mode (GitgExtSelectable* self, GitgExtSelectionMode value);
GtkWidget* gitg_ext_selectable_get_action_widget (GitgExtSelectable* self);
gpointer gitg_ext_ui_ref (gpointer instance);
void gitg_ext_ui_unref (gpointer instance);
GParamSpec* gitg_ext_param_spec_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void gitg_ext_value_set_ui (GValue* value, gpointer v_object);
void gitg_ext_value_take_ui (GValue* value, gpointer v_object);
gpointer gitg_ext_value_get_ui (const GValue* value);
GType gitg_ext_ui_get_type (void) G_GNUC_CONST;
GeeHashMap* gitg_ext_ui_from_builder (const gchar* path, ...);
GitgExtUI* gitg_ext_ui_new (void);
GitgExtUI* gitg_ext_ui_construct (GType object_type);
GType gitg_ext_user_query_response_get_type (void) G_GNUC_CONST;
GitgExtUserQueryResponse* gitg_ext_user_query_response_new (const gchar* text, GtkResponseType response_type);
GitgExtUserQueryResponse* gitg_ext_user_query_response_construct (GType object_type, const gchar* text, GtkResponseType response_type);
GitgExtUserQuery* gitg_ext_user_query_new (void);
GitgExtUserQuery* gitg_ext_user_query_construct (GType object_type);
const gchar* gitg_ext_user_query_get_title (GitgExtUserQuery* self);
void gitg_ext_user_query_set_title (GitgExtUserQuery* self, const gchar* value);
const gchar* gitg_ext_user_query_get_message (GitgExtUserQuery* self);
void gitg_ext_user_query_set_message (GitgExtUserQuery* self, const gchar* value);
GtkMessageType gitg_ext_user_query_get_message_type (GitgExtUserQuery* self);
void gitg_ext_user_query_set_message_type (GitgExtUserQuery* self, GtkMessageType value);
GtkResponseType gitg_ext_user_query_get_default_response (GitgExtUserQuery* self);
void gitg_ext_user_query_set_default_response (GitgExtUserQuery* self, GtkResponseType value);
GitgExtUserQueryResponse** gitg_ext_user_query_get_responses (GitgExtUserQuery* self, int* result_length1);
void gitg_ext_user_query_set_responses (GitgExtUserQuery* self, GitgExtUserQueryResponse** value, int value_length1);


G_END_DECLS

#endif
