/* pamac-snap.h generated by valac 0.56.18-dirty, the Vala compiler, do not modify */

#ifndef __SRC_PAMAC_SNAP_H__
#define __SRC_PAMAC_SNAP_H__

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gmodule.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 PAMAC_TYPE_PACKAGE (pamac_package_get_type ())
#define PAMAC_PACKAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAMAC_TYPE_PACKAGE, PamacPackage))
#define PAMAC_PACKAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PAMAC_TYPE_PACKAGE, PamacPackageClass))
#define PAMAC_IS_PACKAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAMAC_TYPE_PACKAGE))
#define PAMAC_IS_PACKAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PAMAC_TYPE_PACKAGE))
#define PAMAC_PACKAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PAMAC_TYPE_PACKAGE, PamacPackageClass))

typedef struct _PamacPackage PamacPackage;
typedef struct _PamacPackageClass PamacPackageClass;
typedef struct _PamacPackagePrivate PamacPackagePrivate;

#define PAMAC_TYPE_SNAP_PACKAGE (pamac_snap_package_get_type ())
#define PAMAC_SNAP_PACKAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAMAC_TYPE_SNAP_PACKAGE, PamacSnapPackage))
#define PAMAC_SNAP_PACKAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PAMAC_TYPE_SNAP_PACKAGE, PamacSnapPackageClass))
#define PAMAC_IS_SNAP_PACKAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAMAC_TYPE_SNAP_PACKAGE))
#define PAMAC_IS_SNAP_PACKAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PAMAC_TYPE_SNAP_PACKAGE))
#define PAMAC_SNAP_PACKAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PAMAC_TYPE_SNAP_PACKAGE, PamacSnapPackageClass))

typedef struct _PamacSnapPackage PamacSnapPackage;
typedef struct _PamacSnapPackageClass PamacSnapPackageClass;
typedef struct _PamacSnapPackagePrivate PamacSnapPackagePrivate;

struct _PamacPackage {
	GObject parent_instance;
	PamacPackagePrivate * priv;
};

struct _PamacPackageClass {
	GObjectClass parent_class;
	const gchar* (*get_name) (PamacPackage* self);
	void (*set_name) (PamacPackage* self, const gchar* value);
	const gchar* (*get_id) (PamacPackage* self);
	void (*set_id) (PamacPackage* self, const gchar* value);
	const gchar* (*get_app_name) (PamacPackage* self);
	const gchar* (*get_app_id) (PamacPackage* self);
	const gchar* (*get_version) (PamacPackage* self);
	void (*set_version) (PamacPackage* self, const gchar* value);
	const gchar* (*get_installed_version) (PamacPackage* self);
	void (*set_installed_version) (PamacPackage* self, const gchar* value);
	const gchar* (*get_desc) (PamacPackage* self);
	void (*set_desc) (PamacPackage* self, const gchar* value);
	const gchar* (*get_long_desc) (PamacPackage* self);
	const gchar* (*get_repo) (PamacPackage* self);
	void (*set_repo) (PamacPackage* self, const gchar* value);
	const gchar* (*get_launchable) (PamacPackage* self);
	const gchar* (*get_license) (PamacPackage* self);
	const gchar* (*get_url) (PamacPackage* self);
	const gchar* (*get_icon) (PamacPackage* self);
	guint64 (*get_installed_size) (PamacPackage* self);
	guint64 (*get_download_size) (PamacPackage* self);
	GDateTime* (*get_install_date) (PamacPackage* self);
	GPtrArray* (*get_screenshots) (PamacPackage* self);
};

struct _PamacSnapPackage {
	PamacPackage parent_instance;
	PamacSnapPackagePrivate * priv;
};

struct _PamacSnapPackageClass {
	PamacPackageClass parent_class;
	const gchar* (*get_channel) (PamacSnapPackage* self);
	const gchar* (*get_publisher) (PamacSnapPackage* self);
	const gchar* (*get_confined) (PamacSnapPackage* self);
	GPtrArray* (*get_channels) (PamacSnapPackage* self);
};

VALA_EXTERN GType pamac_package_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PamacPackage, g_object_unref)
VALA_EXTERN GType pamac_snap_package_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PamacSnapPackage, g_object_unref)
VALA_EXTERN const gchar* pamac_snap_package_get_channel (PamacSnapPackage* self);
VALA_EXTERN const gchar* pamac_snap_package_get_publisher (PamacSnapPackage* self);
VALA_EXTERN const gchar* pamac_snap_package_get_confined (PamacSnapPackage* self);
VALA_EXTERN GPtrArray* pamac_snap_package_get_channels (PamacSnapPackage* self);
VALA_EXTERN GType register_plugin (GModule* module);
VALA_EXTERN const gchar* pamac_package_get_name (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_id (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_app_name (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_app_id (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_version (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_installed_version (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_desc (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_long_desc (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_repo (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_launchable (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_license (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_url (PamacPackage* self);
VALA_EXTERN const gchar* pamac_package_get_icon (PamacPackage* self);
VALA_EXTERN guint64 pamac_package_get_installed_size (PamacPackage* self);
VALA_EXTERN guint64 pamac_package_get_download_size (PamacPackage* self);
VALA_EXTERN GDateTime* pamac_package_get_install_date (PamacPackage* self);
VALA_EXTERN GPtrArray* pamac_package_get_screenshots (PamacPackage* self);

G_END_DECLS

#endif
