/* libgitg.h generated by valac 0.56.13, the Vala compiler, do not modify */

#ifndef __LIBGITG_LIBGITG_H__
#define __LIBGITG_LIBGITG_H__

#include <glib-object.h>
#include <gio/gio.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <libgit2-glib/ggit.h>
#include <float.h>
#include <math.h>
#include <gdk/gdk.h>
#include <gee.h>
#include <pango/pango.h>
#include <cairo-gobject.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 GITG_TYPE_ASYNC (gitg_async_get_type ())
#define GITG_ASYNC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_ASYNC, GitgAsync))
#define GITG_ASYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_ASYNC, GitgAsyncClass))
#define GITG_IS_ASYNC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_ASYNC))
#define GITG_IS_ASYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_ASYNC))
#define GITG_ASYNC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_ASYNC, GitgAsyncClass))

typedef struct _GitgAsync GitgAsync;
typedef struct _GitgAsyncClass GitgAsyncClass;
typedef struct _GitgAsyncPrivate GitgAsyncPrivate;
typedef void (*GitgAsyncThreadFunc) (gpointer user_data, GError** error);
typedef enum  {
	GITG_AUTHENTICATION_LIFE_TIME_FORGET,
	GITG_AUTHENTICATION_LIFE_TIME_SESSION,
	GITG_AUTHENTICATION_LIFE_TIME_FOREVER
} GitgAuthenticationLifeTime;

#define GITG_TYPE_AUTHENTICATION_LIFE_TIME (gitg_authentication_life_time_get_type ())

#define GITG_TYPE_AUTHENTICATION_DIALOG (gitg_authentication_dialog_get_type ())
#define GITG_AUTHENTICATION_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_AUTHENTICATION_DIALOG, GitgAuthenticationDialog))
#define GITG_AUTHENTICATION_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_AUTHENTICATION_DIALOG, GitgAuthenticationDialogClass))
#define GITG_IS_AUTHENTICATION_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_AUTHENTICATION_DIALOG))
#define GITG_IS_AUTHENTICATION_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_AUTHENTICATION_DIALOG))
#define GITG_AUTHENTICATION_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_AUTHENTICATION_DIALOG, GitgAuthenticationDialogClass))

typedef struct _GitgAuthenticationDialog GitgAuthenticationDialog;
typedef struct _GitgAuthenticationDialogClass GitgAuthenticationDialogClass;
typedef struct _GitgAuthenticationDialogPrivate GitgAuthenticationDialogPrivate;

#define GITG_TYPE_AVATAR_CACHE (gitg_avatar_cache_get_type ())
#define GITG_AVATAR_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_AVATAR_CACHE, GitgAvatarCache))
#define GITG_AVATAR_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_AVATAR_CACHE, GitgAvatarCacheClass))
#define GITG_IS_AVATAR_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_AVATAR_CACHE))
#define GITG_IS_AVATAR_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_AVATAR_CACHE))
#define GITG_AVATAR_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_AVATAR_CACHE, GitgAvatarCacheClass))

typedef struct _GitgAvatarCache GitgAvatarCache;
typedef struct _GitgAvatarCacheClass GitgAvatarCacheClass;
typedef struct _GitgAvatarCachePrivate GitgAvatarCachePrivate;

#define GITG_TYPE_REF (gitg_ref_get_type ())
#define GITG_REF(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_REF, GitgRef))
#define GITG_IS_REF(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_REF))
#define GITG_REF_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_TYPE_REF, GitgRefIface))

typedef struct _GitgRef GitgRef;
typedef struct _GitgRefIface GitgRefIface;

#define GITG_TYPE_REPOSITORY (gitg_repository_get_type ())
#define GITG_REPOSITORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_REPOSITORY, GitgRepository))
#define GITG_REPOSITORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_REPOSITORY, GitgRepositoryClass))
#define GITG_IS_REPOSITORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_REPOSITORY))
#define GITG_IS_REPOSITORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_REPOSITORY))
#define GITG_REPOSITORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_REPOSITORY, GitgRepositoryClass))

typedef struct _GitgRepository GitgRepository;
typedef struct _GitgRepositoryClass GitgRepositoryClass;

#define GITG_TYPE_PARSED_REF_NAME (gitg_parsed_ref_name_get_type ())
#define GITG_PARSED_REF_NAME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_PARSED_REF_NAME, GitgParsedRefName))
#define GITG_PARSED_REF_NAME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_PARSED_REF_NAME, GitgParsedRefNameClass))
#define GITG_IS_PARSED_REF_NAME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_PARSED_REF_NAME))
#define GITG_IS_PARSED_REF_NAME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_PARSED_REF_NAME))
#define GITG_PARSED_REF_NAME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_PARSED_REF_NAME, GitgParsedRefNameClass))

typedef struct _GitgParsedRefName GitgParsedRefName;
typedef struct _GitgParsedRefNameClass GitgParsedRefNameClass;
typedef enum  {
	GITG_REF_STATE_NONE,
	GITG_REF_STATE_SELECTED,
	GITG_REF_STATE_PRELIGHT
} GitgRefState;

#define GITG_TYPE_REF_STATE (gitg_ref_state_get_type ())

#define GITG_TYPE_BRANCH (gitg_branch_get_type ())
#define GITG_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_BRANCH, GitgBranch))
#define GITG_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_BRANCH))
#define GITG_BRANCH_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_TYPE_BRANCH, GitgBranchIface))

typedef struct _GitgBranch GitgBranch;
typedef struct _GitgBranchIface GitgBranchIface;

#define GITG_TYPE_BRANCH_BASE (gitg_branch_base_get_type ())
#define GITG_BRANCH_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_BRANCH_BASE, GitgBranchBase))
#define GITG_BRANCH_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_BRANCH_BASE, GitgBranchBaseClass))
#define GITG_IS_BRANCH_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_BRANCH_BASE))
#define GITG_IS_BRANCH_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_BRANCH_BASE))
#define GITG_BRANCH_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_BRANCH_BASE, GitgBranchBaseClass))

typedef struct _GitgBranchBase GitgBranchBase;
typedef struct _GitgBranchBaseClass GitgBranchBaseClass;
typedef struct _GitgBranchBasePrivate GitgBranchBasePrivate;

#define GITG_TYPE_CELL_RENDERER_LANES (gitg_cell_renderer_lanes_get_type ())
#define GITG_CELL_RENDERER_LANES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_CELL_RENDERER_LANES, GitgCellRendererLanes))
#define GITG_CELL_RENDERER_LANES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_CELL_RENDERER_LANES, GitgCellRendererLanesClass))
#define GITG_IS_CELL_RENDERER_LANES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_CELL_RENDERER_LANES))
#define GITG_IS_CELL_RENDERER_LANES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_CELL_RENDERER_LANES))
#define GITG_CELL_RENDERER_LANES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_CELL_RENDERER_LANES, GitgCellRendererLanesClass))

typedef struct _GitgCellRendererLanes GitgCellRendererLanes;
typedef struct _GitgCellRendererLanesClass GitgCellRendererLanesClass;
typedef struct _GitgCellRendererLanesPrivate GitgCellRendererLanesPrivate;

#define GITG_TYPE_COMMIT (gitg_commit_get_type ())
#define GITG_COMMIT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_COMMIT, GitgCommit))
#define GITG_COMMIT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_COMMIT, GitgCommitClass))
#define GITG_IS_COMMIT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_COMMIT))
#define GITG_IS_COMMIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_COMMIT))
#define GITG_COMMIT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_COMMIT, GitgCommitClass))

typedef struct _GitgCommit GitgCommit;
typedef struct _GitgCommitClass GitgCommitClass;

#define GITG_TYPE_COLOR (gitg_color_get_type ())
#define GITG_COLOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_COLOR, GitgColor))
#define GITG_COLOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_COLOR, GitgColorClass))
#define GITG_IS_COLOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_COLOR))
#define GITG_IS_COLOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_COLOR))
#define GITG_COLOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_COLOR, GitgColorClass))

typedef struct _GitgColor GitgColor;
typedef struct _GitgColorClass GitgColorClass;
typedef struct _GitgColorPrivate GitgColorPrivate;

#define GITG_TYPE_COMMIT_LIST_VIEW (gitg_commit_list_view_get_type ())
#define GITG_COMMIT_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_COMMIT_LIST_VIEW, GitgCommitListView))
#define GITG_COMMIT_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_COMMIT_LIST_VIEW, GitgCommitListViewClass))
#define GITG_IS_COMMIT_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_COMMIT_LIST_VIEW))
#define GITG_IS_COMMIT_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_COMMIT_LIST_VIEW))
#define GITG_COMMIT_LIST_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_COMMIT_LIST_VIEW, GitgCommitListViewClass))

typedef struct _GitgCommitListView GitgCommitListView;
typedef struct _GitgCommitListViewClass GitgCommitListViewClass;
typedef struct _GitgCommitListViewPrivate GitgCommitListViewPrivate;

#define GITG_TYPE_COMMIT_MODEL (gitg_commit_model_get_type ())
#define GITG_COMMIT_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_COMMIT_MODEL, GitgCommitModel))
#define GITG_COMMIT_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_COMMIT_MODEL, GitgCommitModelClass))
#define GITG_IS_COMMIT_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_COMMIT_MODEL))
#define GITG_IS_COMMIT_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_COMMIT_MODEL))
#define GITG_COMMIT_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_COMMIT_MODEL, GitgCommitModelClass))

typedef struct _GitgCommitModel GitgCommitModel;
typedef struct _GitgCommitModelClass GitgCommitModelClass;
typedef enum  {
	GITG_COMMIT_MODEL_COLUMNS_SHA1,
	GITG_COMMIT_MODEL_COLUMNS_SUBJECT,
	GITG_COMMIT_MODEL_COLUMNS_MESSAGE,
	GITG_COMMIT_MODEL_COLUMNS_AUTHOR,
	GITG_COMMIT_MODEL_COLUMNS_AUTHOR_NAME,
	GITG_COMMIT_MODEL_COLUMNS_AUTHOR_EMAIL,
	GITG_COMMIT_MODEL_COLUMNS_AUTHOR_DATE,
	GITG_COMMIT_MODEL_COLUMNS_COMMITTER,
	GITG_COMMIT_MODEL_COLUMNS_COMMITTER_NAME,
	GITG_COMMIT_MODEL_COLUMNS_COMMITTER_EMAIL,
	GITG_COMMIT_MODEL_COLUMNS_COMMITTER_DATE,
	GITG_COMMIT_MODEL_COLUMNS_COMMIT,
	GITG_COMMIT_MODEL_COLUMNS_NUM
} GitgCommitModelColumns;

#define GITG_TYPE_COMMIT_MODEL_COLUMNS (gitg_commit_model_columns_get_type ())
typedef struct _GitgCommitModelPrivate GitgCommitModelPrivate;
typedef struct _GitgCommitPrivate GitgCommitPrivate;

#define GITG_TYPE_LANE (gitg_lane_get_type ())
#define GITG_LANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_LANE, GitgLane))
#define GITG_LANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_LANE, GitgLaneClass))
#define GITG_IS_LANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_LANE))
#define GITG_IS_LANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_LANE))
#define GITG_LANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_LANE, GitgLaneClass))

typedef struct _GitgLane GitgLane;
typedef struct _GitgLaneClass GitgLaneClass;
typedef enum  {
	GITG_LANE_TAG_NONE = 0,
	GITG_LANE_TAG_START = 1 << 0,
	GITG_LANE_TAG_END = 1 << 1,
	GITG_LANE_TAG_SIGN_STASH = 1 << 2,
	GITG_LANE_TAG_SIGN_STAGED = 1 << 3,
	GITG_LANE_TAG_SIGN_UNSTAGED = 1 << 4,
	GITG_LANE_TAG_HIDDEN = 1 << 5
} GitgLaneTag;

#define GITG_TYPE_LANE_TAG (gitg_lane_tag_get_type ())

#define GITG_TYPE_CREDENTIALS_ERROR (gitg_credentials_error_get_type ())

#define GITG_TYPE_CREDENTIALS_MANAGER (gitg_credentials_manager_get_type ())
#define GITG_CREDENTIALS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_CREDENTIALS_MANAGER, GitgCredentialsManager))
#define GITG_CREDENTIALS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_CREDENTIALS_MANAGER, GitgCredentialsManagerClass))
#define GITG_IS_CREDENTIALS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_CREDENTIALS_MANAGER))
#define GITG_IS_CREDENTIALS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_CREDENTIALS_MANAGER))
#define GITG_CREDENTIALS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_CREDENTIALS_MANAGER, GitgCredentialsManagerClass))

typedef struct _GitgCredentialsManager GitgCredentialsManager;
typedef struct _GitgCredentialsManagerClass GitgCredentialsManagerClass;
typedef struct _GitgCredentialsManagerPrivate GitgCredentialsManagerPrivate;

#define GITG_TYPE_DATE_ERROR (gitg_date_error_get_type ())

#define GITG_TYPE_DATE (gitg_date_get_type ())
#define GITG_DATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_DATE, GitgDate))
#define GITG_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_DATE, GitgDateClass))
#define GITG_IS_DATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_DATE))
#define GITG_IS_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_DATE))
#define GITG_DATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_DATE, GitgDateClass))

typedef struct _GitgDate GitgDate;
typedef struct _GitgDateClass GitgDateClass;
typedef struct _GitgDatePrivate GitgDatePrivate;

#define GITG_TYPE_DIFF_STAT (gitg_diff_stat_get_type ())
#define GITG_DIFF_STAT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_DIFF_STAT, GitgDiffStat))
#define GITG_DIFF_STAT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_DIFF_STAT, GitgDiffStatClass))
#define GITG_IS_DIFF_STAT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_DIFF_STAT))
#define GITG_IS_DIFF_STAT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_DIFF_STAT))
#define GITG_DIFF_STAT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_DIFF_STAT, GitgDiffStatClass))

typedef struct _GitgDiffStat GitgDiffStat;
typedef struct _GitgDiffStatClass GitgDiffStatClass;
typedef struct _GitgDiffStatPrivate GitgDiffStatPrivate;

#define GITG_TYPE_DIFF_VIEW_OPTIONS (gitg_diff_view_options_get_type ())
#define GITG_DIFF_VIEW_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_DIFF_VIEW_OPTIONS, GitgDiffViewOptions))
#define GITG_DIFF_VIEW_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_DIFF_VIEW_OPTIONS, GitgDiffViewOptionsClass))
#define GITG_IS_DIFF_VIEW_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_DIFF_VIEW_OPTIONS))
#define GITG_IS_DIFF_VIEW_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_DIFF_VIEW_OPTIONS))
#define GITG_DIFF_VIEW_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_DIFF_VIEW_OPTIONS, GitgDiffViewOptionsClass))

typedef struct _GitgDiffViewOptions GitgDiffViewOptions;
typedef struct _GitgDiffViewOptionsClass GitgDiffViewOptionsClass;
typedef struct _GitgDiffViewOptionsPrivate GitgDiffViewOptionsPrivate;

#define GITG_TYPE_DIFF_VIEW (gitg_diff_view_get_type ())
#define GITG_DIFF_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_DIFF_VIEW, GitgDiffView))
#define GITG_DIFF_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_DIFF_VIEW, GitgDiffViewClass))
#define GITG_IS_DIFF_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_DIFF_VIEW))
#define GITG_IS_DIFF_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_DIFF_VIEW))
#define GITG_DIFF_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_DIFF_VIEW, GitgDiffViewClass))

typedef struct _GitgDiffView GitgDiffView;
typedef struct _GitgDiffViewClass GitgDiffViewClass;
typedef struct _GitgDiffViewPrivate GitgDiffViewPrivate;

#define GITG_TYPE_PATCH_SET (gitg_patch_set_get_type ())
#define GITG_PATCH_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_PATCH_SET, GitgPatchSet))
#define GITG_PATCH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_PATCH_SET, GitgPatchSetClass))
#define GITG_IS_PATCH_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_PATCH_SET))
#define GITG_IS_PATCH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_PATCH_SET))
#define GITG_PATCH_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_PATCH_SET, GitgPatchSetClass))

typedef struct _GitgPatchSet GitgPatchSet;
typedef struct _GitgPatchSetClass GitgPatchSetClass;

#define GITG_TYPE_FONT_MANAGER (gitg_font_manager_get_type ())
#define GITG_FONT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_FONT_MANAGER, GitgFontManager))
#define GITG_FONT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_FONT_MANAGER, GitgFontManagerClass))
#define GITG_IS_FONT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_FONT_MANAGER))
#define GITG_IS_FONT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_FONT_MANAGER))
#define GITG_FONT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_FONT_MANAGER, GitgFontManagerClass))

typedef struct _GitgFontManager GitgFontManager;
typedef struct _GitgFontManagerClass GitgFontManagerClass;
typedef struct _GitgFontManagerPrivate GitgFontManagerPrivate;

#define GITG_TYPE_HOOK (gitg_hook_get_type ())
#define GITG_HOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_HOOK, GitgHook))
#define GITG_HOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_HOOK, GitgHookClass))
#define GITG_IS_HOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_HOOK))
#define GITG_IS_HOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_HOOK))
#define GITG_HOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_HOOK, GitgHookClass))

typedef struct _GitgHook GitgHook;
typedef struct _GitgHookClass GitgHookClass;
typedef struct _GitgHookPrivate GitgHookPrivate;

#define GITG_TYPE_INIT_ERROR (gitg_init_error_get_type ())

#define GITG_TYPE_LABEL_RENDERER (gitg_label_renderer_get_type ())
#define GITG_LABEL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_LABEL_RENDERER, GitgLabelRenderer))
#define GITG_LABEL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_LABEL_RENDERER, GitgLabelRendererClass))
#define GITG_IS_LABEL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_LABEL_RENDERER))
#define GITG_IS_LABEL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_LABEL_RENDERER))
#define GITG_LABEL_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_LABEL_RENDERER, GitgLabelRendererClass))

typedef struct _GitgLabelRenderer GitgLabelRenderer;
typedef struct _GitgLabelRendererClass GitgLabelRendererClass;
typedef struct _GitgLabelRendererPrivate GitgLabelRendererPrivate;

#define GITG_TYPE_LANES (gitg_lanes_get_type ())
#define GITG_LANES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_LANES, GitgLanes))
#define GITG_LANES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_LANES, GitgLanesClass))
#define GITG_IS_LANES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_LANES))
#define GITG_IS_LANES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_LANES))
#define GITG_LANES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_LANES, GitgLanesClass))

typedef struct _GitgLanes GitgLanes;
typedef struct _GitgLanesClass GitgLanesClass;
typedef struct _GitgLanesPrivate GitgLanesPrivate;
typedef struct _GitgLanePrivate GitgLanePrivate;

#define GITG_TYPE_PROGRESS_BIN (gitg_progress_bin_get_type ())
#define GITG_PROGRESS_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_PROGRESS_BIN, GitgProgressBin))
#define GITG_PROGRESS_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_PROGRESS_BIN, GitgProgressBinClass))
#define GITG_IS_PROGRESS_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_PROGRESS_BIN))
#define GITG_IS_PROGRESS_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_PROGRESS_BIN))
#define GITG_PROGRESS_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_PROGRESS_BIN, GitgProgressBinClass))

typedef struct _GitgProgressBin GitgProgressBin;
typedef struct _GitgProgressBinClass GitgProgressBinClass;
typedef struct _GitgProgressBinPrivate GitgProgressBinPrivate;

#define GITG_TYPE_REF_BASE (gitg_ref_base_get_type ())
#define GITG_REF_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_REF_BASE, GitgRefBase))
#define GITG_REF_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_REF_BASE, GitgRefBaseClass))
#define GITG_IS_REF_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_REF_BASE))
#define GITG_IS_REF_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_REF_BASE))
#define GITG_REF_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_REF_BASE, GitgRefBaseClass))

typedef struct _GitgRefBase GitgRefBase;
typedef struct _GitgRefBaseClass GitgRefBaseClass;
typedef struct _GitgRefBasePrivate GitgRefBasePrivate;
typedef enum  {
	GITG_REF_TYPE_NONE,
	GITG_REF_TYPE_BRANCH,
	GITG_REF_TYPE_REMOTE,
	GITG_REF_TYPE_TAG,
	GITG_REF_TYPE_STASH
} GitgRefType;

#define GITG_TYPE_REF_TYPE (gitg_ref_type_get_type ())
typedef struct _GitgParsedRefNamePrivate GitgParsedRefNamePrivate;
typedef enum  {
	GITG_REMOTE_STATE_DISCONNECTED,
	GITG_REMOTE_STATE_CONNECTING,
	GITG_REMOTE_STATE_CONNECTED,
	GITG_REMOTE_STATE_TRANSFERRING
} GitgRemoteState;

#define GITG_TYPE_REMOTE_STATE (gitg_remote_state_get_type ())

#define GITG_TYPE_REMOTE_ERROR (gitg_remote_error_get_type ())

#define GITG_TYPE_CREDENTIALS_PROVIDER (gitg_credentials_provider_get_type ())
#define GITG_CREDENTIALS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_CREDENTIALS_PROVIDER, GitgCredentialsProvider))
#define GITG_IS_CREDENTIALS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_CREDENTIALS_PROVIDER))
#define GITG_CREDENTIALS_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_TYPE_CREDENTIALS_PROVIDER, GitgCredentialsProviderIface))

typedef struct _GitgCredentialsProvider GitgCredentialsProvider;
typedef struct _GitgCredentialsProviderIface GitgCredentialsProviderIface;

#define GITG_TYPE_REMOTE (gitg_remote_get_type ())
#define GITG_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_REMOTE, GitgRemote))
#define GITG_REMOTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_REMOTE, GitgRemoteClass))
#define GITG_IS_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_REMOTE))
#define GITG_IS_REMOTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_REMOTE))
#define GITG_REMOTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_REMOTE, GitgRemoteClass))

typedef struct _GitgRemote GitgRemote;
typedef struct _GitgRemoteClass GitgRemoteClass;
typedef struct _GitgRemotePrivate GitgRemotePrivate;
typedef enum  {
	GITG_SELECTION_MODE_NORMAL,
	GITG_SELECTION_MODE_SELECTION
} GitgSelectionMode;

#define GITG_TYPE_SELECTION_MODE (gitg_selection_mode_get_type ())

#define GITG_TYPE_REPOSITORY_LIST_BOX (gitg_repository_list_box_get_type ())
#define GITG_REPOSITORY_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_REPOSITORY_LIST_BOX, GitgRepositoryListBox))
#define GITG_REPOSITORY_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_REPOSITORY_LIST_BOX, GitgRepositoryListBoxClass))
#define GITG_IS_REPOSITORY_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_REPOSITORY_LIST_BOX))
#define GITG_IS_REPOSITORY_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_REPOSITORY_LIST_BOX))
#define GITG_REPOSITORY_LIST_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_REPOSITORY_LIST_BOX, GitgRepositoryListBoxClass))

typedef struct _GitgRepositoryListBox GitgRepositoryListBox;
typedef struct _GitgRepositoryListBoxClass GitgRepositoryListBoxClass;
typedef struct _GitgRepositoryListBoxPrivate GitgRepositoryListBoxPrivate;

#define GITG_REPOSITORY_LIST_BOX_TYPE_ROW (gitg_repository_list_box_row_get_type ())
#define GITG_REPOSITORY_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_REPOSITORY_LIST_BOX_TYPE_ROW, GitgRepositoryListBoxRow))
#define GITG_REPOSITORY_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_REPOSITORY_LIST_BOX_TYPE_ROW, GitgRepositoryListBoxRowClass))
#define GITG_REPOSITORY_LIST_BOX_IS_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_REPOSITORY_LIST_BOX_TYPE_ROW))
#define GITG_REPOSITORY_LIST_BOX_IS_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_REPOSITORY_LIST_BOX_TYPE_ROW))
#define GITG_REPOSITORY_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_REPOSITORY_LIST_BOX_TYPE_ROW, GitgRepositoryListBoxRowClass))

typedef struct _GitgRepositoryListBoxRow GitgRepositoryListBoxRow;
typedef struct _GitgRepositoryListBoxRowClass GitgRepositoryListBoxRowClass;
typedef struct _GitgRepositoryListBoxRowPrivate GitgRepositoryListBoxRowPrivate;
typedef struct _GitgRepositoryPrivate GitgRepositoryPrivate;

#define GITG_TYPE_STAGE (gitg_stage_get_type ())
#define GITG_STAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_STAGE, GitgStage))
#define GITG_STAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_STAGE, GitgStageClass))
#define GITG_IS_STAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_STAGE))
#define GITG_IS_STAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_STAGE))
#define GITG_STAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_STAGE, GitgStageClass))

typedef struct _GitgStage GitgStage;
typedef struct _GitgStageClass GitgStageClass;

#define GITG_TYPE_RESOURCE (gitg_resource_get_type ())
#define GITG_RESOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_RESOURCE, GitgResource))
#define GITG_RESOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_RESOURCE, GitgResourceClass))
#define GITG_IS_RESOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_RESOURCE))
#define GITG_IS_RESOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_RESOURCE))
#define GITG_RESOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_RESOURCE, GitgResourceClass))

typedef struct _GitgResource GitgResource;
typedef struct _GitgResourceClass GitgResourceClass;
typedef struct _GitgResourcePrivate GitgResourcePrivate;
typedef enum  {
	GITG_SIDEBAR_HINT_NONE,
	GITG_SIDEBAR_HINT_HEADER,
	GITG_SIDEBAR_HINT_SEPARATOR,
	GITG_SIDEBAR_HINT_DUMMY
} GitgSidebarHint;

#define GITG_TYPE_SIDEBAR_HINT (gitg_sidebar_hint_get_type ())
typedef enum  {
	GITG_SIDEBAR_COLUMN_HINT,
	GITG_SIDEBAR_COLUMN_SECTION,
	GITG_SIDEBAR_COLUMN_ITEM
} GitgSidebarColumn;

#define GITG_TYPE_SIDEBAR_COLUMN (gitg_sidebar_column_get_type ())

#define GITG_TYPE_SIDEBAR_ITEM (gitg_sidebar_item_get_type ())
#define GITG_SIDEBAR_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_SIDEBAR_ITEM, GitgSidebarItem))
#define GITG_IS_SIDEBAR_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_SIDEBAR_ITEM))
#define GITG_SIDEBAR_ITEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_TYPE_SIDEBAR_ITEM, GitgSidebarItemIface))

typedef struct _GitgSidebarItem GitgSidebarItem;
typedef struct _GitgSidebarItemIface GitgSidebarItemIface;

#define GITG_TYPE_SIDEBAR_STORE (gitg_sidebar_store_get_type ())
#define GITG_SIDEBAR_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_SIDEBAR_STORE, GitgSidebarStore))
#define GITG_SIDEBAR_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_SIDEBAR_STORE, GitgSidebarStoreClass))
#define GITG_IS_SIDEBAR_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_SIDEBAR_STORE))
#define GITG_IS_SIDEBAR_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_SIDEBAR_STORE))
#define GITG_SIDEBAR_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_SIDEBAR_STORE, GitgSidebarStoreClass))

typedef struct _GitgSidebarStore GitgSidebarStore;
typedef struct _GitgSidebarStoreClass GitgSidebarStoreClass;
typedef struct _GitgSidebarStorePrivate GitgSidebarStorePrivate;

#define GITG_SIDEBAR_STORE_TYPE_SIDEBAR_TEXT (gitg_sidebar_store_sidebar_text_get_type ())
#define GITG_SIDEBAR_STORE_SIDEBAR_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_TEXT, GitgSidebarStoreSidebarText))
#define GITG_SIDEBAR_STORE_SIDEBAR_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_TEXT, GitgSidebarStoreSidebarTextClass))
#define GITG_SIDEBAR_STORE_IS_SIDEBAR_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_TEXT))
#define GITG_SIDEBAR_STORE_IS_SIDEBAR_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_TEXT))
#define GITG_SIDEBAR_STORE_SIDEBAR_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_TEXT, GitgSidebarStoreSidebarTextClass))

typedef struct _GitgSidebarStoreSidebarText GitgSidebarStoreSidebarText;
typedef struct _GitgSidebarStoreSidebarTextClass GitgSidebarStoreSidebarTextClass;

#define GITG_SIDEBAR_STORE_TYPE_SIDEBAR_HEADER (gitg_sidebar_store_sidebar_header_get_type ())
#define GITG_SIDEBAR_STORE_SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_HEADER, GitgSidebarStoreSidebarHeader))
#define GITG_SIDEBAR_STORE_SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_HEADER, GitgSidebarStoreSidebarHeaderClass))
#define GITG_SIDEBAR_STORE_IS_SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_HEADER))
#define GITG_SIDEBAR_STORE_IS_SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_HEADER))
#define GITG_SIDEBAR_STORE_SIDEBAR_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_SIDEBAR_STORE_TYPE_SIDEBAR_HEADER, GitgSidebarStoreSidebarHeaderClass))

typedef struct _GitgSidebarStoreSidebarHeader GitgSidebarStoreSidebarHeader;
typedef struct _GitgSidebarStoreSidebarHeaderClass GitgSidebarStoreSidebarHeaderClass;
typedef struct _GitgSidebarStoreSidebarTextPrivate GitgSidebarStoreSidebarTextPrivate;
typedef struct _GitgSidebarStoreSidebarHeaderPrivate GitgSidebarStoreSidebarHeaderPrivate;

#define GITG_TYPE_SIDEBAR (gitg_sidebar_get_type ())
#define GITG_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_SIDEBAR, GitgSidebar))
#define GITG_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_SIDEBAR, GitgSidebarClass))
#define GITG_IS_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_SIDEBAR))
#define GITG_IS_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_SIDEBAR))
#define GITG_SIDEBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_SIDEBAR, GitgSidebarClass))

typedef struct _GitgSidebar GitgSidebar;
typedef struct _GitgSidebarClass GitgSidebarClass;
typedef struct _GitgSidebarPrivate GitgSidebarPrivate;

#define GITG_TYPE_STAGE_STATUS_ITEM (gitg_stage_status_item_get_type ())
#define GITG_STAGE_STATUS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_STAGE_STATUS_ITEM, GitgStageStatusItem))
#define GITG_IS_STAGE_STATUS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_STAGE_STATUS_ITEM))
#define GITG_STAGE_STATUS_ITEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_TYPE_STAGE_STATUS_ITEM, GitgStageStatusItemIface))

typedef struct _GitgStageStatusItem GitgStageStatusItem;
typedef struct _GitgStageStatusItemIface GitgStageStatusItemIface;

#define GITG_TYPE_STAGE_STATUS_FILE (gitg_stage_status_file_get_type ())
#define GITG_STAGE_STATUS_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_STAGE_STATUS_FILE, GitgStageStatusFile))
#define GITG_STAGE_STATUS_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_STAGE_STATUS_FILE, GitgStageStatusFileClass))
#define GITG_IS_STAGE_STATUS_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_STAGE_STATUS_FILE))
#define GITG_IS_STAGE_STATUS_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_STAGE_STATUS_FILE))
#define GITG_STAGE_STATUS_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_STAGE_STATUS_FILE, GitgStageStatusFileClass))

typedef struct _GitgStageStatusFile GitgStageStatusFile;
typedef struct _GitgStageStatusFileClass GitgStageStatusFileClass;
typedef struct _GitgStageStatusFilePrivate GitgStageStatusFilePrivate;

#define GITG_TYPE_STAGE_STATUS_SUBMODULE (gitg_stage_status_submodule_get_type ())
#define GITG_STAGE_STATUS_SUBMODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_STAGE_STATUS_SUBMODULE, GitgStageStatusSubmodule))
#define GITG_STAGE_STATUS_SUBMODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_STAGE_STATUS_SUBMODULE, GitgStageStatusSubmoduleClass))
#define GITG_IS_STAGE_STATUS_SUBMODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_STAGE_STATUS_SUBMODULE))
#define GITG_IS_STAGE_STATUS_SUBMODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_STAGE_STATUS_SUBMODULE))
#define GITG_STAGE_STATUS_SUBMODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_STAGE_STATUS_SUBMODULE, GitgStageStatusSubmoduleClass))

typedef struct _GitgStageStatusSubmodule GitgStageStatusSubmodule;
typedef struct _GitgStageStatusSubmoduleClass GitgStageStatusSubmoduleClass;
typedef struct _GitgStageStatusSubmodulePrivate GitgStageStatusSubmodulePrivate;

#define GITG_TYPE_STAGE_STATUS_ENUMERATOR (gitg_stage_status_enumerator_get_type ())
#define GITG_STAGE_STATUS_ENUMERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_STAGE_STATUS_ENUMERATOR, GitgStageStatusEnumerator))
#define GITG_STAGE_STATUS_ENUMERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_STAGE_STATUS_ENUMERATOR, GitgStageStatusEnumeratorClass))
#define GITG_IS_STAGE_STATUS_ENUMERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_STAGE_STATUS_ENUMERATOR))
#define GITG_IS_STAGE_STATUS_ENUMERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_STAGE_STATUS_ENUMERATOR))
#define GITG_STAGE_STATUS_ENUMERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_STAGE_STATUS_ENUMERATOR, GitgStageStatusEnumeratorClass))

typedef struct _GitgStageStatusEnumerator GitgStageStatusEnumerator;
typedef struct _GitgStageStatusEnumeratorClass GitgStageStatusEnumeratorClass;
typedef struct _GitgStageStatusEnumeratorPrivate GitgStageStatusEnumeratorPrivate;
typedef enum  {
	GITG_STAGE_COMMIT_OPTIONS_NONE = 0,
	GITG_STAGE_COMMIT_OPTIONS_SIGN_OFF = 1 << 0,
	GITG_STAGE_COMMIT_OPTIONS_AMEND = 1 << 1,
	GITG_STAGE_COMMIT_OPTIONS_SKIP_HOOKS = 1 << 2
} GitgStageCommitOptions;

#define GITG_TYPE_STAGE_COMMIT_OPTIONS (gitg_stage_commit_options_get_type ())

#define GITG_TYPE_STAGE_ERROR (gitg_stage_error_get_type ())
typedef struct _GitgPatchSetPrivate GitgPatchSetPrivate;

#define GITG_PATCH_SET_TYPE_PATCH (gitg_patch_set_patch_get_type ())
typedef struct _GitgPatchSetPatch GitgPatchSetPatch;
typedef enum  {
	GITG_PATCH_SET_TYPE_ADD = 'a',
	GITG_PATCH_SET_TYPE_REMOVE = 'r'
} GitgPatchSetType;

#define GITG_PATCH_SET_TYPE_TYPE (gitg_patch_set_type_get_type ())
typedef struct _GitgStagePrivate GitgStagePrivate;

#define GITG_TYPE_TEXT_CONV (gitg_text_conv_get_type ())
#define GITG_TEXT_CONV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_TEXT_CONV, GitgTextConv))
#define GITG_TEXT_CONV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_TEXT_CONV, GitgTextConvClass))
#define GITG_IS_TEXT_CONV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_TEXT_CONV))
#define GITG_IS_TEXT_CONV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_TEXT_CONV))
#define GITG_TEXT_CONV_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_TEXT_CONV, GitgTextConvClass))

typedef struct _GitgTextConv GitgTextConv;
typedef struct _GitgTextConvClass GitgTextConvClass;
typedef struct _GitgTextConvPrivate GitgTextConvPrivate;

#define GITG_TYPE_THEME (gitg_theme_get_type ())
#define GITG_THEME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_THEME, GitgTheme))
#define GITG_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_THEME, GitgThemeClass))
#define GITG_IS_THEME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_THEME))
#define GITG_IS_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_THEME))
#define GITG_THEME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_THEME, GitgThemeClass))

typedef struct _GitgTheme GitgTheme;
typedef struct _GitgThemeClass GitgThemeClass;
typedef struct _GitgThemePrivate GitgThemePrivate;

#define GITG_TYPE_UTILS (gitg_utils_get_type ())
#define GITG_UTILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_UTILS, GitgUtils))
#define GITG_UTILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_UTILS, GitgUtilsClass))
#define GITG_IS_UTILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_UTILS))
#define GITG_IS_UTILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_UTILS))
#define GITG_UTILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_UTILS, GitgUtilsClass))

typedef struct _GitgUtils GitgUtils;
typedef struct _GitgUtilsClass GitgUtilsClass;
typedef struct _GitgUtilsPrivate GitgUtilsPrivate;

#define GITG_TYPE_WHEN_MAPPED (gitg_when_mapped_get_type ())
#define GITG_WHEN_MAPPED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_WHEN_MAPPED, GitgWhenMapped))
#define GITG_WHEN_MAPPED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_WHEN_MAPPED, GitgWhenMappedClass))
#define GITG_IS_WHEN_MAPPED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_WHEN_MAPPED))
#define GITG_IS_WHEN_MAPPED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_WHEN_MAPPED))
#define GITG_WHEN_MAPPED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_WHEN_MAPPED, GitgWhenMappedClass))

typedef struct _GitgWhenMapped GitgWhenMapped;
typedef struct _GitgWhenMappedClass GitgWhenMappedClass;
typedef struct _GitgWhenMappedPrivate GitgWhenMappedPrivate;
typedef void (*GitgWhenMappedOnMapped) (gpointer user_data);

struct _GitgAsync {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GitgAsyncPrivate * priv;
};

struct _GitgAsyncClass {
	GTypeClass parent_class;
	void (*finalize) (GitgAsync *self);
};

struct _GitgAuthenticationDialog {
	GtkDialog parent_instance;
	GitgAuthenticationDialogPrivate * priv;
};

struct _GitgAuthenticationDialogClass {
	GtkDialogClass parent_class;
};

struct _GitgAvatarCache {
	GObject parent_instance;
	GitgAvatarCachePrivate * priv;
};

struct _GitgAvatarCacheClass {
	GObjectClass parent_class;
};

struct _GitgRefIface {
	GTypeInterface parent_iface;
	GitgRepository* (*get_owner) (GitgRef* self);
	GitgParsedRefName* (*get_d_parsed_name) (GitgRef* self);
	void (*set_d_parsed_name) (GitgRef* self, GitgParsedRefName* value);
	GList* (*get_d_pushes) (GitgRef* self);
	void (*set_d_pushes) (GitgRef* self, GList* value);
	GitgRefState (*get_state) (GitgRef* self);
	void (*set_state) (GitgRef* self, GitgRefState value);
	gboolean (*get_working) (GitgRef* self);
	void (*set_working) (GitgRef* self, gboolean value);
};

struct _GitgBranchIface {
	GTypeInterface parent_iface;
	GitgRef* (*get_upstream) (GitgBranch* self, GError** error);
};

struct _GitgBranchBase {
	GgitBranch parent_instance;
	GitgBranchBasePrivate * priv;
};

struct _GitgBranchBaseClass {
	GgitBranchClass parent_class;
};

struct _GitgCellRendererLanes {
	GtkCellRendererText parent_instance;
	GitgCellRendererLanesPrivate * priv;
};

struct _GitgCellRendererLanesClass {
	GtkCellRendererTextClass parent_class;
};

struct _GitgColor {
	GObject parent_instance;
	GitgColorPrivate * priv;
	guint idx;
};

struct _GitgColorClass {
	GObjectClass parent_class;
};

struct _GitgCommitListView {
	GtkTreeView parent_instance;
	GitgCommitListViewPrivate * priv;
};

struct _GitgCommitListViewClass {
	GtkTreeViewClass parent_class;
};

struct _GitgCommitModel {
	GObject parent_instance;
	GitgCommitModelPrivate * priv;
};

struct _GitgCommitModelClass {
	GObjectClass parent_class;
};

struct _GitgCommit {
	GgitCommit parent_instance;
	GitgCommitPrivate * priv;
};

struct _GitgCommitClass {
	GgitCommitClass parent_class;
};

typedef enum  {
	GITG_CREDENTIALS_ERROR_CANCELLED
} GitgCredentialsError;
#define GITG_CREDENTIALS_ERROR gitg_credentials_error_quark ()

struct _GitgCredentialsManager {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GitgCredentialsManagerPrivate * priv;
};

struct _GitgCredentialsManagerClass {
	GTypeClass parent_class;
	void (*finalize) (GitgCredentialsManager *self);
};

typedef enum  {
	GITG_DATE_ERROR_INVALID_FORMAT
} GitgDateError;
#define GITG_DATE_ERROR gitg_date_error_quark ()

struct _GitgDate {
	GObject parent_instance;
	GitgDatePrivate * priv;
};

struct _GitgDateClass {
	GObjectClass parent_class;
};

struct _GitgDiffStat {
	GtkDrawingArea parent_instance;
	GitgDiffStatPrivate * priv;
};

struct _GitgDiffStatClass {
	GtkDrawingAreaClass parent_class;
};

struct _GitgDiffViewOptions {
	GtkToolbar parent_instance;
	GitgDiffViewOptionsPrivate * priv;
};

struct _GitgDiffViewOptionsClass {
	GtkToolbarClass parent_class;
};

struct _GitgDiffView {
	GtkGrid parent_instance;
	GitgDiffViewPrivate * priv;
};

struct _GitgDiffViewClass {
	GtkGridClass parent_class;
	void (*options_changed) (GitgDiffView* self);
};

struct _GitgFontManager {
	GObject parent_instance;
	GitgFontManagerPrivate * priv;
};

struct _GitgFontManagerClass {
	GObjectClass parent_class;
};

struct _GitgHook {
	GObject parent_instance;
	GitgHookPrivate * priv;
};

struct _GitgHookClass {
	GObjectClass parent_class;
};

typedef enum  {
	GITG_INIT_ERROR_THREADS_UNSAFE
} GitgInitError;
#define GITG_INIT_ERROR gitg_init_error_quark ()

struct _GitgLabelRenderer {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GitgLabelRendererPrivate * priv;
};

struct _GitgLabelRendererClass {
	GTypeClass parent_class;
	void (*finalize) (GitgLabelRenderer *self);
};

struct _GitgLanes {
	GObject parent_instance;
	GitgLanesPrivate * priv;
};

struct _GitgLanesClass {
	GObjectClass parent_class;
};

struct _GitgLane {
	GObject parent_instance;
	GitgLanePrivate * priv;
	GitgColor* color;
	GSList* from;
	GitgLaneTag tag;
	GgitOId* boundary_id;
};

struct _GitgLaneClass {
	GObjectClass parent_class;
};

struct _GitgProgressBin {
	GtkBin parent_instance;
	GitgProgressBinPrivate * priv;
};

struct _GitgProgressBinClass {
	GtkBinClass parent_class;
};

struct _GitgRefBase {
	GgitRef parent_instance;
	GitgRefBasePrivate * priv;
};

struct _GitgRefBaseClass {
	GgitRefClass parent_class;
};

struct _GitgParsedRefName {
	GObject parent_instance;
	GitgParsedRefNamePrivate * priv;
};

struct _GitgParsedRefNameClass {
	GObjectClass parent_class;
};

typedef enum  {
	GITG_REMOTE_ERROR_ALREADY_CONNECTED,
	GITG_REMOTE_ERROR_ALREADY_CONNECTING,
	GITG_REMOTE_ERROR_ALREADY_DISCONNECTED,
	GITG_REMOTE_ERROR_STILL_CONNECTING
} GitgRemoteError;
#define GITG_REMOTE_ERROR gitg_remote_error_quark ()

struct _GitgCredentialsProviderIface {
	GTypeInterface parent_iface;
	GgitCred* (*credentials) (GitgCredentialsProvider* self, const gchar* url, const gchar* username_from_url, GgitCredtype allowed_types, GError** error);
};

struct _GitgRemote {
	GgitRemote parent_instance;
	GitgRemotePrivate * priv;
};

struct _GitgRemoteClass {
	GgitRemoteClass parent_class;
};

struct _GitgRepositoryListBox {
	GtkListBox parent_instance;
	GitgRepositoryListBoxPrivate * priv;
};

struct _GitgRepositoryListBoxClass {
	GtkListBoxClass parent_class;
};

struct _GitgRepositoryListBoxRow {
	GtkListBoxRow parent_instance;
	GitgRepositoryListBoxRowPrivate * priv;
};

struct _GitgRepositoryListBoxRowClass {
	GtkListBoxRowClass parent_class;
};

struct _GitgRepository {
	GgitRepository parent_instance;
	GitgRepositoryPrivate * priv;
};

struct _GitgRepositoryClass {
	GgitRepositoryClass parent_class;
};

struct _GitgResource {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GitgResourcePrivate * priv;
};

struct _GitgResourceClass {
	GTypeClass parent_class;
	void (*finalize) (GitgResource *self);
};

struct _GitgSidebarItemIface {
	GTypeInterface parent_iface;
	void (*activate) (GitgSidebarItem* self, gint numclick);
	gchar* (*get_text) (GitgSidebarItem* self);
	gchar* (*get_icon_name) (GitgSidebarItem* self);
};

struct _GitgSidebarStore {
	GtkTreeStore parent_instance;
	GitgSidebarStorePrivate * priv;
};

struct _GitgSidebarStoreClass {
	GtkTreeStoreClass parent_class;
};

struct _GitgSidebarStoreSidebarText {
	GObject parent_instance;
	GitgSidebarStoreSidebarTextPrivate * priv;
};

struct _GitgSidebarStoreSidebarTextClass {
	GObjectClass parent_class;
};

struct _GitgSidebarStoreSidebarHeader {
	GitgSidebarStoreSidebarText parent_instance;
	GitgSidebarStoreSidebarHeaderPrivate * priv;
};

struct _GitgSidebarStoreSidebarHeaderClass {
	GitgSidebarStoreSidebarTextClass parent_class;
};

struct _GitgSidebar {
	GtkTreeView parent_instance;
	GitgSidebarPrivate * priv;
};

struct _GitgSidebarClass {
	GtkTreeViewClass parent_class;
	gboolean (*select_function) (GitgSidebar* self, GtkTreeSelection* sel, GtkTreeModel* model, GtkTreePath* path, gboolean cursel);
	void (*selection_changed) (GitgSidebar* self, GtkTreeSelection* sel);
};

struct _GitgStageStatusItemIface {
	GTypeInterface parent_iface;
	gchar* (*get_path) (GitgStageStatusItem* self);
	gboolean (*get_is_staged) (GitgStageStatusItem* self);
	gboolean (*get_is_unstaged) (GitgStageStatusItem* self);
	gboolean (*get_is_untracked) (GitgStageStatusItem* self);
	gchar* (*get_icon_name) (GitgStageStatusItem* self);
};

struct _GitgStageStatusFile {
	GObject parent_instance;
	GitgStageStatusFilePrivate * priv;
};

struct _GitgStageStatusFileClass {
	GObjectClass parent_class;
};

struct _GitgStageStatusSubmodule {
	GObject parent_instance;
	GitgStageStatusSubmodulePrivate * priv;
};

struct _GitgStageStatusSubmoduleClass {
	GObjectClass parent_class;
};

struct _GitgStageStatusEnumerator {
	GObject parent_instance;
	GitgStageStatusEnumeratorPrivate * priv;
};

struct _GitgStageStatusEnumeratorClass {
	GObjectClass parent_class;
};

typedef enum  {
	GITG_STAGE_ERROR_PRE_COMMIT_HOOK_FAILED,
	GITG_STAGE_ERROR_COMMIT_MSG_HOOK_FAILED,
	GITG_STAGE_ERROR_NOTHING_TO_COMMIT,
	GITG_STAGE_ERROR_INDEX_ENTRY_NOT_FOUND
} GitgStageError;
#define GITG_STAGE_ERROR gitg_stage_error_quark ()

struct _GitgPatchSetPatch {
	GitgPatchSetType type;
	gsize old_offset;
	gsize new_offset;
	gsize length;
};

struct _GitgPatchSet {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GitgPatchSetPrivate * priv;
	gchar* filename;
	GitgPatchSetPatch* patches;
	gint patches_length1;
};

struct _GitgPatchSetClass {
	GTypeClass parent_class;
	void (*finalize) (GitgPatchSet *self);
};

struct _GitgStage {
	GObject parent_instance;
	GitgStagePrivate * priv;
};

struct _GitgStageClass {
	GObjectClass parent_class;
};

struct _GitgTextConv {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GitgTextConvPrivate * priv;
};

struct _GitgTextConvClass {
	GTypeClass parent_class;
	void (*finalize) (GitgTextConv *self);
};

struct _GitgTheme {
	GtkWidget parent_instance;
	GitgThemePrivate * priv;
};

struct _GitgThemeClass {
	GtkWidgetClass parent_class;
};

struct _GitgUtils {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GitgUtilsPrivate * priv;
};

struct _GitgUtilsClass {
	GTypeClass parent_class;
	void (*finalize) (GitgUtils *self);
};

struct _GitgWhenMapped {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GitgWhenMappedPrivate * priv;
};

struct _GitgWhenMappedClass {
	GTypeClass parent_class;
	void (*finalize) (GitgWhenMapped *self);
};

VALA_EXTERN gpointer gitg_async_ref (gpointer instance);
VALA_EXTERN void gitg_async_unref (gpointer instance);
VALA_EXTERN GParamSpec* gitg_param_spec_async (const gchar* name,
                                   const gchar* nick,
                                   const gchar* blurb,
                                   GType object_type,
                                   GParamFlags flags);
VALA_EXTERN void gitg_value_set_async (GValue* value,
                           gpointer v_object);
VALA_EXTERN void gitg_value_take_async (GValue* value,
                            gpointer v_object);
VALA_EXTERN gpointer gitg_value_get_async (const GValue* value);
VALA_EXTERN GType gitg_async_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgAsync, gitg_async_unref)
VALA_EXTERN void gitg_async_thread (GitgAsyncThreadFunc func,
                        gpointer func_target,
                        GAsyncReadyCallback _callback_,
                        gpointer _user_data_);
VALA_EXTERN void gitg_async_thread_finish (GAsyncResult* _res_,
                               GError** error);
VALA_EXTERN void gitg_async_thread_try (GitgAsyncThreadFunc func,
                            gpointer func_target,
                            GAsyncReadyCallback _callback_,
                            gpointer _user_data_);
VALA_EXTERN void gitg_async_thread_try_finish (GAsyncResult* _res_);
VALA_EXTERN GitgAsync* gitg_async_new (void);
VALA_EXTERN GitgAsync* gitg_async_construct (GType object_type);
VALA_EXTERN GType gitg_authentication_life_time_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_authentication_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgAuthenticationDialog, g_object_unref)
VALA_EXTERN GitgAuthenticationDialog* gitg_authentication_dialog_new (const gchar* url,
                                                          const gchar* username,
                                                          gboolean failed);
VALA_EXTERN GitgAuthenticationDialog* gitg_authentication_dialog_construct (GType object_type,
                                                                const gchar* url,
                                                                const gchar* username,
                                                                gboolean failed);
VALA_EXTERN const gchar* gitg_authentication_dialog_get_username (GitgAuthenticationDialog* self);
VALA_EXTERN const gchar* gitg_authentication_dialog_get_password (GitgAuthenticationDialog* self);
VALA_EXTERN GitgAuthenticationLifeTime gitg_authentication_dialog_get_life_time (GitgAuthenticationDialog* self);
VALA_EXTERN GType gitg_avatar_cache_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgAvatarCache, g_object_unref)
VALA_EXTERN GitgAvatarCache* gitg_avatar_cache_default (void);
VALA_EXTERN void gitg_avatar_cache_load (GitgAvatarCache* self,
                             const gchar* email,
                             gint size,
                             GCancellable* cancellable,
                             GAsyncReadyCallback _callback_,
                             gpointer _user_data_);
VALA_EXTERN GdkPixbuf* gitg_avatar_cache_load_finish (GitgAvatarCache* self,
                                          GAsyncResult* _res_);
VALA_EXTERN GType gitg_repository_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgRepository, g_object_unref)
VALA_EXTERN GType gitg_parsed_ref_name_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgParsedRefName, g_object_unref)
VALA_EXTERN GType gitg_ref_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_ref_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgRef, g_object_unref)
VALA_EXTERN GType gitg_branch_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_branch_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgBranchBase, g_object_unref)
VALA_EXTERN GitgBranchBase* gitg_branch_base_new (void);
VALA_EXTERN GitgBranchBase* gitg_branch_base_construct (GType object_type);
VALA_EXTERN GitgRef* gitg_branch_get_upstream (GitgBranch* self,
                                   GError** error);
VALA_EXTERN GType gitg_cell_renderer_lanes_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgCellRendererLanes, g_object_unref)
VALA_EXTERN GitgRef* gitg_cell_renderer_lanes_get_ref_at_pos (GitgCellRendererLanes* self,
                                                  GtkWidget* widget,
                                                  gint x,
                                                  gint cell_w,
                                                  gint* hot_x);
VALA_EXTERN GitgCellRendererLanes* gitg_cell_renderer_lanes_new (void);
VALA_EXTERN GitgCellRendererLanes* gitg_cell_renderer_lanes_construct (GType object_type);
VALA_EXTERN GType gitg_commit_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgCommit, g_object_unref)
VALA_EXTERN GitgCommit* gitg_cell_renderer_lanes_get_commit (GitgCellRendererLanes* self);
VALA_EXTERN void gitg_cell_renderer_lanes_set_commit (GitgCellRendererLanes* self,
                                          GitgCommit* value);
VALA_EXTERN GitgCommit* gitg_cell_renderer_lanes_get_next_commit (GitgCellRendererLanes* self);
VALA_EXTERN void gitg_cell_renderer_lanes_set_next_commit (GitgCellRendererLanes* self,
                                               GitgCommit* value);
VALA_EXTERN guint gitg_cell_renderer_lanes_get_lane_width (GitgCellRendererLanes* self);
VALA_EXTERN void gitg_cell_renderer_lanes_set_lane_width (GitgCellRendererLanes* self,
                                              guint value);
VALA_EXTERN guint gitg_cell_renderer_lanes_get_dot_width (GitgCellRendererLanes* self);
VALA_EXTERN void gitg_cell_renderer_lanes_set_dot_width (GitgCellRendererLanes* self,
                                             guint value);
VALA_EXTERN GSList* gitg_cell_renderer_lanes_get_labels (GitgCellRendererLanes* self);
VALA_EXTERN void gitg_cell_renderer_lanes_set_labels (GitgCellRendererLanes* self,
                                          GSList* value);
VALA_EXTERN GType gitg_color_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgColor, g_object_unref)
VALA_EXTERN void gitg_color_reset (void);
VALA_EXTERN void gitg_color_components (GitgColor* self,
                            gdouble* r,
                            gdouble* g,
                            gdouble* b);
VALA_EXTERN GitgColor* gitg_color_next (void);
VALA_EXTERN GitgColor* gitg_color_next_index (GitgColor* self);
VALA_EXTERN GitgColor* gitg_color_copy (GitgColor* self);
VALA_EXTERN GitgColor* gitg_color_new (void);
VALA_EXTERN GitgColor* gitg_color_construct (GType object_type);
VALA_EXTERN gdouble gitg_color_get_r (GitgColor* self);
VALA_EXTERN gdouble gitg_color_get_g (GitgColor* self);
VALA_EXTERN gdouble gitg_color_get_b (GitgColor* self);
VALA_EXTERN GType gitg_commit_list_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgCommitListView, g_object_unref)
VALA_EXTERN GType gitg_commit_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgCommitModel, g_object_unref)
VALA_EXTERN GitgCommitListView* gitg_commit_list_view_new (GitgCommitModel* model);
VALA_EXTERN GitgCommitListView* gitg_commit_list_view_construct (GType object_type,
                                                     GitgCommitModel* model);
VALA_EXTERN GitgCommitListView* gitg_commit_list_view_new_for_repository (GitgRepository* repository);
VALA_EXTERN GitgCommitListView* gitg_commit_list_view_construct_for_repository (GType object_type,
                                                                    GitgRepository* repository);
VALA_EXTERN GtkCellRenderer* gitg_commit_list_view_find_cell_at_pos (GitgCommitListView* self,
                                                         GtkTreeViewColumn* column,
                                                         GtkTreePath* path,
                                                         gint x,
                                                         gint* width);
VALA_EXTERN GType gitg_commit_model_columns_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_commit_model_columns_type (GitgCommitModelColumns self);
VALA_EXTERN GgitOId** gitg_commit_model_get_permanent_lanes (GitgCommitModel* self,
                                                 gint* result_length1);
VALA_EXTERN void gitg_commit_model_set_permanent_lanes (GitgCommitModel* self,
                                            GgitOId** value,
                                            gint value_length1);
VALA_EXTERN GitgCommitModel* gitg_commit_model_new (GitgRepository* repository);
VALA_EXTERN GitgCommitModel* gitg_commit_model_construct (GType object_type,
                                              GitgRepository* repository);
VALA_EXTERN void gitg_commit_model_reload (GitgCommitModel* self);
VALA_EXTERN guint gitg_commit_model_size (GitgCommitModel* self);
VALA_EXTERN GitgCommit* gitg_commit_model_get (GitgCommitModel* self,
                                   guint idx);
VALA_EXTERN void gitg_commit_model_set_include (GitgCommitModel* self,
                                    GgitOId** ids,
                                    gint ids_length1);
VALA_EXTERN GgitOId** gitg_commit_model_get_include (GitgCommitModel* self,
                                         gint* result_length1);
VALA_EXTERN void gitg_commit_model_set_exclude (GitgCommitModel* self,
                                    GgitOId** ids,
                                    gint ids_length1);
VALA_EXTERN GitgCommit* gitg_commit_model_commit_from_iter (GitgCommitModel* self,
                                                GtkTreeIter* iter);
VALA_EXTERN GtkTreePath* gitg_commit_model_path_from_commit (GitgCommitModel* self,
                                                 GitgCommit* commit);
VALA_EXTERN GitgCommit* gitg_commit_model_commit_from_path (GitgCommitModel* self,
                                                GtkTreePath* path);
VALA_EXTERN guint gitg_commit_model_get_limit (GitgCommitModel* self);
VALA_EXTERN void gitg_commit_model_set_limit (GitgCommitModel* self,
                                  guint value);
VALA_EXTERN GgitSortMode gitg_commit_model_get_sort_mode (GitgCommitModel* self);
VALA_EXTERN void gitg_commit_model_set_sort_mode (GitgCommitModel* self,
                                      GgitSortMode value);
VALA_EXTERN GitgRepository* gitg_commit_model_get_repository (GitgCommitModel* self);
VALA_EXTERN void gitg_commit_model_set_repository (GitgCommitModel* self,
                                       GitgRepository* value);
VALA_EXTERN GType gitg_lane_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgLane, g_object_unref)
VALA_EXTERN GSList* gitg_commit_get_lanes (GitgCommit* self);
VALA_EXTERN GSList* gitg_commit_insert_lane (GitgCommit* self,
                                 GitgLane* lane,
                                 gint idx);
VALA_EXTERN GSList* gitg_commit_remove_lane (GitgCommit* self,
                                 GitgLane* lane);
VALA_EXTERN void gitg_commit_update_lanes (GitgCommit* self,
                               GSList* lanes,
                               gint mylane);
VALA_EXTERN GgitDiff* gitg_commit_get_diff (GitgCommit* self,
                                GgitDiffOptions* options,
                                gint parent);
VALA_EXTERN GgitNote* gitg_commit_get_note (GitgCommit* self);
VALA_EXTERN GitgCommit* gitg_commit_new (void);
VALA_EXTERN GitgCommit* gitg_commit_construct (GType object_type);
VALA_EXTERN GType gitg_lane_tag_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GitgLaneTag gitg_commit_get_tag (GitgCommit* self);
VALA_EXTERN void gitg_commit_set_tag (GitgCommit* self,
                          GitgLaneTag value);
VALA_EXTERN guint gitg_commit_get_mylane (GitgCommit* self);
VALA_EXTERN void gitg_commit_set_mylane (GitgCommit* self,
                             guint value);
VALA_EXTERN GitgLane* gitg_commit_get_lane (GitgCommit* self);
VALA_EXTERN gchar* gitg_commit_get_format_patch_name (GitgCommit* self);
VALA_EXTERN gchar* gitg_commit_get_committer_date_for_display (GitgCommit* self);
VALA_EXTERN gchar* gitg_commit_get_author_date_for_display (GitgCommit* self);
VALA_EXTERN GQuark gitg_credentials_error_quark (void);
VALA_EXTERN GType gitg_credentials_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gpointer gitg_credentials_manager_ref (gpointer instance);
VALA_EXTERN void gitg_credentials_manager_unref (gpointer instance);
VALA_EXTERN GParamSpec* gitg_param_spec_credentials_manager (const gchar* name,
                                                 const gchar* nick,
                                                 const gchar* blurb,
                                                 GType object_type,
                                                 GParamFlags flags);
VALA_EXTERN void gitg_value_set_credentials_manager (GValue* value,
                                         gpointer v_object);
VALA_EXTERN void gitg_value_take_credentials_manager (GValue* value,
                                          gpointer v_object);
VALA_EXTERN gpointer gitg_value_get_credentials_manager (const GValue* value);
VALA_EXTERN GType gitg_credentials_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgCredentialsManager, gitg_credentials_manager_unref)
VALA_EXTERN GitgCredentialsManager* gitg_credentials_manager_new (GgitConfig* config,
                                                      GtkWindow* window,
                                                      gboolean save_user_in_config);
VALA_EXTERN GitgCredentialsManager* gitg_credentials_manager_construct (GType object_type,
                                                            GgitConfig* config,
                                                            GtkWindow* window,
                                                            gboolean save_user_in_config);
VALA_EXTERN GgitCred* gitg_credentials_manager_credentials (GitgCredentialsManager* self,
                                                const gchar* url,
                                                const gchar* username,
                                                GgitCredtype allowed_types,
                                                GError** error);
VALA_EXTERN GQuark gitg_date_error_quark (void);
VALA_EXTERN GType gitg_date_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_date_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgDate, g_object_unref)
VALA_EXTERN GitgDate* gitg_date_new (const gchar* date,
                         GError** error);
VALA_EXTERN GitgDate* gitg_date_construct (GType object_type,
                               const gchar* date,
                               GError** error);
VALA_EXTERN gchar* gitg_date_for_display (GitgDate* self);
VALA_EXTERN GitgDate* gitg_date_new_for_date_time (GDateTime* dt);
VALA_EXTERN GitgDate* gitg_date_construct_for_date_time (GType object_type,
                                             GDateTime* dt);
VALA_EXTERN GDateTime* gitg_date_parse (const gchar* date,
                            GError** error);
VALA_EXTERN const gchar* gitg_date_get_date_string (GitgDate* self);
VALA_EXTERN void gitg_date_set_date_string (GitgDate* self,
                                const gchar* value);
VALA_EXTERN GDateTime* gitg_date_get_date (GitgDate* self);
VALA_EXTERN GType gitg_diff_stat_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgDiffStat, g_object_unref)
VALA_EXTERN GitgDiffStat* gitg_diff_stat_new (void);
VALA_EXTERN GitgDiffStat* gitg_diff_stat_construct (GType object_type);
VALA_EXTERN guint gitg_diff_stat_get_added (GitgDiffStat* self);
VALA_EXTERN void gitg_diff_stat_set_added (GitgDiffStat* self,
                               guint value);
VALA_EXTERN guint gitg_diff_stat_get_removed (GitgDiffStat* self);
VALA_EXTERN void gitg_diff_stat_set_removed (GitgDiffStat* self,
                                 guint value);
VALA_EXTERN GType gitg_diff_view_options_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgDiffViewOptions, g_object_unref)
VALA_EXTERN GType gitg_diff_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgDiffView, g_object_unref)
VALA_EXTERN GitgDiffViewOptions* gitg_diff_view_options_new (GitgDiffView* view);
VALA_EXTERN GitgDiffViewOptions* gitg_diff_view_options_construct (GType object_type,
                                                       GitgDiffView* view);
VALA_EXTERN gint gitg_diff_view_options_get_context_lines (GitgDiffViewOptions* self);
VALA_EXTERN void gitg_diff_view_options_set_context_lines (GitgDiffViewOptions* self,
                                               gint value);
VALA_EXTERN GitgDiffView* gitg_diff_view_options_get_view (GitgDiffViewOptions* self);
VALA_EXTERN void gitg_diff_view_options_set_view (GitgDiffViewOptions* self,
                                      GitgDiffView* value);
VALA_EXTERN void gitg_diff_view_apply_link_tags (GitgDiffView* self,
                                     GtkTextBuffer* buffer,
                                     GRegex* regex,
                                     const gchar* replacement,
                                     GdkRGBA* custom_color_link,
                                     gboolean is_custom_color,
                                     gboolean is_custom_link);
VALA_EXTERN void gitg_diff_view_follow_if_link (GitgDiffView* self,
                                    GtkWidget* texview,
                                    GtkTextIter* iter);
VALA_EXTERN gpointer gitg_patch_set_ref (gpointer instance);
VALA_EXTERN void gitg_patch_set_unref (gpointer instance);
VALA_EXTERN GParamSpec* gitg_param_spec_patch_set (const gchar* name,
                                       const gchar* nick,
                                       const gchar* blurb,
                                       GType object_type,
                                       GParamFlags flags);
VALA_EXTERN void gitg_value_set_patch_set (GValue* value,
                               gpointer v_object);
VALA_EXTERN void gitg_value_take_patch_set (GValue* value,
                                gpointer v_object);
VALA_EXTERN gpointer gitg_value_get_patch_set (const GValue* value);
VALA_EXTERN GType gitg_patch_set_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgPatchSet, gitg_patch_set_unref)
VALA_EXTERN GitgPatchSet** gitg_diff_view_get_selection (GitgDiffView* self,
                                             gint* result_length1);
VALA_EXTERN GitgDiffView* gitg_diff_view_new (void);
VALA_EXTERN GitgDiffView* gitg_diff_view_construct (GType object_type);
VALA_EXTERN GgitDiffOptions* gitg_diff_view_get_options (GitgDiffView* self);
VALA_EXTERN gboolean gitg_diff_view_get_has_selection (GitgDiffView* self);
VALA_EXTERN GgitDiff* gitg_diff_view_get_diff (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_diff (GitgDiffView* self,
                              GgitDiff* value);
VALA_EXTERN GitgCommit* gitg_diff_view_get_commit (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_commit (GitgDiffView* self,
                                GitgCommit* value);
VALA_EXTERN gboolean gitg_diff_view_get_wrap_lines (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_wrap_lines (GitgDiffView* self,
                                    gboolean value);
VALA_EXTERN gboolean gitg_diff_view_get_staged (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_staged (GitgDiffView* self,
                                gboolean value);
VALA_EXTERN gboolean gitg_diff_view_get_unstaged (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_unstaged (GitgDiffView* self,
                                  gboolean value);
VALA_EXTERN gboolean gitg_diff_view_get_show_parents (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_show_parents (GitgDiffView* self,
                                      gboolean value);
VALA_EXTERN gboolean gitg_diff_view_get_default_collapse_all (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_default_collapse_all (GitgDiffView* self,
                                              gboolean value);
VALA_EXTERN gboolean gitg_diff_view_get_use_gravatar (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_use_gravatar (GitgDiffView* self,
                                      gboolean value);
VALA_EXTERN gint gitg_diff_view_get_tab_width (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_tab_width (GitgDiffView* self,
                                   gint value);
VALA_EXTERN gboolean gitg_diff_view_get_handle_selection (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_handle_selection (GitgDiffView* self,
                                          gboolean value);
VALA_EXTERN gboolean gitg_diff_view_get_highlight (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_highlight (GitgDiffView* self,
                                   gboolean value);
VALA_EXTERN GitgRepository* gitg_diff_view_get_repository (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_repository (GitgDiffView* self,
                                    GitgRepository* value);
VALA_EXTERN gboolean gitg_diff_view_get_new_is_workdir (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_new_is_workdir (GitgDiffView* self,
                                        gboolean value);
VALA_EXTERN gboolean gitg_diff_view_get_ignore_whitespace (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_ignore_whitespace (GitgDiffView* self,
                                           gboolean value);
VALA_EXTERN gboolean gitg_diff_view_get_changes_inline (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_changes_inline (GitgDiffView* self,
                                        gboolean value);
VALA_EXTERN gint gitg_diff_view_get_context_lines (GitgDiffView* self);
VALA_EXTERN void gitg_diff_view_set_context_lines (GitgDiffView* self,
                                       gint value);
VALA_EXTERN GType gitg_font_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgFontManager, g_object_unref)
VALA_EXTERN GitgFontManager* gitg_font_manager_new (GtkTextView* text_view,
                                        gboolean plugin);
VALA_EXTERN GitgFontManager* gitg_font_manager_construct (GType object_type,
                                              GtkTextView* text_view,
                                              gboolean plugin);
VALA_EXTERN GType gitg_hook_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgHook, g_object_unref)
VALA_EXTERN GitgHook* gitg_hook_new (const gchar* name);
VALA_EXTERN GitgHook* gitg_hook_construct (GType object_type,
                               const gchar* name);
VALA_EXTERN void gitg_hook_add_argument (GitgHook* self,
                             const gchar* arg);
VALA_EXTERN gboolean gitg_hook_exists_in (GitgHook* self,
                              GgitRepository* repository);
VALA_EXTERN gint gitg_hook_run_sync (GitgHook* self,
                         GgitRepository* repository,
                         GError** error);
VALA_EXTERN void gitg_hook_run (GitgHook* self,
                    GgitRepository* repository,
                    GAsyncReadyCallback _callback_,
                    gpointer _user_data_);
VALA_EXTERN gint gitg_hook_run_finish (GitgHook* self,
                           GAsyncResult* _res_,
                           GError** error);
VALA_EXTERN GeeHashMap* gitg_hook_get_environment (GitgHook* self);
VALA_EXTERN void gitg_hook_set_environment (GitgHook* self,
                                GeeHashMap* value);
VALA_EXTERN const gchar* gitg_hook_get_name (GitgHook* self);
VALA_EXTERN void gitg_hook_set_name (GitgHook* self,
                         const gchar* value);
VALA_EXTERN GFile* gitg_hook_get_working_directory (GitgHook* self);
VALA_EXTERN void gitg_hook_set_working_directory (GitgHook* self,
                                      GFile* value);
VALA_EXTERN gchar** gitg_hook_get_output (GitgHook* self,
                              gint* result_length1);
VALA_EXTERN GQuark gitg_init_error_quark (void);
VALA_EXTERN GType gitg_init_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void gitg_init (GError** error);
VALA_EXTERN gpointer gitg_label_renderer_ref (gpointer instance);
VALA_EXTERN void gitg_label_renderer_unref (gpointer instance);
VALA_EXTERN GParamSpec* gitg_param_spec_label_renderer (const gchar* name,
                                            const gchar* nick,
                                            const gchar* blurb,
                                            GType object_type,
                                            GParamFlags flags);
VALA_EXTERN void gitg_value_set_label_renderer (GValue* value,
                                    gpointer v_object);
VALA_EXTERN void gitg_value_take_label_renderer (GValue* value,
                                     gpointer v_object);
VALA_EXTERN gpointer gitg_value_get_label_renderer (const GValue* value);
VALA_EXTERN GType gitg_label_renderer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgLabelRenderer, gitg_label_renderer_unref)
VALA_EXTERN gint gitg_label_renderer_width (GtkWidget* widget,
                                PangoFontDescription* font,
                                GSList* labels);
VALA_EXTERN void gitg_label_renderer_draw (GtkWidget* widget,
                               PangoFontDescription* font,
                               cairo_t* context,
                               GSList* labels,
                               GdkRectangle* area);
VALA_EXTERN GitgRef* gitg_label_renderer_get_ref_at_pos (GtkWidget* widget,
                                             PangoFontDescription* font,
                                             GSList* labels,
                                             gint x,
                                             gint* hot_x);
VALA_EXTERN GdkPixbuf* gitg_label_renderer_render_ref (GtkWidget* widget,
                                           PangoFontDescription* font,
                                           GitgRef* r,
                                           gint height,
                                           gint minwidth);
VALA_EXTERN GitgLabelRenderer* gitg_label_renderer_new (void);
VALA_EXTERN GitgLabelRenderer* gitg_label_renderer_construct (GType object_type);
VALA_EXTERN GType gitg_lanes_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgLanes, g_object_unref)
VALA_EXTERN GitgLanes* gitg_lanes_new (void);
VALA_EXTERN GitgLanes* gitg_lanes_construct (GType object_type);
VALA_EXTERN void gitg_lanes_reset (GitgLanes* self,
                       GgitOId** reserved,
                       gint reserved_length1,
                       GeeHashSet* roots);
VALA_EXTERN gboolean gitg_lanes_next (GitgLanes* self,
                          GitgCommit* next,
                          GSList** lanes,
                          gint* nextpos,
                          gboolean save_miss);
VALA_EXTERN gint gitg_lanes_get_inactive_max (GitgLanes* self);
VALA_EXTERN void gitg_lanes_set_inactive_max (GitgLanes* self,
                                  gint value);
VALA_EXTERN gint gitg_lanes_get_inactive_collapse (GitgLanes* self);
VALA_EXTERN void gitg_lanes_set_inactive_collapse (GitgLanes* self,
                                       gint value);
VALA_EXTERN gint gitg_lanes_get_inactive_gap (GitgLanes* self);
VALA_EXTERN void gitg_lanes_set_inactive_gap (GitgLanes* self,
                                  gint value);
VALA_EXTERN gboolean gitg_lanes_get_inactive_enabled (GitgLanes* self);
VALA_EXTERN void gitg_lanes_set_inactive_enabled (GitgLanes* self,
                                      gboolean value);
VALA_EXTERN GeeLinkedList* gitg_lanes_get_miss_commits (GitgLanes* self);
VALA_EXTERN void gitg_lanes_set_miss_commits (GitgLanes* self,
                                  GeeLinkedList* value);
VALA_EXTERN GitgLane* gitg_lane_new (void);
VALA_EXTERN GitgLane* gitg_lane_construct (GType object_type);
VALA_EXTERN GitgLane* gitg_lane_new_with_color (GitgColor* color);
VALA_EXTERN GitgLane* gitg_lane_construct_with_color (GType object_type,
                                          GitgColor* color);
VALA_EXTERN GitgLane* gitg_lane_copy (GitgLane* self);
VALA_EXTERN GitgLane* gitg_lane_dup (GitgLane* self);
VALA_EXTERN GType gitg_progress_bin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgProgressBin, g_object_unref)
VALA_EXTERN GitgProgressBin* gitg_progress_bin_new (void);
VALA_EXTERN GitgProgressBin* gitg_progress_bin_construct (GType object_type);
VALA_EXTERN gdouble gitg_progress_bin_get_fraction (GitgProgressBin* self);
VALA_EXTERN void gitg_progress_bin_set_fraction (GitgProgressBin* self,
                                     gdouble value);
VALA_EXTERN GType gitg_ref_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgRefBase, g_object_unref)
VALA_EXTERN GitgRefBase* gitg_ref_base_new (void);
VALA_EXTERN GitgRefBase* gitg_ref_base_construct (GType object_type);
VALA_EXTERN GType gitg_ref_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GitgParsedRefName* gitg_parsed_ref_name_new (const gchar* name);
VALA_EXTERN GitgParsedRefName* gitg_parsed_ref_name_construct (GType object_type,
                                                   const gchar* name);
VALA_EXTERN GitgRefType gitg_parsed_ref_name_get_rtype (GitgParsedRefName* self);
VALA_EXTERN gchar* gitg_parsed_ref_name_get_name (GitgParsedRefName* self);
VALA_EXTERN gchar* gitg_parsed_ref_name_get_shortname (GitgParsedRefName* self);
VALA_EXTERN gchar* gitg_parsed_ref_name_get_remote_name (GitgParsedRefName* self);
VALA_EXTERN gchar* gitg_parsed_ref_name_get_remote_branch (GitgParsedRefName* self);
VALA_EXTERN const gchar* gitg_parsed_ref_name_get_prefix (GitgParsedRefName* self);
VALA_EXTERN GitgRepository* gitg_ref_get_owner (GitgRef* self);
VALA_EXTERN GitgParsedRefName* gitg_ref_get_d_parsed_name (GitgRef* self);
VALA_EXTERN void gitg_ref_set_d_parsed_name (GitgRef* self,
                                 GitgParsedRefName* value);
VALA_EXTERN GList* gitg_ref_get_d_pushes (GitgRef* self);
VALA_EXTERN void gitg_ref_set_d_pushes (GitgRef* self,
                            GList* value);
VALA_EXTERN GitgRefState gitg_ref_get_state (GitgRef* self);
VALA_EXTERN void gitg_ref_set_state (GitgRef* self,
                         GitgRefState value);
VALA_EXTERN gboolean gitg_ref_get_working (GitgRef* self);
VALA_EXTERN void gitg_ref_set_working (GitgRef* self,
                           gboolean value);
VALA_EXTERN GitgParsedRefName* gitg_ref_get_parsed_name (GitgRef* self);
VALA_EXTERN GList* gitg_ref_get_pushes (GitgRef* self);
VALA_EXTERN GType gitg_remote_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GQuark gitg_remote_error_quark (void);
VALA_EXTERN GType gitg_remote_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_credentials_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgCredentialsProvider, g_object_unref)
VALA_EXTERN GgitCred* gitg_credentials_provider_credentials (GitgCredentialsProvider* self,
                                                 const gchar* url,
                                                 const gchar* username_from_url,
                                                 GgitCredtype allowed_types,
                                                 GError** error);
VALA_EXTERN GType gitg_remote_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgRemote, g_object_unref)
VALA_EXTERN void gitg_remote_connect (GitgRemote* self,
                          GgitDirection direction,
                          GgitRemoteCallbacks* callbacks,
                          GAsyncReadyCallback _callback_,
                          gpointer _user_data_);
VALA_EXTERN void gitg_remote_connect_finish (GitgRemote* self,
                                 GAsyncResult* _res_,
                                 GError** error);
VALA_EXTERN void gitg_remote_disconnect (GitgRemote* self,
                             GAsyncReadyCallback _callback_,
                             gpointer _user_data_);
VALA_EXTERN void gitg_remote_disconnect_finish (GitgRemote* self,
                                    GAsyncResult* _res_,
                                    GError** error);
VALA_EXTERN void gitg_remote_download (GitgRemote* self,
                           GgitRemoteCallbacks* callbacks,
                           GAsyncReadyCallback _callback_,
                           gpointer _user_data_);
VALA_EXTERN void gitg_remote_download_finish (GitgRemote* self,
                                  GAsyncResult* _res_,
                                  GError** error);
VALA_EXTERN void gitg_remote_push (GitgRemote* self,
                       const gchar* branch,
                       GgitRemoteCallbacks* callbacks,
                       GAsyncReadyCallback _callback_,
                       gpointer _user_data_);
VALA_EXTERN void gitg_remote_push_finish (GitgRemote* self,
                              GAsyncResult* _res_,
                              GError** error);
VALA_EXTERN void gitg_remote_fetch (GitgRemote* self,
                        const gchar* message,
                        GgitRemoteCallbacks* callbacks,
                        GAsyncReadyCallback _callback_,
                        gpointer _user_data_);
VALA_EXTERN void gitg_remote_fetch_finish (GitgRemote* self,
                               GAsyncResult* _res_,
                               GError** error);
VALA_EXTERN GitgRemote* gitg_remote_new (void);
VALA_EXTERN GitgRemote* gitg_remote_construct (GType object_type);
VALA_EXTERN gdouble gitg_remote_get_transfer_progress (GitgRemote* self);
VALA_EXTERN GitgRemoteState gitg_remote_get_state (GitgRemote* self);
VALA_EXTERN gchar** gitg_remote_get_fetch_specs (GitgRemote* self,
                                     gint* result_length1);
VALA_EXTERN void gitg_remote_set_fetch_specs (GitgRemote* self,
                                  gchar** value,
                                  gint value_length1);
VALA_EXTERN gchar** gitg_remote_get_push_specs (GitgRemote* self,
                                    gint* result_length1);
VALA_EXTERN void gitg_remote_set_push_specs (GitgRemote* self,
                                 gchar** value,
                                 gint value_length1);
VALA_EXTERN GitgCredentialsProvider* gitg_remote_get_credentials_provider (GitgRemote* self);
VALA_EXTERN void gitg_remote_set_credentials_provider (GitgRemote* self,
                                           GitgCredentialsProvider* value);
VALA_EXTERN GType gitg_selection_mode_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_repository_list_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgRepositoryListBox, g_object_unref)
VALA_EXTERN void gitg_repository_list_box_populate_bookmarks (GitgRepositoryListBox* self);
VALA_EXTERN GType gitg_repository_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgRepositoryListBoxRow, g_object_unref)
VALA_EXTERN void gitg_repository_list_box_end_cloning (GitgRepositoryListBox* self,
                                           GitgRepositoryListBoxRow* row,
                                           GitgRepository* repository);
VALA_EXTERN GitgRepositoryListBoxRow* gitg_repository_list_box_begin_cloning (GitgRepositoryListBox* self,
                                                                  GFile* location);
VALA_EXTERN GitgRepositoryListBoxRow* gitg_repository_list_box_add_repository (GitgRepositoryListBox* self,
                                                                   GitgRepository* repository,
                                                                   GDateTime* visited);
VALA_EXTERN GitgRepositoryListBoxRow** gitg_repository_list_box_get_selection (GitgRepositoryListBox* self,
                                                                   gint* result_length1);
VALA_EXTERN void gitg_repository_list_box_filter_text (GitgRepositoryListBox* self,
                                           const gchar* text);
VALA_EXTERN GitgRepositoryListBox* gitg_repository_list_box_new (void);
VALA_EXTERN GitgRepositoryListBox* gitg_repository_list_box_construct (GType object_type);
VALA_EXTERN GitgSelectionMode gitg_repository_list_box_get_mode (GitgRepositoryListBox* self);
VALA_EXTERN void gitg_repository_list_box_set_mode (GitgRepositoryListBox* self,
                                        GitgSelectionMode value);
VALA_EXTERN gboolean gitg_repository_list_box_get_bookmarks_from_recent_files (GitgRepositoryListBox* self);
VALA_EXTERN void gitg_repository_list_box_set_bookmarks_from_recent_files (GitgRepositoryListBox* self,
                                                               gboolean value);
VALA_EXTERN GFile* gitg_repository_list_box_get_location (GitgRepositoryListBox* self);
VALA_EXTERN void gitg_repository_list_box_set_location (GitgRepositoryListBox* self,
                                            GFile* value);
VALA_EXTERN gboolean gitg_repository_list_box_get_has_selection (GitgRepositoryListBox* self);
VALA_EXTERN GitgRepositoryListBoxRow* gitg_repository_list_box_row_new (GitgRepository* repository,
                                                            const gchar* dirname);
VALA_EXTERN GitgRepositoryListBoxRow* gitg_repository_list_box_row_construct (GType object_type,
                                                                  GitgRepository* repository,
                                                                  const gchar* dirname);
VALA_EXTERN GitgSelectionMode gitg_repository_list_box_row_get_mode (GitgRepositoryListBoxRow* self);
VALA_EXTERN void gitg_repository_list_box_row_set_mode (GitgRepositoryListBoxRow* self,
                                            GitgSelectionMode value);
VALA_EXTERN gboolean gitg_repository_list_box_row_get_selected (GitgRepositoryListBoxRow* self);
VALA_EXTERN void gitg_repository_list_box_row_set_selected (GitgRepositoryListBoxRow* self,
                                                gboolean value);
VALA_EXTERN GitgRepository* gitg_repository_list_box_row_get_repository (GitgRepositoryListBoxRow* self);
VALA_EXTERN void gitg_repository_list_box_row_set_repository (GitgRepositoryListBoxRow* self,
                                                  GitgRepository* value);
VALA_EXTERN gboolean gitg_repository_list_box_row_get_can_remove (GitgRepositoryListBoxRow* self);
VALA_EXTERN void gitg_repository_list_box_row_set_can_remove (GitgRepositoryListBoxRow* self,
                                                  gboolean value);
VALA_EXTERN GDateTime* gitg_repository_list_box_row_get_time (GitgRepositoryListBoxRow* self);
VALA_EXTERN void gitg_repository_list_box_row_set_time (GitgRepositoryListBoxRow* self,
                                            GDateTime* value);
VALA_EXTERN void gitg_repository_list_box_row_set_fraction (GitgRepositoryListBoxRow* self,
                                                gdouble value);
VALA_EXTERN const gchar* gitg_repository_list_box_row_get_repository_name (GitgRepositoryListBoxRow* self);
VALA_EXTERN void gitg_repository_list_box_row_set_repository_name (GitgRepositoryListBoxRow* self,
                                                       const gchar* value);
VALA_EXTERN const gchar* gitg_repository_list_box_row_get_dirname (GitgRepositoryListBoxRow* self);
VALA_EXTERN void gitg_repository_list_box_row_set_dirname (GitgRepositoryListBoxRow* self,
                                               const gchar* value);
VALA_EXTERN const gchar* gitg_repository_list_box_row_get_branch_name (GitgRepositoryListBoxRow* self);
VALA_EXTERN void gitg_repository_list_box_row_set_branch_name (GitgRepositoryListBoxRow* self,
                                                   const gchar* value);
VALA_EXTERN gboolean gitg_repository_list_box_row_get_loading (GitgRepositoryListBoxRow* self);
VALA_EXTERN void gitg_repository_list_box_row_set_loading (GitgRepositoryListBoxRow* self,
                                               gboolean value);
VALA_EXTERN GitgRepository* gitg_repository_new (GFile* location,
                                     GFile* workdir,
                                     GError** error);
VALA_EXTERN GitgRepository* gitg_repository_construct (GType object_type,
                                           GFile* location,
                                           GFile* workdir,
                                           GError** error);
VALA_EXTERN void gitg_repository_clear_refs_cache (GitgRepository* self);
VALA_EXTERN GSList* gitg_repository_refs_for_id (GitgRepository* self,
                                     GgitOId* id);
VALA_EXTERN gpointer gitg_repository_lookup (GitgRepository* self,
                                 GType t_type,
                                 GBoxedCopyFunc t_dup_func,
                                 GDestroyNotify t_destroy_func,
                                 GgitOId* id,
                                 GError** error);
VALA_EXTERN GitgRef* gitg_repository_lookup_reference (GitgRepository* self,
                                           const gchar* name,
                                           GError** error);
VALA_EXTERN GitgRef* gitg_repository_lookup_reference_dwim (GitgRepository* self,
                                                const gchar* short_name,
                                                GError** error);
VALA_EXTERN GitgBranch* gitg_repository_create_branch (GitgRepository* self,
                                           const gchar* name,
                                           GgitObject* obj,
                                           GgitCreateFlags flags,
                                           GError** error);
VALA_EXTERN GitgRef* gitg_repository_create_reference (GitgRepository* self,
                                           const gchar* name,
                                           GgitOId* oid,
                                           const gchar* message,
                                           GError** error);
VALA_EXTERN GitgRef* gitg_repository_create_symbolic_reference (GitgRepository* self,
                                                    const gchar* name,
                                                    const gchar* target,
                                                    const gchar* message,
                                                    GError** error);
VALA_EXTERN GitgRef* gitg_repository_get_head (GitgRepository* self,
                                   GError** error);
VALA_EXTERN GitgRepository* gitg_repository_init_repository (GFile* location,
                                                 gboolean is_bare,
                                                 GError** error);
VALA_EXTERN GgitSignature* gitg_repository_get_signature_with_environment (GitgRepository* self,
                                                               GeeMap* env,
                                                               const gchar* envname,
                                                               GError** error);
VALA_EXTERN gchar* gitg_repository_get_name (GitgRepository* self);
VALA_EXTERN GType gitg_stage_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgStage, g_object_unref)
VALA_EXTERN GitgStage* gitg_repository_get_stage (GitgRepository* self);
VALA_EXTERN gpointer gitg_resource_ref (gpointer instance);
VALA_EXTERN void gitg_resource_unref (gpointer instance);
VALA_EXTERN GParamSpec* gitg_param_spec_resource (const gchar* name,
                                      const gchar* nick,
                                      const gchar* blurb,
                                      GType object_type,
                                      GParamFlags flags);
VALA_EXTERN void gitg_value_set_resource (GValue* value,
                              gpointer v_object);
VALA_EXTERN void gitg_value_take_resource (GValue* value,
                               gpointer v_object);
VALA_EXTERN gpointer gitg_value_get_resource (const GValue* value);
VALA_EXTERN GType gitg_resource_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgResource, gitg_resource_unref)
VALA_EXTERN GtkCssProvider* gitg_resource_load_css (const gchar* id);
VALA_EXTERN GitgResource* gitg_resource_new (void);
VALA_EXTERN GitgResource* gitg_resource_construct (GType object_type);
VALA_EXTERN GType gitg_sidebar_hint_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_sidebar_column_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_sidebar_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgSidebarItem, g_object_unref)
VALA_EXTERN void gitg_sidebar_item_activate (GitgSidebarItem* self,
                                 gint numclick);
VALA_EXTERN gchar* gitg_sidebar_item_get_text (GitgSidebarItem* self);
VALA_EXTERN gchar* gitg_sidebar_item_get_icon_name (GitgSidebarItem* self);
VALA_EXTERN GType gitg_sidebar_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgSidebarStore, g_object_unref)
VALA_EXTERN GitgSidebarStore* gitg_sidebar_store_append_dummy (GitgSidebarStore* self,
                                                   const gchar* text);
VALA_EXTERN GitgSidebarStore* gitg_sidebar_store_append (GitgSidebarStore* self,
                                             GitgSidebarItem* item);
VALA_EXTERN GType gitg_sidebar_store_sidebar_text_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgSidebarStoreSidebarText, g_object_unref)
VALA_EXTERN GType gitg_sidebar_store_sidebar_header_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgSidebarStoreSidebarHeader, g_object_unref)
VALA_EXTERN GitgSidebarStoreSidebarHeader* gitg_sidebar_store_begin_header (GitgSidebarStore* self,
                                                                const gchar* text,
                                                                guint id);
VALA_EXTERN GitgSidebarStore* gitg_sidebar_store_end_header (GitgSidebarStore* self);
VALA_EXTERN guint gitg_sidebar_store_begin_section (GitgSidebarStore* self);
VALA_EXTERN void gitg_sidebar_store_end_section (GitgSidebarStore* self);
VALA_EXTERN void gitg_sidebar_store_clear (GitgSidebarStore* self);
VALA_EXTERN GitgSidebarItem* gitg_sidebar_store_item_for_iter (GitgSidebarStore* self,
                                                   GtkTreeIter* iter);
VALA_EXTERN void gitg_sidebar_store_activate (GitgSidebarStore* self,
                                  GtkTreeIter* iter,
                                  gint numclick);
VALA_EXTERN GitgSidebarStore* gitg_sidebar_store_new (void);
VALA_EXTERN GitgSidebarStore* gitg_sidebar_store_construct (GType object_type);
VALA_EXTERN gboolean gitg_sidebar_store_get_clearing (GitgSidebarStore* self);
VALA_EXTERN GitgSidebarStoreSidebarText* gitg_sidebar_store_sidebar_text_new (const gchar* text);
VALA_EXTERN GitgSidebarStoreSidebarText* gitg_sidebar_store_sidebar_text_construct (GType object_type,
                                                                        const gchar* text);
VALA_EXTERN GitgSidebarStoreSidebarHeader* gitg_sidebar_store_sidebar_header_new (const gchar* text,
                                                                      guint id);
VALA_EXTERN GitgSidebarStoreSidebarHeader* gitg_sidebar_store_sidebar_header_construct (GType object_type,
                                                                            const gchar* text,
                                                                            guint id);
VALA_EXTERN guint gitg_sidebar_store_sidebar_header_get_id (GitgSidebarStoreSidebarHeader* self);
VALA_EXTERN GType gitg_sidebar_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgSidebar, g_object_unref)
VALA_EXTERN gboolean gitg_sidebar_select_function (GitgSidebar* self,
                                       GtkTreeSelection* sel,
                                       GtkTreeModel* model,
                                       GtkTreePath* path,
                                       gboolean cursel);
VALA_EXTERN void gitg_sidebar_selection_changed (GitgSidebar* self,
                                     GtkTreeSelection* sel);
VALA_EXTERN gboolean gitg_sidebar_get_selected_iter (GitgSidebar* self,
                                         GtkTreeIter* iter);
VALA_EXTERN gpointer gitg_sidebar_get_selected_item (GitgSidebar* self,
                                         GType t_type,
                                         GBoxedCopyFunc t_dup_func,
                                         GDestroyNotify t_destroy_func);
VALA_EXTERN gpointer* gitg_sidebar_get_selected_items (GitgSidebar* self,
                                           GType t_type,
                                           GBoxedCopyFunc t_dup_func,
                                           GDestroyNotify t_destroy_func,
                                           gint* result_length1);
VALA_EXTERN void gitg_sidebar_select (GitgSidebar* self,
                          GitgSidebarItem* item);
VALA_EXTERN gboolean gitg_sidebar_is_selected (GitgSidebar* self,
                                   GitgSidebarItem* item);
VALA_EXTERN GitgSidebar* gitg_sidebar_new (void);
VALA_EXTERN GitgSidebar* gitg_sidebar_construct (GType object_type);
VALA_EXTERN GitgSidebarStore* gitg_sidebar_get_model (GitgSidebar* self);
VALA_EXTERN void gitg_sidebar_set_model (GitgSidebar* self,
                             GitgSidebarStore* value);
VALA_EXTERN GType gitg_stage_status_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgStageStatusItem, g_object_unref)
VALA_EXTERN gchar* gitg_stage_status_item_get_path (GitgStageStatusItem* self);
VALA_EXTERN gboolean gitg_stage_status_item_get_is_staged (GitgStageStatusItem* self);
VALA_EXTERN gboolean gitg_stage_status_item_get_is_unstaged (GitgStageStatusItem* self);
VALA_EXTERN gboolean gitg_stage_status_item_get_is_untracked (GitgStageStatusItem* self);
VALA_EXTERN gchar* gitg_stage_status_item_get_icon_name (GitgStageStatusItem* self);
VALA_EXTERN GType gitg_stage_status_file_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgStageStatusFile, g_object_unref)
VALA_EXTERN GitgStageStatusFile* gitg_stage_status_file_new (const gchar* path,
                                                 GgitStatusFlags flags);
VALA_EXTERN GitgStageStatusFile* gitg_stage_status_file_construct (GType object_type,
                                                       const gchar* path,
                                                       GgitStatusFlags flags);
VALA_EXTERN GgitStatusFlags gitg_stage_status_file_get_flags (GitgStageStatusFile* self);
VALA_EXTERN GType gitg_stage_status_submodule_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgStageStatusSubmodule, g_object_unref)
VALA_EXTERN GitgStageStatusSubmodule* gitg_stage_status_submodule_new (GgitSubmodule* submodule);
VALA_EXTERN GitgStageStatusSubmodule* gitg_stage_status_submodule_construct (GType object_type,
                                                                 GgitSubmodule* submodule);
VALA_EXTERN GgitSubmodule* gitg_stage_status_submodule_get_submodule (GitgStageStatusSubmodule* self);
VALA_EXTERN gboolean gitg_stage_status_submodule_get_is_dirty (GitgStageStatusSubmodule* self);
VALA_EXTERN GgitSubmoduleStatus gitg_stage_status_submodule_get_flags (GitgStageStatusSubmodule* self);
VALA_EXTERN GType gitg_stage_status_enumerator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgStageStatusEnumerator, g_object_unref)
VALA_EXTERN void gitg_stage_status_enumerator_cancel (GitgStageStatusEnumerator* self);
VALA_EXTERN void gitg_stage_status_enumerator_next_items (GitgStageStatusEnumerator* self,
                                              gint num,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_);
VALA_EXTERN GitgStageStatusItem** gitg_stage_status_enumerator_next_items_finish (GitgStageStatusEnumerator* self,
                                                                      GAsyncResult* _res_,
                                                                      gint* result_length1);
VALA_EXTERN GType gitg_stage_commit_options_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GQuark gitg_stage_error_quark (void);
VALA_EXTERN GType gitg_stage_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_patch_set_patch_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gitg_patch_set_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GitgPatchSetPatch* gitg_patch_set_patch_dup (const GitgPatchSetPatch* self);
VALA_EXTERN void gitg_patch_set_patch_free (GitgPatchSetPatch* self);
VALA_EXTERN GitgPatchSet* gitg_patch_set_reversed (GitgPatchSet* self);
VALA_EXTERN GitgPatchSet* gitg_patch_set_new (void);
VALA_EXTERN GitgPatchSet* gitg_patch_set_construct (GType object_type);
VALA_EXTERN void gitg_stage_refresh (GitgStage* self,
                         GAsyncReadyCallback _callback_,
                         gpointer _user_data_);
VALA_EXTERN void gitg_stage_refresh_finish (GitgStage* self,
                                GAsyncResult* _res_,
                                GError** error);
VALA_EXTERN void gitg_stage_get_head_tree (GitgStage* self,
                               GAsyncReadyCallback _callback_,
                               gpointer _user_data_);
VALA_EXTERN GgitTree* gitg_stage_get_head_tree_finish (GitgStage* self,
                                           GAsyncResult* _res_,
                                           GError** error);
VALA_EXTERN GitgStageStatusEnumerator* gitg_stage_file_status (GitgStage* self,
                                                   GgitStatusOptions* options);
VALA_EXTERN void gitg_stage_pre_commit_hook (GitgStage* self,
                                 GgitSignature* author,
                                 GAsyncReadyCallback _callback_,
                                 gpointer _user_data_);
VALA_EXTERN void gitg_stage_pre_commit_hook_finish (GitgStage* self,
                                        GAsyncResult* _res_,
                                        GError** error);
VALA_EXTERN void gitg_stage_commit_index (GitgStage* self,
                              GgitIndex* index,
                              GgitRef* reference,
                              const gchar* message,
                              GgitSignature* author,
                              GgitSignature* committer,
                              GgitOId** parents,
                              gint parents_length1,
                              GitgStageCommitOptions options,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_);
VALA_EXTERN GgitOId* gitg_stage_commit_index_finish (GitgStage* self,
                                         GAsyncResult* _res_,
                                         GError** error);
VALA_EXTERN void gitg_stage_commit_tree (GitgStage* self,
                             GgitOId* treeoid,
                             GgitRef* reference,
                             const gchar* message,
                             GgitSignature* author,
                             GgitSignature* committer,
                             GgitOId** parents,
                             gint parents_length1,
                             GitgStageCommitOptions options,
                             GAsyncReadyCallback _callback_,
                             gpointer _user_data_);
VALA_EXTERN GgitOId* gitg_stage_commit_tree_finish (GitgStage* self,
                                        GAsyncResult* _res_,
                                        GError** error);
VALA_EXTERN void gitg_stage_commit (GitgStage* self,
                        const gchar* message,
                        GgitSignature* author,
                        GgitSignature* committer,
                        GitgStageCommitOptions options,
                        GAsyncReadyCallback _callback_,
                        gpointer _user_data_);
VALA_EXTERN GgitOId* gitg_stage_commit_finish (GitgStage* self,
                                   GAsyncResult* _res_,
                                   GError** error);
VALA_EXTERN void gitg_stage_revert (GitgStage* self,
                        GFile* file,
                        GAsyncReadyCallback _callback_,
                        gpointer _user_data_);
VALA_EXTERN void gitg_stage_revert_finish (GitgStage* self,
                               GAsyncResult* _res_,
                               GError** error);
VALA_EXTERN void gitg_stage_revert_path (GitgStage* self,
                             const gchar* path,
                             GAsyncReadyCallback _callback_,
                             gpointer _user_data_);
VALA_EXTERN void gitg_stage_revert_path_finish (GitgStage* self,
                                    GAsyncResult* _res_,
                                    GError** error);
VALA_EXTERN void gitg_stage_revert_patch (GitgStage* self,
                              GitgPatchSet* patch,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_);
VALA_EXTERN void gitg_stage_revert_patch_finish (GitgStage* self,
                                     GAsyncResult* _res_,
                                     GError** error);
VALA_EXTERN void gitg_stage_delete (GitgStage* self,
                        GFile* file,
                        GAsyncReadyCallback _callback_,
                        gpointer _user_data_);
VALA_EXTERN void gitg_stage_delete_finish (GitgStage* self,
                               GAsyncResult* _res_,
                               GError** error);
VALA_EXTERN void gitg_stage_delete_path (GitgStage* self,
                             const gchar* path,
                             GAsyncReadyCallback _callback_,
                             gpointer _user_data_);
VALA_EXTERN void gitg_stage_delete_path_finish (GitgStage* self,
                                    GAsyncResult* _res_,
                                    GError** error);
VALA_EXTERN void gitg_stage_stage (GitgStage* self,
                       GFile* file,
                       GAsyncReadyCallback _callback_,
                       gpointer _user_data_);
VALA_EXTERN void gitg_stage_stage_finish (GitgStage* self,
                              GAsyncResult* _res_,
                              GError** error);
VALA_EXTERN void gitg_stage_stage_path (GitgStage* self,
                            const gchar* path,
                            GAsyncReadyCallback _callback_,
                            gpointer _user_data_);
VALA_EXTERN void gitg_stage_stage_path_finish (GitgStage* self,
                                   GAsyncResult* _res_,
                                   GError** error);
VALA_EXTERN void gitg_stage_stage_commit (GitgStage* self,
                              const gchar* path,
                              GgitCommit* commit,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_);
VALA_EXTERN void gitg_stage_stage_commit_finish (GitgStage* self,
                                     GAsyncResult* _res_,
                                     GError** error);
VALA_EXTERN void gitg_stage_stage_patch (GitgStage* self,
                             GitgPatchSet* patch,
                             GAsyncReadyCallback _callback_,
                             gpointer _user_data_);
VALA_EXTERN void gitg_stage_stage_patch_finish (GitgStage* self,
                                    GAsyncResult* _res_,
                                    GError** error);
VALA_EXTERN void gitg_stage_unstage (GitgStage* self,
                         GFile* file,
                         GAsyncReadyCallback _callback_,
                         gpointer _user_data_);
VALA_EXTERN void gitg_stage_unstage_finish (GitgStage* self,
                                GAsyncResult* _res_,
                                GError** error);
VALA_EXTERN void gitg_stage_unstage_path (GitgStage* self,
                              const gchar* path,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_);
VALA_EXTERN void gitg_stage_unstage_path_finish (GitgStage* self,
                                     GAsyncResult* _res_,
                                     GError** error);
VALA_EXTERN void gitg_stage_unstage_patch (GitgStage* self,
                               GitgPatchSet* patch,
                               GAsyncReadyCallback _callback_,
                               gpointer _user_data_);
VALA_EXTERN void gitg_stage_unstage_patch_finish (GitgStage* self,
                                      GAsyncResult* _res_,
                                      GError** error);
VALA_EXTERN void gitg_stage_diff_index_all (GitgStage* self,
                                GitgStageStatusItem** files,
                                gint files_length1,
                                GgitDiffOptions* defopts,
                                GAsyncReadyCallback _callback_,
                                gpointer _user_data_);
VALA_EXTERN GgitDiff* gitg_stage_diff_index_all_finish (GitgStage* self,
                                            GAsyncResult* _res_,
                                            GError** error);
VALA_EXTERN void gitg_stage_diff_index (GitgStage* self,
                            GitgStageStatusItem* f,
                            GgitDiffOptions* defopts,
                            GAsyncReadyCallback _callback_,
                            gpointer _user_data_);
VALA_EXTERN GgitDiff* gitg_stage_diff_index_finish (GitgStage* self,
                                        GAsyncResult* _res_,
                                        GError** error);
VALA_EXTERN void gitg_stage_diff_workdir_all (GitgStage* self,
                                  GitgStageStatusItem** files,
                                  gint files_length1,
                                  GgitDiffOptions* defopts,
                                  GAsyncReadyCallback _callback_,
                                  gpointer _user_data_);
VALA_EXTERN GgitDiff* gitg_stage_diff_workdir_all_finish (GitgStage* self,
                                              GAsyncResult* _res_,
                                              GError** error);
VALA_EXTERN void gitg_stage_diff_workdir (GitgStage* self,
                              GitgStageStatusItem* f,
                              GgitDiffOptions* defopts,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_);
VALA_EXTERN GgitDiff* gitg_stage_diff_workdir_finish (GitgStage* self,
                                          GAsyncResult* _res_,
                                          GError** error);
VALA_EXTERN gpointer gitg_text_conv_ref (gpointer instance);
VALA_EXTERN void gitg_text_conv_unref (gpointer instance);
VALA_EXTERN GParamSpec* gitg_param_spec_text_conv (const gchar* name,
                                       const gchar* nick,
                                       const gchar* blurb,
                                       GType object_type,
                                       GParamFlags flags);
VALA_EXTERN void gitg_value_set_text_conv (GValue* value,
                               gpointer v_object);
VALA_EXTERN void gitg_value_take_text_conv (GValue* value,
                                gpointer v_object);
VALA_EXTERN gpointer gitg_value_get_text_conv (const GValue* value);
VALA_EXTERN GType gitg_text_conv_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgTextConv, gitg_text_conv_unref)
VALA_EXTERN gboolean gitg_text_conv_has_textconv_command (GitgRepository* repository,
                                              GgitDiffFile* file);
VALA_EXTERN guint8* gitg_text_conv_get_textconv_content (GitgRepository* repository,
                                             GgitDiffFile* file,
                                             gint* result_length1);
VALA_EXTERN guint8* gitg_text_conv_get_textconv_content_from_raw (GitgRepository* repository,
                                                      GgitDiffFile* file,
                                                      guint8* raw_content,
                                                      gint raw_content_length1,
                                                      gint* result_length1);
VALA_EXTERN GitgTextConv* gitg_text_conv_new (void);
VALA_EXTERN GitgTextConv* gitg_text_conv_construct (GType object_type);
VALA_EXTERN GType gitg_theme_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgTheme, g_object_unref)
VALA_EXTERN GitgTheme* gitg_theme_instance (void);
VALA_EXTERN gboolean gitg_theme_is_theme_dark (GitgTheme* self);
VALA_EXTERN GitgTheme* gitg_theme_new (void);
VALA_EXTERN GitgTheme* gitg_theme_construct (GType object_type);
VALA_EXTERN gpointer gitg_utils_ref (gpointer instance);
VALA_EXTERN void gitg_utils_unref (gpointer instance);
VALA_EXTERN GParamSpec* gitg_param_spec_utils (const gchar* name,
                                   const gchar* nick,
                                   const gchar* blurb,
                                   GType object_type,
                                   GParamFlags flags);
VALA_EXTERN void gitg_value_set_utils (GValue* value,
                           gpointer v_object);
VALA_EXTERN void gitg_value_take_utils (GValue* value,
                            gpointer v_object);
VALA_EXTERN gpointer gitg_value_get_utils (const GValue* value);
VALA_EXTERN GType gitg_utils_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgUtils, gitg_utils_unref)
VALA_EXTERN gchar* gitg_utils_replace_home_dir_with_tilde (GFile* file);
VALA_EXTERN gchar* gitg_utils_expand_home_dir (const gchar* path);
VALA_EXTERN GitgUtils* gitg_utils_new (void);
VALA_EXTERN GitgUtils* gitg_utils_construct (GType object_type);
VALA_EXTERN gpointer gitg_when_mapped_ref (gpointer instance);
VALA_EXTERN void gitg_when_mapped_unref (gpointer instance);
VALA_EXTERN GParamSpec* gitg_param_spec_when_mapped (const gchar* name,
                                         const gchar* nick,
                                         const gchar* blurb,
                                         GType object_type,
                                         GParamFlags flags);
VALA_EXTERN void gitg_value_set_when_mapped (GValue* value,
                                 gpointer v_object);
VALA_EXTERN void gitg_value_take_when_mapped (GValue* value,
                                  gpointer v_object);
VALA_EXTERN gpointer gitg_value_get_when_mapped (const GValue* value);
VALA_EXTERN GType gitg_when_mapped_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GitgWhenMapped, gitg_when_mapped_unref)
VALA_EXTERN GitgWhenMapped* gitg_when_mapped_new (GtkWidget* widget);
VALA_EXTERN GitgWhenMapped* gitg_when_mapped_construct (GType object_type,
                                            GtkWidget* widget);
VALA_EXTERN void gitg_when_mapped_update (GitgWhenMapped* self,
                              GitgWhenMappedOnMapped mapped,
                              gpointer mapped_target,
                              GDestroyNotify mapped_target_destroy_notify,
                              GObject* lifetime);

G_END_DECLS

#endif
