/* libisocodes.h generated by valac 0.26.2, the Vala compiler, do not modify */


#ifndef __LIBISOCODES_H__
#define __LIBISOCODES_H__

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

G_BEGIN_DECLS


#define LIBISOCODES_TYPE_ISO_CODES (libisocodes_iso_codes_get_type ())
#define LIBISOCODES_ISO_CODES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_CODES, libisocodesISO_Codes))
#define LIBISOCODES_ISO_CODES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_CODES, libisocodesISO_CodesClass))
#define LIBISOCODES_IS_ISO_CODES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_CODES))
#define LIBISOCODES_IS_ISO_CODES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_CODES))
#define LIBISOCODES_ISO_CODES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_CODES, libisocodesISO_CodesClass))

typedef struct _libisocodesISO_Codes libisocodesISO_Codes;
typedef struct _libisocodesISO_CodesClass libisocodesISO_CodesClass;
typedef struct _libisocodesISO_CodesPrivate libisocodesISO_CodesPrivate;

#define LIBISOCODES_TYPE_ISO_3166 (libisocodes_iso_3166_get_type ())
#define LIBISOCODES_ISO_3166(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_3166, libisocodesISO_3166))
#define LIBISOCODES_ISO_3166_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_3166, libisocodesISO_3166Class))
#define LIBISOCODES_IS_ISO_3166(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_3166))
#define LIBISOCODES_IS_ISO_3166_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_3166))
#define LIBISOCODES_ISO_3166_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_3166, libisocodesISO_3166Class))

typedef struct _libisocodesISO_3166 libisocodesISO_3166;
typedef struct _libisocodesISO_3166Class libisocodesISO_3166Class;
typedef struct _libisocodesISO_3166Private libisocodesISO_3166Private;

#define LIBISOCODES_TYPE_ISO_3166_ITEM (libisocodes_iso_3166_item_get_type ())
#define LIBISOCODES_ISO_3166_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_3166_ITEM, libisocodesISO_3166_Item))
#define LIBISOCODES_ISO_3166_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_3166_ITEM, libisocodesISO_3166_ItemClass))
#define LIBISOCODES_IS_ISO_3166_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_3166_ITEM))
#define LIBISOCODES_IS_ISO_3166_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_3166_ITEM))
#define LIBISOCODES_ISO_3166_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_3166_ITEM, libisocodesISO_3166_ItemClass))

typedef struct _libisocodesISO_3166_Item libisocodesISO_3166_Item;
typedef struct _libisocodesISO_3166_ItemClass libisocodesISO_3166_ItemClass;
typedef struct _libisocodesISO_3166_ItemPrivate libisocodesISO_3166_ItemPrivate;

#define LIBISOCODES_TYPE_ISO_3166_2 (libisocodes_iso_3166_2_get_type ())
#define LIBISOCODES_ISO_3166_2(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_3166_2, libisocodesISO_3166_2))
#define LIBISOCODES_ISO_3166_2_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_3166_2, libisocodesISO_3166_2Class))
#define LIBISOCODES_IS_ISO_3166_2(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_3166_2))
#define LIBISOCODES_IS_ISO_3166_2_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_3166_2))
#define LIBISOCODES_ISO_3166_2_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_3166_2, libisocodesISO_3166_2Class))

typedef struct _libisocodesISO_3166_2 libisocodesISO_3166_2;
typedef struct _libisocodesISO_3166_2Class libisocodesISO_3166_2Class;
typedef struct _libisocodesISO_3166_2Private libisocodesISO_3166_2Private;

#define LIBISOCODES_TYPE_ISO_3166_2_ITEM (libisocodes_iso_3166_2_item_get_type ())
#define LIBISOCODES_ISO_3166_2_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_3166_2_ITEM, libisocodesISO_3166_2_Item))
#define LIBISOCODES_ISO_3166_2_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_3166_2_ITEM, libisocodesISO_3166_2_ItemClass))
#define LIBISOCODES_IS_ISO_3166_2_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_3166_2_ITEM))
#define LIBISOCODES_IS_ISO_3166_2_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_3166_2_ITEM))
#define LIBISOCODES_ISO_3166_2_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_3166_2_ITEM, libisocodesISO_3166_2_ItemClass))

typedef struct _libisocodesISO_3166_2_Item libisocodesISO_3166_2_Item;
typedef struct _libisocodesISO_3166_2_ItemClass libisocodesISO_3166_2_ItemClass;
typedef struct _libisocodesISO_3166_2_ItemPrivate libisocodesISO_3166_2_ItemPrivate;

#define LIBISOCODES_TYPE_ISO_639 (libisocodes_iso_639_get_type ())
#define LIBISOCODES_ISO_639(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_639, libisocodesISO_639))
#define LIBISOCODES_ISO_639_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_639, libisocodesISO_639Class))
#define LIBISOCODES_IS_ISO_639(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_639))
#define LIBISOCODES_IS_ISO_639_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_639))
#define LIBISOCODES_ISO_639_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_639, libisocodesISO_639Class))

typedef struct _libisocodesISO_639 libisocodesISO_639;
typedef struct _libisocodesISO_639Class libisocodesISO_639Class;
typedef struct _libisocodesISO_639Private libisocodesISO_639Private;

#define LIBISOCODES_TYPE_ISO_639_ITEM (libisocodes_iso_639_item_get_type ())
#define LIBISOCODES_ISO_639_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_639_ITEM, libisocodesISO_639_Item))
#define LIBISOCODES_ISO_639_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_639_ITEM, libisocodesISO_639_ItemClass))
#define LIBISOCODES_IS_ISO_639_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_639_ITEM))
#define LIBISOCODES_IS_ISO_639_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_639_ITEM))
#define LIBISOCODES_ISO_639_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_639_ITEM, libisocodesISO_639_ItemClass))

typedef struct _libisocodesISO_639_Item libisocodesISO_639_Item;
typedef struct _libisocodesISO_639_ItemClass libisocodesISO_639_ItemClass;
typedef struct _libisocodesISO_639_ItemPrivate libisocodesISO_639_ItemPrivate;

#define LIBISOCODES_TYPE_ISO_639_3 (libisocodes_iso_639_3_get_type ())
#define LIBISOCODES_ISO_639_3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_639_3, libisocodesISO_639_3))
#define LIBISOCODES_ISO_639_3_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_639_3, libisocodesISO_639_3Class))
#define LIBISOCODES_IS_ISO_639_3(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_639_3))
#define LIBISOCODES_IS_ISO_639_3_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_639_3))
#define LIBISOCODES_ISO_639_3_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_639_3, libisocodesISO_639_3Class))

typedef struct _libisocodesISO_639_3 libisocodesISO_639_3;
typedef struct _libisocodesISO_639_3Class libisocodesISO_639_3Class;
typedef struct _libisocodesISO_639_3Private libisocodesISO_639_3Private;

#define LIBISOCODES_TYPE_ISO_639_3_ITEM (libisocodes_iso_639_3_item_get_type ())
#define LIBISOCODES_ISO_639_3_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_639_3_ITEM, libisocodesISO_639_3_Item))
#define LIBISOCODES_ISO_639_3_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_639_3_ITEM, libisocodesISO_639_3_ItemClass))
#define LIBISOCODES_IS_ISO_639_3_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_639_3_ITEM))
#define LIBISOCODES_IS_ISO_639_3_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_639_3_ITEM))
#define LIBISOCODES_ISO_639_3_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_639_3_ITEM, libisocodesISO_639_3_ItemClass))

typedef struct _libisocodesISO_639_3_Item libisocodesISO_639_3_Item;
typedef struct _libisocodesISO_639_3_ItemClass libisocodesISO_639_3_ItemClass;
typedef struct _libisocodesISO_639_3_ItemPrivate libisocodesISO_639_3_ItemPrivate;

#define LIBISOCODES_TYPE_ISO_639_5 (libisocodes_iso_639_5_get_type ())
#define LIBISOCODES_ISO_639_5(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_639_5, libisocodesISO_639_5))
#define LIBISOCODES_ISO_639_5_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_639_5, libisocodesISO_639_5Class))
#define LIBISOCODES_IS_ISO_639_5(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_639_5))
#define LIBISOCODES_IS_ISO_639_5_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_639_5))
#define LIBISOCODES_ISO_639_5_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_639_5, libisocodesISO_639_5Class))

typedef struct _libisocodesISO_639_5 libisocodesISO_639_5;
typedef struct _libisocodesISO_639_5Class libisocodesISO_639_5Class;
typedef struct _libisocodesISO_639_5Private libisocodesISO_639_5Private;

#define LIBISOCODES_TYPE_ISO_639_5_ITEM (libisocodes_iso_639_5_item_get_type ())
#define LIBISOCODES_ISO_639_5_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_639_5_ITEM, libisocodesISO_639_5_Item))
#define LIBISOCODES_ISO_639_5_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_639_5_ITEM, libisocodesISO_639_5_ItemClass))
#define LIBISOCODES_IS_ISO_639_5_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_639_5_ITEM))
#define LIBISOCODES_IS_ISO_639_5_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_639_5_ITEM))
#define LIBISOCODES_ISO_639_5_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_639_5_ITEM, libisocodesISO_639_5_ItemClass))

typedef struct _libisocodesISO_639_5_Item libisocodesISO_639_5_Item;
typedef struct _libisocodesISO_639_5_ItemClass libisocodesISO_639_5_ItemClass;
typedef struct _libisocodesISO_639_5_ItemPrivate libisocodesISO_639_5_ItemPrivate;

#define LIBISOCODES_TYPE_ISO_4217 (libisocodes_iso_4217_get_type ())
#define LIBISOCODES_ISO_4217(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_4217, libisocodesISO_4217))
#define LIBISOCODES_ISO_4217_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_4217, libisocodesISO_4217Class))
#define LIBISOCODES_IS_ISO_4217(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_4217))
#define LIBISOCODES_IS_ISO_4217_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_4217))
#define LIBISOCODES_ISO_4217_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_4217, libisocodesISO_4217Class))

typedef struct _libisocodesISO_4217 libisocodesISO_4217;
typedef struct _libisocodesISO_4217Class libisocodesISO_4217Class;
typedef struct _libisocodesISO_4217Private libisocodesISO_4217Private;

#define LIBISOCODES_TYPE_ISO_4217_ITEM (libisocodes_iso_4217_item_get_type ())
#define LIBISOCODES_ISO_4217_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_4217_ITEM, libisocodesISO_4217_Item))
#define LIBISOCODES_ISO_4217_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_4217_ITEM, libisocodesISO_4217_ItemClass))
#define LIBISOCODES_IS_ISO_4217_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_4217_ITEM))
#define LIBISOCODES_IS_ISO_4217_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_4217_ITEM))
#define LIBISOCODES_ISO_4217_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_4217_ITEM, libisocodesISO_4217_ItemClass))

typedef struct _libisocodesISO_4217_Item libisocodesISO_4217_Item;
typedef struct _libisocodesISO_4217_ItemClass libisocodesISO_4217_ItemClass;
typedef struct _libisocodesISO_4217_ItemPrivate libisocodesISO_4217_ItemPrivate;

#define LIBISOCODES_TYPE_ISO_15924 (libisocodes_iso_15924_get_type ())
#define LIBISOCODES_ISO_15924(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_15924, libisocodesISO_15924))
#define LIBISOCODES_ISO_15924_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_15924, libisocodesISO_15924Class))
#define LIBISOCODES_IS_ISO_15924(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_15924))
#define LIBISOCODES_IS_ISO_15924_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_15924))
#define LIBISOCODES_ISO_15924_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_15924, libisocodesISO_15924Class))

typedef struct _libisocodesISO_15924 libisocodesISO_15924;
typedef struct _libisocodesISO_15924Class libisocodesISO_15924Class;
typedef struct _libisocodesISO_15924Private libisocodesISO_15924Private;

#define LIBISOCODES_TYPE_ISO_15924_ITEM (libisocodes_iso_15924_item_get_type ())
#define LIBISOCODES_ISO_15924_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBISOCODES_TYPE_ISO_15924_ITEM, libisocodesISO_15924_Item))
#define LIBISOCODES_ISO_15924_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBISOCODES_TYPE_ISO_15924_ITEM, libisocodesISO_15924_ItemClass))
#define LIBISOCODES_IS_ISO_15924_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBISOCODES_TYPE_ISO_15924_ITEM))
#define LIBISOCODES_IS_ISO_15924_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBISOCODES_TYPE_ISO_15924_ITEM))
#define LIBISOCODES_ISO_15924_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBISOCODES_TYPE_ISO_15924_ITEM, libisocodesISO_15924_ItemClass))

typedef struct _libisocodesISO_15924_Item libisocodesISO_15924_Item;
typedef struct _libisocodesISO_15924_ItemClass libisocodesISO_15924_ItemClass;
typedef struct _libisocodesISO_15924_ItemPrivate libisocodesISO_15924_ItemPrivate;

struct _libisocodesISO_Codes {
	GObject parent_instance;
	libisocodesISO_CodesPrivate * priv;
};

struct _libisocodesISO_CodesClass {
	GObjectClass parent_class;
	gchar** (*_get_xpaths) (libisocodesISO_Codes* self, const gchar* code, int* result_length1);
	gchar** (*_get_fields) (libisocodesISO_Codes* self, int* result_length1);
};

typedef enum  {
	LIBISOCODES_ISO_CODES_ERROR_CANNOT_OPEN_FILE,
	LIBISOCODES_ISO_CODES_ERROR_CANNOT_CREATE_LIBXML_STRUCTURE,
	LIBISOCODES_ISO_CODES_ERROR_CANNOT_PARSE_FILE,
	LIBISOCODES_ISO_CODES_ERROR_FILE_DOES_NOT_CONTAIN_ISO_DATA,
	LIBISOCODES_ISO_CODES_ERROR_CODE_NOT_DEFINED
} libisocodesISOCodesError;
#define LIBISOCODES_ISO_CODES_ERROR libisocodes_iso_codes_error_quark ()
struct _libisocodesISO_3166 {
	libisocodesISO_Codes parent_instance;
	libisocodesISO_3166Private * priv;
};

struct _libisocodesISO_3166Class {
	libisocodesISO_CodesClass parent_class;
};

struct _libisocodesISO_3166_Item {
	GObject parent_instance;
	libisocodesISO_3166_ItemPrivate * priv;
	gchar* alpha_2_code;
	gchar* alpha_3_code;
	gchar* numeric_code;
	gchar* name;
	gchar* official_name;
	gchar* common_name;
};

struct _libisocodesISO_3166_ItemClass {
	GObjectClass parent_class;
};

struct _libisocodesISO_3166_2 {
	libisocodesISO_Codes parent_instance;
	libisocodesISO_3166_2Private * priv;
};

struct _libisocodesISO_3166_2Class {
	libisocodesISO_CodesClass parent_class;
};

struct _libisocodesISO_3166_2_Item {
	GObject parent_instance;
	libisocodesISO_3166_2_ItemPrivate * priv;
	gchar* country;
	gchar* type;
	gchar* code;
	gchar* parent;
	gchar* name;
};

struct _libisocodesISO_3166_2_ItemClass {
	GObjectClass parent_class;
};

struct _libisocodesISO_639 {
	libisocodesISO_Codes parent_instance;
	libisocodesISO_639Private * priv;
};

struct _libisocodesISO_639Class {
	libisocodesISO_CodesClass parent_class;
};

struct _libisocodesISO_639_Item {
	GObject parent_instance;
	libisocodesISO_639_ItemPrivate * priv;
	gchar* iso_639_2B_code;
	gchar* iso_639_2T_code;
	gchar* iso_639_1_code;
	gchar* name;
};

struct _libisocodesISO_639_ItemClass {
	GObjectClass parent_class;
};

struct _libisocodesISO_639_3 {
	libisocodesISO_Codes parent_instance;
	libisocodesISO_639_3Private * priv;
};

struct _libisocodesISO_639_3Class {
	libisocodesISO_CodesClass parent_class;
};

struct _libisocodesISO_639_3_Item {
	GObject parent_instance;
	libisocodesISO_639_3_ItemPrivate * priv;
	gchar* id;
	gchar* part1_code;
	gchar* part2_code;
	gchar* status;
	gchar* scope;
	gchar* type;
	gchar* inverted_name;
	gchar* reference_name;
	gchar* name;
	gchar* common_name;
};

struct _libisocodesISO_639_3_ItemClass {
	GObjectClass parent_class;
};

struct _libisocodesISO_639_5 {
	libisocodesISO_Codes parent_instance;
	libisocodesISO_639_5Private * priv;
};

struct _libisocodesISO_639_5Class {
	libisocodesISO_CodesClass parent_class;
};

struct _libisocodesISO_639_5_Item {
	GObject parent_instance;
	libisocodesISO_639_5_ItemPrivate * priv;
	gchar* id;
	gchar* parents;
	gchar* name;
};

struct _libisocodesISO_639_5_ItemClass {
	GObjectClass parent_class;
};

struct _libisocodesISO_4217 {
	libisocodesISO_Codes parent_instance;
	libisocodesISO_4217Private * priv;
};

struct _libisocodesISO_4217Class {
	libisocodesISO_CodesClass parent_class;
};

struct _libisocodesISO_4217_Item {
	GObject parent_instance;
	libisocodesISO_4217_ItemPrivate * priv;
	gchar* letter_code;
	gchar* numeric_code;
	gchar* name;
};

struct _libisocodesISO_4217_ItemClass {
	GObjectClass parent_class;
};

struct _libisocodesISO_15924 {
	libisocodesISO_Codes parent_instance;
	libisocodesISO_15924Private * priv;
};

struct _libisocodesISO_15924Class {
	libisocodesISO_CodesClass parent_class;
};

struct _libisocodesISO_15924_Item {
	GObject parent_instance;
	libisocodesISO_15924_ItemPrivate * priv;
	gchar* alpha_4_code;
	gchar* numeric_code;
	gchar* name;
};

struct _libisocodesISO_15924_ItemClass {
	GObjectClass parent_class;
};


GType libisocodes_iso_codes_get_type (void) G_GNUC_CONST;
GQuark libisocodes_iso_codes_error_quark (void);
gchar* libisocodes_iso_codes_get_iso_codes_xml_version (libisocodesISO_Codes* self, GError** error);
gchar* libisocodes_iso_codes_get_filepath (libisocodesISO_Codes* self);
void libisocodes_iso_codes_set_filepath (libisocodesISO_Codes* self, const gchar* path);
gchar* libisocodes_iso_codes_get_locale (libisocodesISO_Codes* self);
void libisocodes_iso_codes_set_locale (libisocodesISO_Codes* self, const gchar* locale);
libisocodesISO_Codes* libisocodes_iso_codes_construct (GType object_type);
GType libisocodes_iso_3166_get_type (void) G_GNUC_CONST;
libisocodesISO_3166* libisocodes_iso_3166_new (void);
libisocodesISO_3166* libisocodes_iso_3166_construct (GType object_type);
void libisocodes_iso_3166_setup (libisocodesISO_3166* self);
GType libisocodes_iso_3166_item_get_type (void) G_GNUC_CONST;
libisocodesISO_3166_Item** libisocodes_iso_3166_find_all (libisocodesISO_3166* self, int* result_length1, GError** error);
libisocodesISO_3166_Item* libisocodes_iso_3166_find_code (libisocodesISO_3166* self, const gchar* code, GError** error);
GType libisocodes_iso_3166_2_get_type (void) G_GNUC_CONST;
libisocodesISO_3166_2* libisocodes_iso_3166_2_new (void);
libisocodesISO_3166_2* libisocodes_iso_3166_2_construct (GType object_type);
void libisocodes_iso_3166_2_setup (libisocodesISO_3166_2* self);
GType libisocodes_iso_3166_2_item_get_type (void) G_GNUC_CONST;
libisocodesISO_3166_2_Item** libisocodes_iso_3166_2_find_all (libisocodesISO_3166_2* self, int* result_length1, GError** error);
libisocodesISO_3166_2_Item* libisocodes_iso_3166_2_find_code (libisocodesISO_3166_2* self, const gchar* code, GError** error);
GType libisocodes_iso_639_get_type (void) G_GNUC_CONST;
libisocodesISO_639* libisocodes_iso_639_new (void);
libisocodesISO_639* libisocodes_iso_639_construct (GType object_type);
void libisocodes_iso_639_setup (libisocodesISO_639* self);
GType libisocodes_iso_639_item_get_type (void) G_GNUC_CONST;
libisocodesISO_639_Item** libisocodes_iso_639_find_all (libisocodesISO_639* self, int* result_length1, GError** error);
libisocodesISO_639_Item* libisocodes_iso_639_find_code (libisocodesISO_639* self, const gchar* code, GError** error);
GType libisocodes_iso_639_3_get_type (void) G_GNUC_CONST;
libisocodesISO_639_3* libisocodes_iso_639_3_new (void);
libisocodesISO_639_3* libisocodes_iso_639_3_construct (GType object_type);
void libisocodes_iso_639_3_setup (libisocodesISO_639_3* self);
GType libisocodes_iso_639_3_item_get_type (void) G_GNUC_CONST;
libisocodesISO_639_3_Item** libisocodes_iso_639_3_find_all (libisocodesISO_639_3* self, int* result_length1, GError** error);
libisocodesISO_639_3_Item* libisocodes_iso_639_3_find_code (libisocodesISO_639_3* self, const gchar* code, GError** error);
GType libisocodes_iso_639_5_get_type (void) G_GNUC_CONST;
libisocodesISO_639_5* libisocodes_iso_639_5_new (void);
libisocodesISO_639_5* libisocodes_iso_639_5_construct (GType object_type);
void libisocodes_iso_639_5_setup (libisocodesISO_639_5* self);
GType libisocodes_iso_639_5_item_get_type (void) G_GNUC_CONST;
libisocodesISO_639_5_Item** libisocodes_iso_639_5_find_all (libisocodesISO_639_5* self, int* result_length1, GError** error);
libisocodesISO_639_5_Item* libisocodes_iso_639_5_find_code (libisocodesISO_639_5* self, const gchar* code, GError** error);
GType libisocodes_iso_4217_get_type (void) G_GNUC_CONST;
libisocodesISO_4217* libisocodes_iso_4217_new (void);
libisocodesISO_4217* libisocodes_iso_4217_construct (GType object_type);
void libisocodes_iso_4217_setup (libisocodesISO_4217* self);
GType libisocodes_iso_4217_item_get_type (void) G_GNUC_CONST;
libisocodesISO_4217_Item** libisocodes_iso_4217_find_all (libisocodesISO_4217* self, int* result_length1, GError** error);
libisocodesISO_4217_Item* libisocodes_iso_4217_find_code (libisocodesISO_4217* self, const gchar* code, GError** error);
GType libisocodes_iso_15924_get_type (void) G_GNUC_CONST;
libisocodesISO_15924* libisocodes_iso_15924_new (void);
libisocodesISO_15924* libisocodes_iso_15924_construct (GType object_type);
void libisocodes_iso_15924_setup (libisocodesISO_15924* self);
GType libisocodes_iso_15924_item_get_type (void) G_GNUC_CONST;
libisocodesISO_15924_Item** libisocodes_iso_15924_find_all (libisocodesISO_15924* self, int* result_length1, GError** error);
libisocodesISO_15924_Item* libisocodes_iso_15924_find_code (libisocodesISO_15924* self, const gchar* code, GError** error);


G_END_DECLS

#endif
