/* vbf.h generated by valac 0.12.1.1-323029-dirty, the Vala compiler, do not modify */


#ifndef __VBF_H__
#define __VBF_H__

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <valagee.h>

G_BEGIN_DECLS


#define VBF_TYPE_CONFIG_NODE (vbf_config_node_get_type ())
#define VBF_CONFIG_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_CONFIG_NODE, VbfConfigNode))
#define VBF_CONFIG_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_CONFIG_NODE, VbfConfigNodeClass))
#define VBF_IS_CONFIG_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_CONFIG_NODE))
#define VBF_IS_CONFIG_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_CONFIG_NODE))
#define VBF_CONFIG_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_CONFIG_NODE, VbfConfigNodeClass))

typedef struct _VbfConfigNode VbfConfigNode;
typedef struct _VbfConfigNodeClass VbfConfigNodeClass;
typedef struct _VbfConfigNodePrivate VbfConfigNodePrivate;

#define VBF_TYPE_PROJECT (vbf_project_get_type ())
#define VBF_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_PROJECT, VbfProject))
#define VBF_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_PROJECT, VbfProjectClass))
#define VBF_IS_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_PROJECT))
#define VBF_IS_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_PROJECT))
#define VBF_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_PROJECT, VbfProjectClass))

typedef struct _VbfProject VbfProject;
typedef struct _VbfProjectClass VbfProjectClass;
typedef struct _VbfProjectPrivate VbfProjectPrivate;

#define VBF_TYPE_IPROJECT_BACKEND (vbf_iproject_backend_get_type ())
#define VBF_IPROJECT_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_IPROJECT_BACKEND, VbfIProjectBackend))
#define VBF_IS_IPROJECT_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_IPROJECT_BACKEND))
#define VBF_IPROJECT_BACKEND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), VBF_TYPE_IPROJECT_BACKEND, VbfIProjectBackendIface))

typedef struct _VbfIProjectBackend VbfIProjectBackend;
typedef struct _VbfIProjectBackendIface VbfIProjectBackendIface;

#define VBF_TYPE_GROUP (vbf_group_get_type ())
#define VBF_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_GROUP, VbfGroup))
#define VBF_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_GROUP, VbfGroupClass))
#define VBF_IS_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_GROUP))
#define VBF_IS_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_GROUP))
#define VBF_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_GROUP, VbfGroupClass))

typedef struct _VbfGroup VbfGroup;
typedef struct _VbfGroupClass VbfGroupClass;

#define VBF_TYPE_MODULE (vbf_module_get_type ())
#define VBF_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_MODULE, VbfModule))
#define VBF_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_MODULE, VbfModuleClass))
#define VBF_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_MODULE))
#define VBF_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_MODULE))
#define VBF_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_MODULE, VbfModuleClass))

typedef struct _VbfModule VbfModule;
typedef struct _VbfModuleClass VbfModuleClass;

#define VBF_TYPE_VARIABLE (vbf_variable_get_type ())
#define VBF_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_VARIABLE, VbfVariable))
#define VBF_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_VARIABLE, VbfVariableClass))
#define VBF_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_VARIABLE))
#define VBF_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_VARIABLE))
#define VBF_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_VARIABLE, VbfVariableClass))

typedef struct _VbfVariable VbfVariable;
typedef struct _VbfVariableClass VbfVariableClass;
typedef struct _VbfGroupPrivate VbfGroupPrivate;

#define VBF_TYPE_TARGET (vbf_target_get_type ())
#define VBF_TARGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_TARGET, VbfTarget))
#define VBF_TARGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_TARGET, VbfTargetClass))
#define VBF_IS_TARGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_TARGET))
#define VBF_IS_TARGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_TARGET))
#define VBF_TARGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_TARGET, VbfTargetClass))

typedef struct _VbfTarget VbfTarget;
typedef struct _VbfTargetClass VbfTargetClass;

#define VBF_TYPE_PACKAGE (vbf_package_get_type ())
#define VBF_PACKAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_PACKAGE, VbfPackage))
#define VBF_PACKAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_PACKAGE, VbfPackageClass))
#define VBF_IS_PACKAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_PACKAGE))
#define VBF_IS_PACKAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_PACKAGE))
#define VBF_PACKAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_PACKAGE, VbfPackageClass))

typedef struct _VbfPackage VbfPackage;
typedef struct _VbfPackageClass VbfPackageClass;

#define VBF_TYPE_FILE_TYPES (vbf_file_types_get_type ())
typedef struct _VbfModulePrivate VbfModulePrivate;

#define VBF_TYPE_TARGET_TYPES (vbf_target_types_get_type ())
typedef struct _VbfTargetPrivate VbfTargetPrivate;

#define VBF_TYPE_FILE (vbf_file_get_type ())
#define VBF_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_FILE, VbfFile))
#define VBF_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_FILE, VbfFileClass))
#define VBF_IS_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_FILE))
#define VBF_IS_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_FILE))
#define VBF_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_FILE, VbfFileClass))

typedef struct _VbfFile VbfFile;
typedef struct _VbfFileClass VbfFileClass;

#define VBF_TYPE_SOURCE (vbf_source_get_type ())
#define VBF_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_SOURCE, VbfSource))
#define VBF_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_SOURCE, VbfSourceClass))
#define VBF_IS_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_SOURCE))
#define VBF_IS_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_SOURCE))
#define VBF_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_SOURCE, VbfSourceClass))

typedef struct _VbfSource VbfSource;
typedef struct _VbfSourceClass VbfSourceClass;
typedef struct _VbfFilePrivate VbfFilePrivate;
typedef struct _VbfSourcePrivate VbfSourcePrivate;
typedef struct _VbfPackagePrivate VbfPackagePrivate;
typedef struct _VbfVariablePrivate VbfVariablePrivate;

#define VBF_TYPE_STRING_LITERAL (vbf_string_literal_get_type ())
#define VBF_STRING_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_STRING_LITERAL, VbfStringLiteral))
#define VBF_STRING_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_STRING_LITERAL, VbfStringLiteralClass))
#define VBF_IS_STRING_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_STRING_LITERAL))
#define VBF_IS_STRING_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_STRING_LITERAL))
#define VBF_STRING_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_STRING_LITERAL, VbfStringLiteralClass))

typedef struct _VbfStringLiteral VbfStringLiteral;
typedef struct _VbfStringLiteralClass VbfStringLiteralClass;
typedef struct _VbfStringLiteralPrivate VbfStringLiteralPrivate;

#define VBF_TYPE_CONFIG_NODE_PAIR (vbf_config_node_pair_get_type ())
#define VBF_CONFIG_NODE_PAIR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_CONFIG_NODE_PAIR, VbfConfigNodePair))
#define VBF_CONFIG_NODE_PAIR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_CONFIG_NODE_PAIR, VbfConfigNodePairClass))
#define VBF_IS_CONFIG_NODE_PAIR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_CONFIG_NODE_PAIR))
#define VBF_IS_CONFIG_NODE_PAIR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_CONFIG_NODE_PAIR))
#define VBF_CONFIG_NODE_PAIR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_CONFIG_NODE_PAIR, VbfConfigNodePairClass))

typedef struct _VbfConfigNodePair VbfConfigNodePair;
typedef struct _VbfConfigNodePairClass VbfConfigNodePairClass;
typedef struct _VbfConfigNodePairPrivate VbfConfigNodePairPrivate;

#define VBF_TYPE_CONFIG_NODE_LIST (vbf_config_node_list_get_type ())
#define VBF_CONFIG_NODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_CONFIG_NODE_LIST, VbfConfigNodeList))
#define VBF_CONFIG_NODE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_CONFIG_NODE_LIST, VbfConfigNodeListClass))
#define VBF_IS_CONFIG_NODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_CONFIG_NODE_LIST))
#define VBF_IS_CONFIG_NODE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_CONFIG_NODE_LIST))
#define VBF_CONFIG_NODE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_CONFIG_NODE_LIST, VbfConfigNodeListClass))

typedef struct _VbfConfigNodeList VbfConfigNodeList;
typedef struct _VbfConfigNodeListClass VbfConfigNodeListClass;
typedef struct _VbfConfigNodeListPrivate VbfConfigNodeListPrivate;

#define VBF_TYPE_UNRESOLVED_CONFIG_NODE (vbf_unresolved_config_node_get_type ())
#define VBF_UNRESOLVED_CONFIG_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_UNRESOLVED_CONFIG_NODE, VbfUnresolvedConfigNode))
#define VBF_UNRESOLVED_CONFIG_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_UNRESOLVED_CONFIG_NODE, VbfUnresolvedConfigNodeClass))
#define VBF_IS_UNRESOLVED_CONFIG_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_UNRESOLVED_CONFIG_NODE))
#define VBF_IS_UNRESOLVED_CONFIG_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_UNRESOLVED_CONFIG_NODE))
#define VBF_UNRESOLVED_CONFIG_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_UNRESOLVED_CONFIG_NODE, VbfUnresolvedConfigNodeClass))

typedef struct _VbfUnresolvedConfigNode VbfUnresolvedConfigNode;
typedef struct _VbfUnresolvedConfigNodeClass VbfUnresolvedConfigNodeClass;
typedef struct _VbfUnresolvedConfigNodePrivate VbfUnresolvedConfigNodePrivate;

#define VBF_BACKENDS_TYPE_AUTOTOOLS (vbf_backends_autotools_get_type ())
#define VBF_BACKENDS_AUTOTOOLS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_BACKENDS_TYPE_AUTOTOOLS, VbfBackendsAutotools))
#define VBF_BACKENDS_AUTOTOOLS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_BACKENDS_TYPE_AUTOTOOLS, VbfBackendsAutotoolsClass))
#define VBF_BACKENDS_IS_AUTOTOOLS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_BACKENDS_TYPE_AUTOTOOLS))
#define VBF_BACKENDS_IS_AUTOTOOLS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_BACKENDS_TYPE_AUTOTOOLS))
#define VBF_BACKENDS_AUTOTOOLS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_BACKENDS_TYPE_AUTOTOOLS, VbfBackendsAutotoolsClass))

typedef struct _VbfBackendsAutotools VbfBackendsAutotools;
typedef struct _VbfBackendsAutotoolsClass VbfBackendsAutotoolsClass;
typedef struct _VbfBackendsAutotoolsPrivate VbfBackendsAutotoolsPrivate;

#define VBF_BACKENDS_TYPE_SMART_FOLDER (vbf_backends_smart_folder_get_type ())
#define VBF_BACKENDS_SMART_FOLDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_BACKENDS_TYPE_SMART_FOLDER, VbfBackendsSmartFolder))
#define VBF_BACKENDS_SMART_FOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_BACKENDS_TYPE_SMART_FOLDER, VbfBackendsSmartFolderClass))
#define VBF_BACKENDS_IS_SMART_FOLDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_BACKENDS_TYPE_SMART_FOLDER))
#define VBF_BACKENDS_IS_SMART_FOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_BACKENDS_TYPE_SMART_FOLDER))
#define VBF_BACKENDS_SMART_FOLDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_BACKENDS_TYPE_SMART_FOLDER, VbfBackendsSmartFolderClass))

typedef struct _VbfBackendsSmartFolder VbfBackendsSmartFolder;
typedef struct _VbfBackendsSmartFolderClass VbfBackendsSmartFolderClass;
typedef struct _VbfBackendsSmartFolderPrivate VbfBackendsSmartFolderPrivate;

struct _VbfConfigNode {
	GObject parent_instance;
	VbfConfigNodePrivate * priv;
	VbfConfigNode* parent;
};

struct _VbfConfigNodeClass {
	GObjectClass parent_class;
	gchar* (*to_string) (VbfConfigNode* self);
};

struct _VbfIProjectBackendIface {
	GTypeInterface parent_iface;
	gboolean (*probe) (VbfIProjectBackend* self, const gchar* project_file);
	VbfProject* (*open) (VbfIProjectBackend* self, const gchar* project_file);
	void (*refresh) (VbfIProjectBackend* self, VbfProject* project);
	gchar* (*get_configure_command) (VbfIProjectBackend* self);
	gchar* (*get_build_command) (VbfIProjectBackend* self);
	gchar* (*get_clean_command) (VbfIProjectBackend* self);
};

struct _VbfProject {
	VbfConfigNode parent_instance;
	VbfProjectPrivate * priv;
	gchar* id;
	gchar* name;
	gchar* url;
	gchar* version;
	gchar* working_dir;
	VbfIProjectBackend* backend;
};

struct _VbfProjectClass {
	VbfConfigNodeClass parent_class;
};

struct _VbfGroup {
	GObject parent_instance;
	VbfGroupPrivate * priv;
	gchar* name;
	gchar* id;
	VbfProject* project;
};

struct _VbfGroupClass {
	GObjectClass parent_class;
};

typedef enum  {
	VBF_FILE_TYPES_UNKNOWN,
	VBF_FILE_TYPES_DATA,
	VBF_FILE_TYPES_VALA_SOURCE,
	VBF_FILE_TYPES_OTHER_SOURCE
} VbfFileTypes;

struct _VbfModule {
	GObject parent_instance;
	VbfModulePrivate * priv;
	gchar* id;
	gchar* name;
	VbfProject* project;
};

struct _VbfModuleClass {
	GObjectClass parent_class;
};

typedef enum  {
	VBF_TARGET_TYPES_PROGRAM,
	VBF_TARGET_TYPES_LIBRARY,
	VBF_TARGET_TYPES_DATA,
	VBF_TARGET_TYPES_BUILT_SOURCES
} VbfTargetTypes;

struct _VbfTarget {
	GObject parent_instance;
	VbfTargetPrivate * priv;
	gchar* id;
	gchar* name;
	VbfTargetTypes type;
	gboolean no_install;
	VbfGroup* group;
};

struct _VbfTargetClass {
	GObjectClass parent_class;
};

struct _VbfFile {
	GObject parent_instance;
	VbfFilePrivate * priv;
	gchar* name;
	gchar* filename;
	gchar* uri;
	VbfFileTypes type;
	VbfTarget* target;
};

struct _VbfFileClass {
	GObjectClass parent_class;
};

struct _VbfSource {
	VbfFile parent_instance;
	VbfSourcePrivate * priv;
};

struct _VbfSourceClass {
	VbfFileClass parent_class;
};

struct _VbfPackage {
	GObject parent_instance;
	VbfPackagePrivate * priv;
	gchar* id;
	gchar* name;
	gchar* constraint;
	VbfConfigNode* version;
	VbfTarget* parent_target;
	VbfGroup* parent_group;
	VbfModule* parent_module;
};

struct _VbfPackageClass {
	GObjectClass parent_class;
};

struct _VbfVariable {
	VbfConfigNode parent_instance;
	VbfVariablePrivate * priv;
	gchar* name;
	VbfConfigNode* data;
};

struct _VbfVariableClass {
	VbfConfigNodeClass parent_class;
};

struct _VbfStringLiteral {
	VbfConfigNode parent_instance;
	VbfStringLiteralPrivate * priv;
	gchar* data;
};

struct _VbfStringLiteralClass {
	VbfConfigNodeClass parent_class;
};

struct _VbfConfigNodePair {
	GObject parent_instance;
	VbfConfigNodePairPrivate * priv;
	VbfConfigNode* source;
	VbfConfigNode* destination;
};

struct _VbfConfigNodePairClass {
	GObjectClass parent_class;
};

struct _VbfConfigNodeList {
	VbfConfigNode parent_instance;
	VbfConfigNodeListPrivate * priv;
	ValaList* values;
};

struct _VbfConfigNodeListClass {
	VbfConfigNodeClass parent_class;
};

struct _VbfUnresolvedConfigNode {
	VbfConfigNode parent_instance;
	VbfUnresolvedConfigNodePrivate * priv;
	gchar* name;
};

struct _VbfUnresolvedConfigNodeClass {
	VbfConfigNodeClass parent_class;
};

struct _VbfBackendsAutotools {
	GObject parent_instance;
	VbfBackendsAutotoolsPrivate * priv;
};

struct _VbfBackendsAutotoolsClass {
	GObjectClass parent_class;
};

struct _VbfBackendsSmartFolder {
	GObject parent_instance;
	VbfBackendsSmartFolderPrivate * priv;
};

struct _VbfBackendsSmartFolderClass {
	GObjectClass parent_class;
};


GType vbf_config_node_get_type (void) G_GNUC_CONST;
GType vbf_project_get_type (void) G_GNUC_CONST;
GType vbf_iproject_backend_get_type (void) G_GNUC_CONST;
VbfProject* vbf_project_new (const gchar* id);
VbfProject* vbf_project_construct (GType object_type, const gchar* id);
GType vbf_group_get_type (void) G_GNUC_CONST;
ValaList* vbf_project_get_groups (VbfProject* self);
VbfGroup* vbf_project_get_group (VbfProject* self, const gchar* id);
void vbf_project_add_group (VbfProject* self, VbfGroup* group);
GType vbf_module_get_type (void) G_GNUC_CONST;
ValaList* vbf_project_get_modules (VbfProject* self);
GType vbf_variable_get_type (void) G_GNUC_CONST;
ValaList* vbf_project_get_variables (VbfProject* self);
gchar* vbf_project_get_all_source_files (VbfProject* self);
void vbf_project_update (VbfProject* self);
gchar* vbf_project_get_configure_command (VbfProject* self);
gchar* vbf_project_get_build_command (VbfProject* self);
gchar* vbf_project_get_clean_command (VbfProject* self);
VbfGroup* vbf_group_new (VbfProject* project, const gchar* id);
VbfGroup* vbf_group_construct (GType object_type, VbfProject* project, const gchar* id);
GType vbf_target_get_type (void) G_GNUC_CONST;
ValaList* vbf_group_get_targets (VbfGroup* self);
gboolean vbf_group_contains_target (VbfGroup* self, const gchar* id);
VbfTarget* vbf_group_get_target_for_id (VbfGroup* self, const gchar* id);
void vbf_group_add_target (VbfGroup* self, VbfTarget* target);
GType vbf_package_get_type (void) G_GNUC_CONST;
ValaList* vbf_group_get_packages (VbfGroup* self);
ValaList* vbf_group_get_include_dirs (VbfGroup* self);
ValaList* vbf_group_get_built_libraries (VbfGroup* self);
ValaList* vbf_group_get_subgroups (VbfGroup* self);
ValaList* vbf_group_get_variables (VbfGroup* self);
GType vbf_file_types_get_type (void) G_GNUC_CONST;
gboolean vbf_group_has_sources_of_type (VbfGroup* self, VbfFileTypes type);
VbfModule* vbf_module_new (VbfProject* project, const gchar* id);
VbfModule* vbf_module_construct (GType object_type, VbfProject* project, const gchar* id);
ValaList* vbf_module_get_packages (VbfModule* self);
GType vbf_target_types_get_type (void) G_GNUC_CONST;
VbfTarget* vbf_target_new (VbfGroup* group, VbfTargetTypes type, const gchar* id, const gchar* name);
VbfTarget* vbf_target_construct (GType object_type, VbfGroup* group, VbfTargetTypes type, const gchar* id, const gchar* name);
GType vbf_file_get_type (void) G_GNUC_CONST;
GType vbf_source_get_type (void) G_GNUC_CONST;
ValaList* vbf_target_get_sources (VbfTarget* self);
VbfSource* vbf_target_get_source (VbfTarget* self, const gchar* filename);
gboolean vbf_target_has_sources_of_type (VbfTarget* self, VbfFileTypes type);
void vbf_target_add_source (VbfTarget* self, VbfSource* source);
void vbf_target_remove_source (VbfTarget* self, VbfSource* source);
gboolean vbf_target_has_file_of_type (VbfTarget* self, VbfFileTypes type);
gboolean vbf_target_has_file_with_extension (VbfTarget* self, const gchar* extension);
ValaList* vbf_target_get_files (VbfTarget* self);
ValaList* vbf_target_get_packages (VbfTarget* self);
void vbf_target_add_package (VbfTarget* self, VbfPackage* package);
gboolean vbf_target_contains_package (VbfTarget* self, const gchar* package_id);
ValaList* vbf_target_get_include_dirs (VbfTarget* self);
gboolean vbf_target_contains_include_dir (VbfTarget* self, const gchar* dir);
ValaList* vbf_target_get_built_libraries (VbfTarget* self);
VbfSource* vbf_source_new (VbfTarget* target, const gchar* filename);
VbfSource* vbf_source_construct (GType object_type, VbfTarget* target, const gchar* filename);
VbfSource* vbf_source_new_with_type (VbfTarget* target, const gchar* filename, VbfFileTypes type);
VbfSource* vbf_source_construct_with_type (GType object_type, VbfTarget* target, const gchar* filename, VbfFileTypes type);
VbfFile* vbf_file_new (VbfTarget* target, const gchar* filename);
VbfFile* vbf_file_construct (GType object_type, VbfTarget* target, const gchar* filename);
VbfFile* vbf_file_new_with_type (VbfTarget* target, const gchar* filename, VbfFileTypes type);
VbfFile* vbf_file_construct_with_type (GType object_type, VbfTarget* target, const gchar* filename, VbfFileTypes type);
void vbf_file_update_file_data (VbfFile* self, const gchar* filename);
VbfPackage* vbf_package_new (const gchar* id);
VbfPackage* vbf_package_construct (GType object_type, const gchar* id);
const gchar* vbf_package_get_uri (VbfPackage* self);
VbfVariable* vbf_variable_new (const gchar* name, VbfConfigNode* parent);
VbfVariable* vbf_variable_construct (GType object_type, const gchar* name, VbfConfigNode* parent);
ValaList* vbf_variable_get_childs (VbfVariable* self);
void vbf_variable_add_child (VbfVariable* self, VbfVariable* variable);
VbfConfigNode* vbf_variable_get_value (VbfVariable* self);
GType vbf_string_literal_get_type (void) G_GNUC_CONST;
VbfStringLiteral* vbf_string_literal_new (const gchar* data);
VbfStringLiteral* vbf_string_literal_construct (GType object_type, const gchar* data);
gboolean vbf_probe (const gchar* path, VbfIProjectBackend** backend);
gboolean vbf_iproject_backend_probe (VbfIProjectBackend* self, const gchar* project_file);
VbfProject* vbf_iproject_backend_open (VbfIProjectBackend* self, const gchar* project_file);
void vbf_iproject_backend_refresh (VbfIProjectBackend* self, VbfProject* project);
gchar* vbf_iproject_backend_get_configure_command (VbfIProjectBackend* self);
gchar* vbf_iproject_backend_get_build_command (VbfIProjectBackend* self);
gchar* vbf_iproject_backend_get_clean_command (VbfIProjectBackend* self);
gchar* vbf_config_node_to_string (VbfConfigNode* self);
VbfConfigNode* vbf_config_node_construct (GType object_type);
GType vbf_config_node_pair_get_type (void) G_GNUC_CONST;
VbfConfigNodePair* vbf_config_node_pair_new (VbfConfigNode* source, VbfConfigNode* destination);
VbfConfigNodePair* vbf_config_node_pair_construct (GType object_type, VbfConfigNode* source, VbfConfigNode* destination);
GType vbf_config_node_list_get_type (void) G_GNUC_CONST;
ValaList* vbf_config_node_list_get_values (VbfConfigNodeList* self);
void vbf_config_node_list_add_value (VbfConfigNodeList* self, VbfConfigNode* val);
void vbf_config_node_list_replace_config_node (VbfConfigNodeList* self, VbfConfigNode* source, VbfConfigNode* target);
VbfConfigNodeList* vbf_config_node_list_new (void);
VbfConfigNodeList* vbf_config_node_list_construct (GType object_type);
GType vbf_unresolved_config_node_get_type (void) G_GNUC_CONST;
VbfUnresolvedConfigNode* vbf_unresolved_config_node_new (const gchar* name);
VbfUnresolvedConfigNode* vbf_unresolved_config_node_construct (GType object_type, const gchar* name);
gboolean vbf_utils_is_autotools_project (const gchar* path);
gboolean vbf_utils_is_waf_project (const gchar* path);
gboolean vbf_utils_is_cmake_project (const gchar* path);
gboolean vbf_utils_is_simple_make_project (const gchar* path);
gchar* vbf_utils_guess_package_vapi (const gchar* using_name, gchar** vapi_dirs, int vapi_dirs_length1);
GType vbf_backends_autotools_get_type (void) G_GNUC_CONST;
VbfBackendsAutotools* vbf_backends_autotools_new (void);
VbfBackendsAutotools* vbf_backends_autotools_construct (GType object_type);
GType vbf_backends_smart_folder_get_type (void) G_GNUC_CONST;
VbfBackendsSmartFolder* vbf_backends_smart_folder_new (void);
VbfBackendsSmartFolder* vbf_backends_smart_folder_construct (GType object_type);


G_END_DECLS

#endif
