/* pantheon-files-git.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __PLUGINS_GIT_PANTHEON_FILES_GIT_H__
#define __PLUGINS_GIT_PANTHEON_FILES_GIT_H__

#include <glib-object.h>
#include <libgit2-glib/ggit.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include "pantheon-files-core.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 FILES_TYPE_GIT_REPO_INFO (files_git_repo_info_get_type ())
#define FILES_GIT_REPO_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FILES_TYPE_GIT_REPO_INFO, FilesGitRepoInfo))
#define FILES_GIT_REPO_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FILES_TYPE_GIT_REPO_INFO, FilesGitRepoInfoClass))
#define FILES_IS_GIT_REPO_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FILES_TYPE_GIT_REPO_INFO))
#define FILES_IS_GIT_REPO_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FILES_TYPE_GIT_REPO_INFO))
#define FILES_GIT_REPO_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FILES_TYPE_GIT_REPO_INFO, FilesGitRepoInfoClass))

typedef struct _FilesGitRepoInfo FilesGitRepoInfo;
typedef struct _FilesGitRepoInfoClass FilesGitRepoInfoClass;
typedef struct _FilesGitRepoInfoPrivate FilesGitRepoInfoPrivate;

#define FILES_TYPE_GIT_REPO_CHILD_INFO (files_git_repo_child_info_get_type ())
typedef struct _FilesGitRepoChildInfo FilesGitRepoChildInfo;

#define FILES_PLUGINS_TYPE_GIT (files_plugins_git_get_type ())
#define FILES_PLUGINS_GIT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FILES_PLUGINS_TYPE_GIT, FilesPluginsGit))
#define FILES_PLUGINS_GIT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FILES_PLUGINS_TYPE_GIT, FilesPluginsGitClass))
#define FILES_PLUGINS_IS_GIT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FILES_PLUGINS_TYPE_GIT))
#define FILES_PLUGINS_IS_GIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FILES_PLUGINS_TYPE_GIT))
#define FILES_PLUGINS_GIT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FILES_PLUGINS_TYPE_GIT, FilesPluginsGitClass))

typedef struct _FilesPluginsGit FilesPluginsGit;
typedef struct _FilesPluginsGitClass FilesPluginsGitClass;
typedef struct _FilesPluginsGitPrivate FilesPluginsGitPrivate;

struct _FilesGitRepoInfo {
	GObject parent_instance;
	FilesGitRepoInfoPrivate * priv;
};

struct _FilesGitRepoInfoClass {
	GObjectClass parent_class;
};

struct _FilesGitRepoChildInfo {
	gchar* repo_uri;
	gchar* rel_path;
};

struct _FilesPluginsGit {
	FilesPluginsBase parent_instance;
	FilesPluginsGitPrivate * priv;
};

struct _FilesPluginsGitClass {
	FilesPluginsBaseClass parent_class;
};

VALA_EXTERN GType files_git_repo_info_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FilesGitRepoInfo, g_object_unref)
VALA_EXTERN FilesGitRepoInfo* files_git_repo_info_new (GgitRepository* _repo);
VALA_EXTERN FilesGitRepoInfo* files_git_repo_info_construct (GType object_type,
                                                 GgitRepository* _repo);
VALA_EXTERN gboolean files_git_repo_info_get_status_list (FilesGitRepoInfo* self);
VALA_EXTERN GgitStatusFlags* files_git_repo_info_lookup_status (FilesGitRepoInfo* self,
                                                    const gchar* path);
VALA_EXTERN GgitRepository* files_git_repo_info_get_repo (FilesGitRepoInfo* self);
VALA_EXTERN GHashTable* files_git_repo_info_get_status_map (FilesGitRepoInfo* self);
VALA_EXTERN GType files_git_repo_child_info_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FilesGitRepoChildInfo* files_git_repo_child_info_dup (const FilesGitRepoChildInfo* self);
VALA_EXTERN void files_git_repo_child_info_free (FilesGitRepoChildInfo* self);
VALA_EXTERN void files_git_repo_child_info_copy (const FilesGitRepoChildInfo* self,
                                     FilesGitRepoChildInfo* dest);
VALA_EXTERN void files_git_repo_child_info_destroy (FilesGitRepoChildInfo* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (FilesGitRepoChildInfo, files_git_repo_child_info_destroy)
VALA_EXTERN GType files_plugins_git_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FilesPluginsGit, files_plugins_base_unref)
VALA_EXTERN FilesPluginsGit* files_plugins_git_new (void);
VALA_EXTERN FilesPluginsGit* files_plugins_git_construct (GType object_type);
VALA_EXTERN FilesPluginsBase* module_init (void);

G_END_DECLS

#endif
