/* pamac.h generated by valac 0.34.6, the Vala compiler, do not modify */


#ifndef __PAMAC_H__
#define __PAMAC_H__

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gio/gio.h>

G_BEGIN_DECLS


#define PAMAC_TYPE_UPDATE_INFOS (pamac_update_infos_get_type ())
typedef struct _PamacUpdateInfos PamacUpdateInfos;

#define PAMAC_TYPE_TRANSACTION_SUMMARY (pamac_transaction_summary_get_type ())
typedef struct _PamacTransactionSummary PamacTransactionSummary;

#define PAMAC_TYPE_UPDATES (pamac_updates_get_type ())
typedef struct _PamacUpdates PamacUpdates;

#define PAMAC_TYPE_ERROR_INFOS (pamac_error_infos_get_type ())
typedef struct _PamacErrorInfos PamacErrorInfos;

#define PAMAC_TYPE_ALPM_PACKAGE (pamac_alpm_package_get_type ())
typedef struct _PamacAlpmPackage PamacAlpmPackage;

#define PAMAC_TYPE_ALPM_PACKAGE_DETAILS (pamac_alpm_package_details_get_type ())
typedef struct _PamacAlpmPackageDetails PamacAlpmPackageDetails;

#define PAMAC_TYPE_AUR_PACKAGE (pamac_aur_package_get_type ())
typedef struct _PamacAURPackage PamacAURPackage;

#define PAMAC_TYPE_AUR_PACKAGE_DETAILS (pamac_aur_package_details_get_type ())
typedef struct _PamacAURPackageDetails PamacAURPackageDetails;

#define PAMAC_TYPE_MODE (pamac_mode_get_type ())

#define PAMAC_TYPE_TRANSACTION (pamac_transaction_get_type ())
#define PAMAC_TRANSACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAMAC_TYPE_TRANSACTION, PamacTransaction))
#define PAMAC_TRANSACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PAMAC_TYPE_TRANSACTION, PamacTransactionClass))
#define PAMAC_IS_TRANSACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAMAC_TYPE_TRANSACTION))
#define PAMAC_IS_TRANSACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PAMAC_TYPE_TRANSACTION))
#define PAMAC_TRANSACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PAMAC_TYPE_TRANSACTION, PamacTransactionClass))

typedef struct _PamacTransaction PamacTransaction;
typedef struct _PamacTransactionClass PamacTransactionClass;
typedef struct _PamacTransactionPrivate PamacTransactionPrivate;

struct _PamacUpdateInfos {
	gchar* name;
	gchar* old_version;
	gchar* new_version;
	gchar* repo;
	guint64 download_size;
};

struct _PamacTransactionSummary {
	PamacUpdateInfos* to_install;
	gint to_install_length1;
	PamacUpdateInfos* to_upgrade;
	gint to_upgrade_length1;
	PamacUpdateInfos* to_downgrade;
	gint to_downgrade_length1;
	PamacUpdateInfos* to_reinstall;
	gint to_reinstall_length1;
	PamacUpdateInfos* to_remove;
	gint to_remove_length1;
};

struct _PamacUpdates {
	gboolean is_syncfirst;
	PamacUpdateInfos* repos_updates;
	gint repos_updates_length1;
	PamacUpdateInfos* aur_updates;
	gint aur_updates_length1;
};

struct _PamacErrorInfos {
	guint errno;
	gchar* message;
	gchar** details;
	gint details_length1;
};

struct _PamacAlpmPackage {
	gchar* name;
	gchar* version;
	gchar* desc;
	gchar* repo;
	guint64 size;
	guint origin;
};

struct _PamacAlpmPackageDetails {
	gchar* name;
	gchar* version;
	gchar* desc;
	gchar* repo;
	gchar* url;
	gchar* packager;
	gchar* builddate;
	gchar* installdate;
	gchar* reason;
	gchar* has_signature;
	gchar** licenses;
	gint licenses_length1;
	gchar** depends;
	gint depends_length1;
	gchar** optdepends;
	gint optdepends_length1;
	gchar** requiredby;
	gint requiredby_length1;
	gchar** optionalfor;
	gint optionalfor_length1;
	gchar** provides;
	gint provides_length1;
	gchar** replaces;
	gint replaces_length1;
	gchar** conflicts;
	gint conflicts_length1;
	gchar** groups;
	gint groups_length1;
	gchar** backups;
	gint backups_length1;
	gchar** files;
	gint files_length1;
};

struct _PamacAURPackage {
	gchar* name;
	gchar* version;
	gchar* desc;
	gdouble popularity;
};

struct _PamacAURPackageDetails {
	gchar* name;
	gchar* version;
	gchar* desc;
	gdouble popularity;
	gchar* packagebase;
	gchar* url;
	gchar* maintainer;
	gint64 firstsubmitted;
	gint64 lastmodified;
	gint64 outofdate;
	gint64 numvotes;
	gchar** licenses;
	gint licenses_length1;
	gchar** depends;
	gint depends_length1;
	gchar** makedepends;
	gint makedepends_length1;
	gchar** checkdepends;
	gint checkdepends_length1;
	gchar** optdepends;
	gint optdepends_length1;
	gchar** provides;
	gint provides_length1;
	gchar** replaces;
	gint replaces_length1;
	gchar** conflicts;
	gint conflicts_length1;
};

typedef enum  {
	PAMAC_MODE_MANAGER,
	PAMAC_MODE_UPDATER
} PamacMode;

struct _PamacTransaction {
	GObject parent_instance;
	PamacTransactionPrivate * priv;
	GHashTable* to_install;
	GHashTable* to_remove;
	GHashTable* to_load;
	GHashTable* to_build;
	GHashTable* transaction_summary;
	GHashTable* temporary_ignorepkgs;
};

struct _PamacTransactionClass {
	GObjectClass parent_class;
};


GType pamac_update_infos_get_type (void) G_GNUC_CONST;
PamacUpdateInfos* pamac_update_infos_dup (const PamacUpdateInfos* self);
void pamac_update_infos_free (PamacUpdateInfos* self);
void pamac_update_infos_copy (const PamacUpdateInfos* self, PamacUpdateInfos* dest);
void pamac_update_infos_destroy (PamacUpdateInfos* self);
GType pamac_transaction_summary_get_type (void) G_GNUC_CONST;
PamacTransactionSummary* pamac_transaction_summary_dup (const PamacTransactionSummary* self);
void pamac_transaction_summary_free (PamacTransactionSummary* self);
void pamac_transaction_summary_copy (const PamacTransactionSummary* self, PamacTransactionSummary* dest);
void pamac_transaction_summary_destroy (PamacTransactionSummary* self);
GType pamac_updates_get_type (void) G_GNUC_CONST;
PamacUpdates* pamac_updates_dup (const PamacUpdates* self);
void pamac_updates_free (PamacUpdates* self);
void pamac_updates_copy (const PamacUpdates* self, PamacUpdates* dest);
void pamac_updates_destroy (PamacUpdates* self);
GType pamac_error_infos_get_type (void) G_GNUC_CONST;
PamacErrorInfos* pamac_error_infos_dup (const PamacErrorInfos* self);
void pamac_error_infos_free (PamacErrorInfos* self);
void pamac_error_infos_copy (const PamacErrorInfos* self, PamacErrorInfos* dest);
void pamac_error_infos_destroy (PamacErrorInfos* self);
void pamac_error_infos_init (PamacErrorInfos *self);
GType pamac_alpm_package_get_type (void) G_GNUC_CONST;
PamacAlpmPackage* pamac_alpm_package_dup (const PamacAlpmPackage* self);
void pamac_alpm_package_free (PamacAlpmPackage* self);
void pamac_alpm_package_copy (const PamacAlpmPackage* self, PamacAlpmPackage* dest);
void pamac_alpm_package_destroy (PamacAlpmPackage* self);
GType pamac_alpm_package_details_get_type (void) G_GNUC_CONST;
PamacAlpmPackageDetails* pamac_alpm_package_details_dup (const PamacAlpmPackageDetails* self);
void pamac_alpm_package_details_free (PamacAlpmPackageDetails* self);
void pamac_alpm_package_details_copy (const PamacAlpmPackageDetails* self, PamacAlpmPackageDetails* dest);
void pamac_alpm_package_details_destroy (PamacAlpmPackageDetails* self);
GType pamac_aur_package_get_type (void) G_GNUC_CONST;
PamacAURPackage* pamac_aur_package_dup (const PamacAURPackage* self);
void pamac_aur_package_free (PamacAURPackage* self);
void pamac_aur_package_copy (const PamacAURPackage* self, PamacAURPackage* dest);
void pamac_aur_package_destroy (PamacAURPackage* self);
GType pamac_aur_package_details_get_type (void) G_GNUC_CONST;
PamacAURPackageDetails* pamac_aur_package_details_dup (const PamacAURPackageDetails* self);
void pamac_aur_package_details_free (PamacAURPackageDetails* self);
void pamac_aur_package_details_copy (const PamacAURPackageDetails* self, PamacAURPackageDetails* dest);
void pamac_aur_package_details_destroy (PamacAURPackageDetails* self);
GType pamac_mode_get_type (void) G_GNUC_CONST;
GType pamac_transaction_get_type (void) G_GNUC_CONST;
PamacTransaction* pamac_transaction_new (GtkApplicationWindow* application_window);
PamacTransaction* pamac_transaction_construct (GType object_type, GtkApplicationWindow* application_window);
void pamac_transaction_run_history_dialog (PamacTransaction* self);
void pamac_transaction_run_preferences_dialog (PamacTransaction* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void pamac_transaction_run_preferences_dialog_finish (PamacTransaction* self, GAsyncResult* _res_);
void pamac_transaction_run_about_dialog (PamacTransaction* self);
void pamac_transaction_get_current_error (PamacTransaction* self, PamacErrorInfos* result);
void pamac_transaction_start_get_authorization (PamacTransaction* self);
void pamac_transaction_start_write_pamac_config (PamacTransaction* self, GHashTable* new_pamac_conf);
void pamac_transaction_start_write_alpm_config (PamacTransaction* self, GHashTable* new_alpm_conf);
void pamac_transaction_start_write_mirrors_config (PamacTransaction* self, GHashTable* new_mirrors_conf);
void pamac_transaction_show_progress (PamacTransaction* self);
void pamac_transaction_hide_progress (PamacTransaction* self);
void pamac_transaction_start_generate_mirrors_list (PamacTransaction* self);
void pamac_transaction_start_set_pkgreason (PamacTransaction* self, const gchar* pkgname, guint reason);
void pamac_transaction_start_refresh (PamacTransaction* self, gboolean force);
gboolean pamac_transaction_get_checkspace (PamacTransaction* self);
gchar** pamac_transaction_get_ignorepkgs (PamacTransaction* self, int* result_length1);
void pamac_transaction_get_installed_pkg (PamacTransaction* self, const gchar* pkgname, PamacAlpmPackage* result);
void pamac_transaction_find_installed_satisfier (PamacTransaction* self, const gchar* depstring, PamacAlpmPackage* result);
gboolean pamac_transaction_should_hold (PamacTransaction* self, const gchar* pkgname);
guint pamac_transaction_get_pkg_reason (PamacTransaction* self, const gchar* pkgname);
guint pamac_transaction_get_pkg_origin (PamacTransaction* self, const gchar* pkgname);
void pamac_transaction_get_installed_pkgs (PamacTransaction* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
PamacAlpmPackage* pamac_transaction_get_installed_pkgs_finish (PamacTransaction* self, GAsyncResult* _res_, int* result_length1);
void pamac_transaction_get_foreign_pkgs (PamacTransaction* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
PamacAlpmPackage* pamac_transaction_get_foreign_pkgs_finish (PamacTransaction* self, GAsyncResult* _res_, int* result_length1);
void pamac_transaction_get_orphans (PamacTransaction* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
PamacAlpmPackage* pamac_transaction_get_orphans_finish (PamacTransaction* self, GAsyncResult* _res_, int* result_length1);
void pamac_transaction_get_sync_pkg (PamacTransaction* self, const gchar* pkgname, PamacAlpmPackage* result);
void pamac_transaction_find_sync_satisfier (PamacTransaction* self, const gchar* depstring, PamacAlpmPackage* result);
void pamac_transaction_search_pkgs (PamacTransaction* self, const gchar* search_string, GAsyncReadyCallback _callback_, gpointer _user_data_);
PamacAlpmPackage* pamac_transaction_search_pkgs_finish (PamacTransaction* self, GAsyncResult* _res_, int* result_length1);
void pamac_transaction_search_in_aur (PamacTransaction* self, const gchar* search_string, GAsyncReadyCallback _callback_, gpointer _user_data_);
PamacAURPackage* pamac_transaction_search_in_aur_finish (PamacTransaction* self, GAsyncResult* _res_, int* result_length1);
void pamac_transaction_get_aur_build_list (PamacTransaction* self, const gchar* pkgname, GAsyncReadyCallback _callback_, gpointer _user_data_);
gchar** pamac_transaction_get_aur_build_list_finish (PamacTransaction* self, GAsyncResult* _res_, int* result_length1);
gchar** pamac_transaction_get_repos_names (PamacTransaction* self, int* result_length1);
void pamac_transaction_get_repo_pkgs (PamacTransaction* self, const gchar* repo, GAsyncReadyCallback _callback_, gpointer _user_data_);
PamacAlpmPackage* pamac_transaction_get_repo_pkgs_finish (PamacTransaction* self, GAsyncResult* _res_, int* result_length1);
gchar** pamac_transaction_get_groups_names (PamacTransaction* self, int* result_length1);
void pamac_transaction_get_group_pkgs (PamacTransaction* self, const gchar* group_name, GAsyncReadyCallback _callback_, gpointer _user_data_);
PamacAlpmPackage* pamac_transaction_get_group_pkgs_finish (PamacTransaction* self, GAsyncResult* _res_, int* result_length1);
gchar** pamac_transaction_get_pkg_uninstalled_optdeps (PamacTransaction* self, const gchar* pkgname, int* result_length1);
void pamac_transaction_get_pkg_details (PamacTransaction* self, const gchar* pkgname, PamacAlpmPackageDetails* result);
void pamac_transaction_get_aur_details (PamacTransaction* self, const gchar* pkgname, GAsyncReadyCallback _callback_, gpointer _user_data_);
void pamac_transaction_get_aur_details_finish (PamacTransaction* self, GAsyncResult* _res_, PamacAURPackageDetails* result);
void pamac_transaction_start_get_updates (PamacTransaction* self);
void pamac_transaction_add_ignorepkg (PamacTransaction* self, const gchar* pkgname);
void pamac_transaction_remove_ignorepkg (PamacTransaction* self, const gchar* pkgname);
gboolean pamac_transaction_init (PamacTransaction* self, gint flags);
void pamac_transaction_sysupgrade (PamacTransaction* self, gboolean enable_downgrade);
void pamac_transaction_clear_lists (PamacTransaction* self);
void pamac_transaction_run (PamacTransaction* self);
void pamac_transaction_start_commit (PamacTransaction* self);
void pamac_transaction_build_aur_packages (PamacTransaction* self);
void pamac_transaction_cancel (PamacTransaction* self);
void pamac_transaction_release (PamacTransaction* self);
void pamac_transaction_stop_daemon (PamacTransaction* self);
gboolean pamac_transaction_get_check_aur_updates (PamacTransaction* self);
gboolean pamac_transaction_get_enable_aur (PamacTransaction* self);
GHashTable* pamac_transaction_get_environment_variables (PamacTransaction* self);
gboolean pamac_transaction_get_no_confirm_build (PamacTransaction* self);
gboolean pamac_transaction_get_no_update_hide_icon (PamacTransaction* self);
gboolean pamac_transaction_get_recurse (PamacTransaction* self);
guint64 pamac_transaction_get_refresh_period (PamacTransaction* self);
gboolean pamac_transaction_get_search_aur (PamacTransaction* self);
PamacMode pamac_transaction_get_mode (PamacTransaction* self);
void pamac_transaction_set_mode (PamacTransaction* self, PamacMode value);
GtkApplicationWindow* pamac_transaction_get_application_window (PamacTransaction* self);


G_END_DECLS

#endif
