/* harfbuzz-gobject.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "hb_", gir_namespace = "HarfBuzz", gir_version = "0.0", lower_case_cprefix = "hb_")]
[Version (experimental = true)]
namespace HarfBuzz {
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_blob_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_blob_get_type ()")]
	[Compact]
	[GIR (name = "blob_t")]
	public class Blob {
		[Version (since = "1.8.0")]
		public HarfBuzz.Blob copy_writable_or_fail ();
		[Version (since = "1.7.7")]
		public static HarfBuzz.Blob create_from_file (string file_name);
		[Version (since = "0.9.2")]
		public HarfBuzz.Blob create_sub_blob (uint offset, uint length);
		[CCode (array_length_pos = 0.2, array_length_type = "guint")]
		[Version (since = "0.9.2")]
		public unowned char[]? get_data ();
		[CCode (array_length_pos = 0.2, array_length_type = "guint")]
		[Version (since = "0.9.2")]
		public unowned char[] get_data_writable ();
		[Version (since = "0.9.2")]
		public static HarfBuzz.Blob get_empty ();
		[Version (since = "0.9.2")]
		public uint get_length ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool is_immutable ();
		[Version (since = "0.9.2")]
		public void make_immutable ();
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_buffer_get_type ()")]
	[Compact]
	[GIR (name = "buffer_t")]
	public class Buffer {
		[Version (since = "0.9.7")]
		public void add (HarfBuzz.Codepoint codepoint, uint cluster);
		[Version (since = "0.9.31")]
		public void add_codepoints ([CCode (array_length_cname = "text_length", array_length_pos = 1.5)] HarfBuzz.Codepoint[] text, uint item_offset, int item_length);
		[Version (since = "0.9.39")]
		public void add_latin1 ([CCode (array_length_cname = "text_length", array_length_pos = 1.5)] uint8[] text, uint item_offset, int item_length);
		[Version (since = "0.9.2")]
		public void add_utf16 ([CCode (array_length_cname = "text_length", array_length_pos = 1.5)] uint16[] text, uint item_offset, int item_length);
		[Version (since = "0.9.2")]
		public void add_utf32 ([CCode (array_length_cname = "text_length", array_length_pos = 1.5)] uint32[] text, uint item_offset, int item_length);
		[Version (since = "0.9.2")]
		public void add_utf8 ([CCode (array_length_cname = "text_length", array_length_pos = 1.5)] uint8[] text, uint item_offset, int item_length);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool allocation_successful ();
		[Version (since = "1.5.0")]
		public void append (HarfBuzz.Buffer source, uint start, uint end);
		[Version (since = "0.9.11")]
		public void clear_contents ();
		[Version (since = "0.9.2")]
		public static HarfBuzz.Buffer create ();
		[Version (since = "0.9.7")]
		public HarfBuzz.Bool deserialize_glyphs ([CCode (array_length_cname = "buf_len", array_length_pos = 1.5)] char[] buf, out string end_ptr, HarfBuzz.Font? font, HarfBuzz.BufferSerializeFormat format);
		[Version (since = "2.7.3")]
		public HarfBuzz.Bool deserialize_unicode ([CCode (array_length_cname = "buf_len", array_length_pos = 1.5)] char[] buf, out string end_ptr, HarfBuzz.BufferSerializeFormat format);
		[Version (since = "1.5.0")]
		public HarfBuzz.BufferDiffFlags diff (HarfBuzz.Buffer reference, HarfBuzz.Codepoint dottedcircle_glyph, uint position_fuzz);
		[Version (since = "0.9.42")]
		public HarfBuzz.BufferClusterLevel get_cluster_level ();
		[Version (since = "0.9.5")]
		public HarfBuzz.BufferContentType get_content_type ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Direction get_direction ();
		[Version (since = "0.9.2")]
		public static HarfBuzz.Buffer get_empty ();
		[Version (since = "0.9.7")]
		public HarfBuzz.BufferFlags get_flags ();
		[CCode (array_length_pos = 0.2, array_length_type = "guint")]
		[Version (since = "0.9.2")]
		public unowned HarfBuzz.Glyph[] get_glyph_infos ();
		[CCode (array_length_pos = 0.2, array_length_type = "guint")]
		[Version (since = "0.9.2")]
		public unowned HarfBuzz.GlyphPosition[] get_glyph_positions ();
		[Version (since = "2.0.0")]
		public HarfBuzz.Codepoint get_invisible_glyph ();
		[Version (since = "0.9.2")]
		public unowned HarfBuzz.Language get_language ();
		[Version (since = "0.9.2")]
		public uint get_length ();
		[Version (since = "0.9.31")]
		public HarfBuzz.Codepoint get_replacement_codepoint ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Script get_script ();
		[Version (since = "0.9.7")]
		public void get_segment_properties (out unowned HarfBuzz.SegmentProperties props);
		[Version (since = "0.9.2")]
		public HarfBuzz.UnicodeFuncs get_unicode_funcs ();
		[Version (since = "0.9.7")]
		public void guess_segment_properties ();
		public HarfBuzz.Bool has_positions ();
		[Version (since = "0.9.2")]
		public void normalize_glyphs ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool pre_allocate (uint size);
		[Version (since = "0.9.2")]
		public void reset ();
		[Version (since = "0.9.2")]
		public void reverse ();
		[Version (since = "0.9.2")]
		public void reverse_clusters ();
		[Version (since = "0.9.41")]
		public void reverse_range (uint start, uint end);
		[Version (since = "2.7.3")]
		public uint serialize (uint start, uint end, [CCode (array_length_cname = "buf_size", array_length_pos = 3.5, array_length_type = "guint")] out uint8[] buf, out uint buf_consumed, HarfBuzz.Font? font, HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags flags);
		[Version (since = "0.9.7")]
		public static HarfBuzz.BufferSerializeFormat serialize_format_from_string ([CCode (array_length_cname = "len", array_length_pos = 1.1)] uint8[] str);
		[Version (since = "0.9.7")]
		public static unowned string serialize_format_to_string (HarfBuzz.BufferSerializeFormat format);
		[Version (since = "0.9.7")]
		public uint serialize_glyphs (uint start, uint end, [CCode (array_length_cname = "buf_size", array_length_pos = 3.5, array_length_type = "guint")] out uint8[] buf, out uint buf_consumed, HarfBuzz.Font? font, HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags flags);
		[CCode (array_length = false, array_null_terminated = true)]
		[Version (since = "0.9.7")]
		public static unowned string[] serialize_list_formats ();
		[Version (since = "2.7.3")]
		public uint serialize_unicode (uint start, uint end, [CCode (array_length_cname = "buf_size", array_length_pos = 3.5, array_length_type = "guint")] out uint8[] buf, out uint buf_consumed, HarfBuzz.BufferSerializeFormat format, HarfBuzz.BufferSerializeFlags flags);
		[Version (since = "0.9.42")]
		public void set_cluster_level (HarfBuzz.BufferClusterLevel cluster_level);
		[Version (since = "0.9.5")]
		public void set_content_type (HarfBuzz.BufferContentType content_type);
		[Version (since = "0.9.2")]
		public void set_direction (HarfBuzz.Direction direction);
		[Version (since = "0.9.7")]
		public void set_flags (HarfBuzz.BufferFlags flags);
		[Version (since = "2.0.0")]
		public void set_invisible_glyph (HarfBuzz.Codepoint invisible);
		[Version (since = "0.9.2")]
		public void set_language (HarfBuzz.Language language);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool set_length (uint length);
		[Version (since = "1.1.3")]
		public void set_message_func (owned HarfBuzz.BufferMessageFunc func);
		[Version (since = "0.9.31")]
		public void set_replacement_codepoint (HarfBuzz.Codepoint replacement);
		[Version (since = "0.9.2")]
		public void set_script (HarfBuzz.Script script);
		[Version (since = "0.9.7")]
		public void set_segment_properties (HarfBuzz.SegmentProperties props);
		[Version (since = "0.9.2")]
		public void set_unicode_funcs (HarfBuzz.UnicodeFuncs unicode_funcs);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_face_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_face_get_type ()")]
	[Compact]
	[GIR (name = "face_t")]
	public class Face {
		[Version (since = "1.9.0")]
		public HarfBuzz.Bool builder_add_table (HarfBuzz.Tag tag, HarfBuzz.Blob blob);
		[Version (since = "1.9.0")]
		public static HarfBuzz.Face builder_create ();
		[Version (since = "1.9.0")]
		public void collect_unicodes (HarfBuzz.Set @out);
		[Version (since = "1.9.0")]
		public void collect_variation_selectors (HarfBuzz.Set @out);
		[Version (since = "1.9.0")]
		public void collect_variation_unicodes (HarfBuzz.Codepoint variation_selector, HarfBuzz.Set @out);
		[Version (since = "1.7.7")]
		public static uint count (HarfBuzz.Blob blob);
		[Version (since = "0.9.2")]
		public static HarfBuzz.Face create (HarfBuzz.Blob blob, uint index);
		[Version (since = "0.9.2")]
		public static HarfBuzz.Face create_for_tables (owned HarfBuzz.ReferenceTableFunc reference_table_func);
		[Version (since = "0.9.2")]
		public static HarfBuzz.Face get_empty ();
		[Version (since = "0.9.7")]
		public uint get_glyph_count ();
		[Version (since = "0.9.2")]
		public uint get_index ();
		[Version (since = "1.6.0")]
		public uint get_table_tags (uint start_offset, [CCode (array_length_cname = "table_count", array_length_pos = 1.5, array_length_type = "guint")] out HarfBuzz.Tag[] table_tags);
		[Version (since = "0.9.2")]
		public uint get_upem ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool is_immutable ();
		[Version (since = "0.9.2")]
		public void make_immutable ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Blob reference_blob ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Blob reference_table (HarfBuzz.Tag tag);
		[Version (since = "0.9.7")]
		public void set_glyph_count (uint glyph_count);
		[Version (since = "0.9.2")]
		public void set_index (uint index);
		[Version (since = "0.9.2")]
		public void set_upem (uint upem);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_feature_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_feature_get_type ()")]
	[Compact]
	[GIR (name = "feature_t")]
	public class Feature {
		public uint end;
		public uint start;
		public HarfBuzz.Tag tag;
		public uint32 value;
		[CCode (cname = "hb_feature_to_string")]
		[Version (replacement = "feature_to_string", since = "0.9.5")]
		public void _string ([CCode (array_length_cname = "size", array_length_pos = 1.1, array_length_type = "guint")] out char[] buf);
		[Version (since = "0.9.5")]
		public static HarfBuzz.Bool from_string ([CCode (array_length_cname = "len", array_length_pos = 1.5)] uint8[] str, out unowned HarfBuzz.Feature feature);
		[Version (since = "0.9.5")]
		public void to_string ([CCode (array_length_cname = "size", array_length_pos = 1.1, array_length_type = "guint")] out char[] buf);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_font_get_type ()")]
	[Compact]
	[GIR (name = "font_t")]
	public class Font {
		[Version (since = "0.9.2")]
		public void add_glyph_origin_for_direction (HarfBuzz.Codepoint glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
		[Version (since = "0.9.2")]
		public static HarfBuzz.Font create (HarfBuzz.Face face);
		[Version (since = "0.9.2")]
		public HarfBuzz.Font create_sub_font ();
		[Version (since = "0.9.2")]
		public static HarfBuzz.Font get_empty ();
		[Version (since = "1.1.3")]
		public HarfBuzz.FontExtents get_extents_for_direction (HarfBuzz.Direction direction);
		[Version (since = "0.9.2")]
		public unowned HarfBuzz.Face get_face ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool get_glyph (HarfBuzz.Codepoint unicode, HarfBuzz.Codepoint variation_selector, out HarfBuzz.Codepoint glyph);
		[Version (since = "0.9.2")]
		public void get_glyph_advance_for_direction (HarfBuzz.Codepoint glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
		[Version (since = "1.8.6")]
		public void get_glyph_advances_for_direction (HarfBuzz.Direction direction, uint count, HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool get_glyph_contour_point (HarfBuzz.Codepoint glyph, uint point_index, out HarfBuzz.Position x, out HarfBuzz.Position y);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool get_glyph_contour_point_for_origin (HarfBuzz.Codepoint glyph, uint point_index, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool get_glyph_extents (HarfBuzz.Codepoint glyph, out HarfBuzz.GlyphExtents extents);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool get_glyph_extents_for_origin (HarfBuzz.Codepoint glyph, HarfBuzz.Direction direction, out HarfBuzz.GlyphExtents extents);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool get_glyph_from_name ([CCode (array_length_cname = "len", array_length_pos = 1.5)] char[] name, out HarfBuzz.Codepoint glyph);
		[Version (since = "0.9.2")]
		public HarfBuzz.Position get_glyph_h_advance (HarfBuzz.Codepoint glyph);
		[Version (since = "1.8.6")]
		public void get_glyph_h_advances (uint count, HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
		[Version (since = "0.9.2")]
		public HarfBuzz.Position get_glyph_h_kerning (HarfBuzz.Codepoint left_glyph, HarfBuzz.Codepoint right_glyph);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool get_glyph_h_origin (HarfBuzz.Codepoint glyph, out HarfBuzz.Position x, out HarfBuzz.Position y);
		[Version (since = "0.9.2")]
		public void get_glyph_kerning_for_direction (HarfBuzz.Codepoint first_glyph, HarfBuzz.Codepoint second_glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool get_glyph_name (HarfBuzz.Codepoint glyph, [CCode (array_length_cname = "size", array_length_pos = 2.1, array_length_type = "guint")] out char[] name);
		[Version (since = "0.9.2")]
		public void get_glyph_origin_for_direction (HarfBuzz.Codepoint glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
		[Version (since = "0.9.2")]
		public HarfBuzz.Position get_glyph_v_advance (HarfBuzz.Codepoint glyph);
		[Version (since = "1.8.6")]
		public void get_glyph_v_advances (uint count, HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
		[Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
		public HarfBuzz.Position get_glyph_v_kerning (HarfBuzz.Codepoint top_glyph, HarfBuzz.Codepoint bottom_glyph);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool get_glyph_v_origin (HarfBuzz.Codepoint glyph, out HarfBuzz.Position x, out HarfBuzz.Position y);
		[Version (since = "1.1.3")]
		public HarfBuzz.Bool get_h_extents (out HarfBuzz.FontExtents extents);
		[Version (since = "1.2.3")]
		public HarfBuzz.Bool get_nominal_glyph (HarfBuzz.Codepoint unicode, out HarfBuzz.Codepoint glyph);
		[Version (since = "2.6.3")]
		public uint get_nominal_glyphs (uint count, HarfBuzz.Codepoint first_unicode, uint unicode_stride, HarfBuzz.Codepoint first_glyph, uint glyph_stride);
		[Version (since = "0.9.2")]
		public unowned HarfBuzz.Font get_parent ();
		[Version (since = "0.9.2")]
		public void get_ppem (out uint x_ppem, out uint y_ppem);
		[Version (since = "0.9.2")]
		public float get_ptem ();
		[Version (since = "0.9.2")]
		public void get_scale (out int x_scale, out int y_scale);
		[Version (since = "1.1.3")]
		public HarfBuzz.Bool get_v_extents (out HarfBuzz.FontExtents extents);
		[Version (since = "1.4.2")]
		public int get_var_coords_normalized (uint length);
		[Version (since = "1.2.3")]
		public HarfBuzz.Bool get_variation_glyph (HarfBuzz.Codepoint unicode, HarfBuzz.Codepoint variation_selector, out HarfBuzz.Codepoint glyph);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool glyph_from_string ([CCode (array_length_cname = "len", array_length_pos = 1.5)] uint8[] s, out HarfBuzz.Codepoint glyph);
		[Version (since = "0.9.2")]
		public void glyph_to_string (HarfBuzz.Codepoint glyph, [CCode (array_length_cname = "size", array_length_pos = 2.1, array_length_type = "guint")] out char[] s);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool is_immutable ();
		[Version (since = "0.9.2")]
		public void make_immutable ();
		[Version (since = "1.4.3")]
		public void set_face (HarfBuzz.Face face);
		[Version (since = "0.9.2")]
		public void set_funcs (owned HarfBuzz.FontFuncs klass);
		[Version (since = "0.9.2")]
		public void set_funcs_data ([CCode (destroy_notify_pos = 1.1)] owned void* font_data);
		[Version (since = "1.0.5")]
		public void set_parent (HarfBuzz.Font parent);
		[Version (since = "0.9.2")]
		public void set_ppem (uint x_ppem, uint y_ppem);
		[Version (since = "1.6.0")]
		public void set_ptem (float ptem);
		[Version (since = "0.9.2")]
		public void set_scale (int x_scale, int y_scale);
		[Version (since = "1.4.2")]
		public void set_var_coords_design (float coords, uint coords_length);
		[Version (since = "1.4.2")]
		public void set_var_coords_normalized (int coords, uint coords_length);
		[Version (since = "2.6.0")]
		public void set_var_named_instance (uint instance_index);
		[Version (since = "1.4.2")]
		public void set_variations (HarfBuzz.Variation variations, uint variations_length);
		[Version (since = "0.9.2")]
		public void subtract_glyph_origin_for_direction (HarfBuzz.Codepoint glyph, HarfBuzz.Direction direction, out HarfBuzz.Position x, out HarfBuzz.Position y);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_funcs_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_font_funcs_get_type ()")]
	[Compact]
	[GIR (name = "font_funcs_t")]
	public class FontFuncs {
		[Version (since = "0.9.2")]
		public static HarfBuzz.FontFuncs create ();
		[Version (since = "0.9.2")]
		public static HarfBuzz.FontFuncs get_empty ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool is_immutable ();
		[Version (since = "0.9.2")]
		public void make_immutable ();
		[Version (since = "1.1.2")]
		public void set_font_h_extents_func (owned HarfBuzz.FontGetFontHExtentsFunc func);
		[Version (since = "1.1.2")]
		public void set_font_v_extents_func (owned HarfBuzz.FontGetFontVExtentsFunc func);
		[Version (since = "0.9.2")]
		public void set_glyph_contour_point_func (owned HarfBuzz.FontGetGlyphContourFunc func);
		[Version (since = "0.9.2")]
		public void set_glyph_extents_func (owned HarfBuzz.FontGetGlyphExtentsFunc func);
		[Version (since = "0.9.2")]
		public void set_glyph_from_name_func (owned HarfBuzz.FontGetGlyphFromNameFunc func);
		[Version (deprecated = true, deprecated_since = "1.2.3", since = "0.9.2")]
		public void set_glyph_func (owned HarfBuzz.FontGetGlyphFunc func);
		[Version (since = "0.9.2")]
		public void set_glyph_h_advance_func (owned HarfBuzz.FontGetGlyphHAdvanceFunc func);
		[Version (since = "1.8.6")]
		public void set_glyph_h_advances_func (owned HarfBuzz.FontGetGlyphHAdvancesFunc func);
		[Version (since = "0.9.2")]
		public void set_glyph_h_kerning_func (owned HarfBuzz.FontGetGlyphHKerningFunc func);
		[Version (since = "0.9.2")]
		public void set_glyph_h_origin_func (owned HarfBuzz.FontGetGlyphHOriginFunc func);
		[Version (since = "0.9.2")]
		public void set_glyph_name_func (owned HarfBuzz.FontGetGlyphNameFunc func);
		[Version (since = "0.9.2")]
		public void set_glyph_v_advance_func (owned HarfBuzz.FontGetGlyphVAdvanceFunc func);
		[Version (since = "1.8.6")]
		public void set_glyph_v_advances_func (owned HarfBuzz.FontGetGlyphVAdvancesFunc func);
		[Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
		public void set_glyph_v_kerning_func (owned HarfBuzz.FontGetGlyphVKerningFunc func);
		[Version (since = "0.9.2")]
		public void set_glyph_v_origin_func (owned HarfBuzz.FontGetGlyphVOriginFunc func);
		[Version (since = "1.2.3")]
		public void set_nominal_glyph_func (owned HarfBuzz.FontGetNominalGlyphFunc func);
		[Version (since = "2.0.0")]
		public void set_nominal_glyphs_func (owned HarfBuzz.FontGetNominalGlyphsFunc func);
		[Version (since = "1.2.3")]
		public void set_variation_glyph_func (owned HarfBuzz.FontGetVariantGlyphFunc func);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_glyph_info_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_glyph_info_", type_id = "hb_gobject_glyph_info_get_type ()")]
	[Compact]
	[GIR (name = "glyph_info_t")]
	public class Glyph {
		public uint32 cluster;
		public HarfBuzz.Codepoint codepoint;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_glyph_position_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_glyph_position_", type_id = "hb_gobject_glyph_position_get_type ()")]
	[Compact]
	[GIR (name = "glyph_position_t")]
	public class GlyphPosition {
		public HarfBuzz.Position x_advance;
		public HarfBuzz.Position x_offset;
		public HarfBuzz.Position y_advance;
		public HarfBuzz.Position y_offset;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_language_t", has_type_id = false)]
	[Compact]
	[GIR (name = "language_t")]
	public class Language {
		[CCode (cname = "hb_language_to_string")]
		[Version (replacement = "language_to_string", since = "0.9.2")]
		public unowned string _string ();
		[Version (since = "0.9.2")]
		public static unowned HarfBuzz.Language from_string ([CCode (array_length_cname = "len", array_length_pos = 1.1)] uint8[] str);
		[Version (since = "0.9.2")]
		public static unowned HarfBuzz.Language get_default ();
		[Version (since = "0.9.2")]
		public unowned string to_string ();
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_map_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_map_get_type ()")]
	[Compact]
	[GIR (name = "map_t")]
	public class Map {
		[Version (since = "1.7.7")]
		public HarfBuzz.Bool allocation_successful ();
		[Version (since = "1.7.7")]
		public void clear ();
		[Version (since = "1.7.7")]
		public static HarfBuzz.Map create ();
		[Version (since = "1.7.7")]
		public void del (HarfBuzz.Codepoint key);
		[Version (since = "1.7.7")]
		public HarfBuzz.Codepoint @get (HarfBuzz.Codepoint key);
		[Version (since = "1.7.7")]
		public static HarfBuzz.Map get_empty ();
		[Version (since = "1.7.7")]
		public uint get_population ();
		[Version (since = "1.7.7")]
		public HarfBuzz.Bool has (HarfBuzz.Codepoint key);
		[Version (since = "1.7.7")]
		public HarfBuzz.Bool is_empty ();
		[Version (since = "1.7.7")]
		public void @set (HarfBuzz.Codepoint key, HarfBuzz.Codepoint value);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_glyph_part_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_ot_math_glyph_part_", type_id = "hb_gobject_ot_math_glyph_part_get_type ()")]
	[Compact]
	[GIR (name = "ot_math_glyph_part_t")]
	[Version (since = "1.3.3")]
	public class OtMathGlypthPart {
		public HarfBuzz.Position end_connector_length;
		public HarfBuzz.OtMathGlyphPartFlags flags;
		public HarfBuzz.Position full_advance;
		public HarfBuzz.Codepoint glyph;
		public HarfBuzz.Position start_connector_length;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_glyph_variant_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_ot_math_glyph_variant_", type_id = "hb_gobject_ot_math_glyph_variant_get_type ()")]
	[Compact]
	[GIR (name = "ot_math_glyph_variant_t")]
	[Version (since = "1.3.3")]
	public class OtMathGlypthVariant {
		public HarfBuzz.Position advance;
		public HarfBuzz.Codepoint glyph;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_segment_properties_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_segment_properties_get_type ()")]
	[Compact]
	[GIR (name = "segment_properties_t")]
	public class SegmentProperties {
		public HarfBuzz.Direction direction;
		public weak HarfBuzz.Language language;
		public HarfBuzz.Script script;
		[Version (since = "0.9.7")]
		public HarfBuzz.Bool equal (HarfBuzz.SegmentProperties b);
		[Version (since = "0.9.7")]
		public uint hash ();
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_set_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_set_get_type ()")]
	[Compact]
	[GIR (name = "set_t")]
	public class Set {
		[Version (since = "0.9.2")]
		public void add (HarfBuzz.Codepoint codepoint);
		[Version (since = "0.9.7")]
		public void add_range (HarfBuzz.Codepoint first, HarfBuzz.Codepoint last);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool allocation_successful ();
		[Version (since = "0.9.2")]
		public void clear ();
		[Version (since = "0.9.2")]
		public static HarfBuzz.Set create ();
		[Version (since = "0.9.2")]
		public void del (HarfBuzz.Codepoint codepoint);
		[Version (since = "0.9.7")]
		public void del_range (HarfBuzz.Codepoint first, HarfBuzz.Codepoint last);
		[Version (since = "0.9.2")]
		public static HarfBuzz.Set get_empty ();
		[Version (since = "0.9.7")]
		public HarfBuzz.Codepoint get_max ();
		[Version (since = "0.9.7")]
		public HarfBuzz.Codepoint get_min ();
		[Version (since = "0.9.7")]
		public uint get_population ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool has (HarfBuzz.Codepoint codepoint);
		[Version (since = "0.9.2")]
		public void intersect (HarfBuzz.Set other);
		[Version (deprecated = true, deprecated_since = "1.6.1", since = "0.9.10")]
		public void invert ();
		[Version (since = "0.9.7")]
		public HarfBuzz.Bool is_empty ();
		[Version (since = "0.9.7")]
		public HarfBuzz.Bool is_equal (HarfBuzz.Set other);
		[Version (since = "1.8.1")]
		public HarfBuzz.Bool is_subset (HarfBuzz.Set larger_set);
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool next (ref HarfBuzz.Codepoint codepoint);
		[Version (since = "0.9.7")]
		public HarfBuzz.Bool next_range (out HarfBuzz.Codepoint first, ref HarfBuzz.Codepoint last);
		[Version (since = "1.8.0")]
		public HarfBuzz.Bool previous (ref HarfBuzz.Codepoint codepoint);
		[Version (since = "1.8.0")]
		public HarfBuzz.Bool previous_range (ref HarfBuzz.Codepoint first, out HarfBuzz.Codepoint last);
		[Version (since = "0.9.2")]
		public void @set (HarfBuzz.Set other);
		[Version (since = "0.9.2")]
		public void subtract (HarfBuzz.Set other);
		[Version (since = "0.9.2")]
		public void symmetric_difference (HarfBuzz.Set other);
		[Version (since = "0.9.2")]
		public void union (HarfBuzz.Set other);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_shape_plan_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_shape_plan_get_type ()")]
	[Compact]
	[GIR (name = "shape_plan_t")]
	public class ShapePlan {
		[Version (since = "0.9.7")]
		public static HarfBuzz.ShapePlan create (HarfBuzz.Face face, HarfBuzz.SegmentProperties props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, array_length_type = "guint")] HarfBuzz.Feature[] user_features, [CCode (array_length = false, array_null_terminated = true)] string[] shaper_list);
		[Version (since = "1.4.0")]
		public static HarfBuzz.ShapePlan create2 (HarfBuzz.Face face, HarfBuzz.SegmentProperties props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, array_length_type = "guint")] HarfBuzz.Feature[] user_features, [CCode (array_length_cname = "num_coords", array_length_pos = 4.5, array_length_type = "guint")] int[] coords, [CCode (array_length = false, array_null_terminated = true)] string[] shaper_list);
		[Version (since = "0.9.7")]
		public static HarfBuzz.ShapePlan create_cached (HarfBuzz.Face face, HarfBuzz.SegmentProperties props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, array_length_type = "guint")] HarfBuzz.Feature[] user_features, [CCode (array_length = false, array_null_terminated = true)] string[] shaper_list);
		[Version (since = "1.4.0")]
		public static HarfBuzz.ShapePlan create_cached2 (HarfBuzz.Face face, HarfBuzz.SegmentProperties props, [CCode (array_length_cname = "num_user_features", array_length_pos = 3.5, array_length_type = "guint")] HarfBuzz.Feature[] user_features, [CCode (array_length_cname = "num_coords", array_length_pos = 4.5, array_length_type = "guint")] int[] coords, [CCode (array_length = false, array_null_terminated = true)] string[] shaper_list);
		[Version (since = "0.9.7")]
		public HarfBuzz.Bool execute (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode (array_length_cname = "num_features", array_length_pos = 3.1, array_length_type = "guint")] HarfBuzz.Feature[] features);
		[Version (since = "0.9.7")]
		public static HarfBuzz.ShapePlan get_empty ();
		[Version (since = "0.9.7")]
		public unowned string get_shaper ();
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_funcs_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "hb_gobject_unicode_funcs_get_type ()")]
	[Compact]
	[GIR (name = "unicode_funcs_t")]
	public class UnicodeFuncs {
		[CCode (cname = "hb_unicode_combining_class")]
		[Version (since = "0.9.2")]
		public HarfBuzz.UnicodeCombiningClass combining_class (HarfBuzz.Codepoint unicode);
		[CCode (cname = "hb_unicode_compose")]
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool compose (HarfBuzz.Codepoint a, HarfBuzz.Codepoint b, out HarfBuzz.Codepoint ab);
		[Version (since = "0.9.2")]
		public static HarfBuzz.UnicodeFuncs create (HarfBuzz.UnicodeFuncs? parent);
		[CCode (cname = "hb_unicode_decompose")]
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool decompose (HarfBuzz.Codepoint ab, out HarfBuzz.Codepoint a, out HarfBuzz.Codepoint b);
		[CCode (cname = "hb_unicode_decompose_compatibility")]
		[Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
		public uint decompose_compatibility (HarfBuzz.Codepoint u, out HarfBuzz.Codepoint decomposed);
		[CCode (cname = "hb_unicode_eastasian_width")]
		[Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
		public uint eastasian_width (HarfBuzz.Codepoint unicode);
		[CCode (cname = "hb_unicode_general_category")]
		[Version (since = "0.9.2")]
		public HarfBuzz.UnicodeGeneralCategory general_category (HarfBuzz.Codepoint unicode);
		[Version (since = "0.9.2")]
		public static unowned HarfBuzz.UnicodeFuncs get_default ();
		[Version (since = "0.9.2")]
		public static HarfBuzz.UnicodeFuncs get_empty ();
		[Version (since = "0.9.2")]
		public HarfBuzz.UnicodeFuncs get_parent ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Bool is_immutable ();
		[Version (since = "0.9.2")]
		public void make_immutable ();
		[CCode (cname = "hb_unicode_mirroring")]
		[Version (since = "0.9.2")]
		public HarfBuzz.Codepoint mirroring (HarfBuzz.Codepoint unicode);
		[CCode (cname = "hb_unicode_script")]
		[Version (since = "0.9.2")]
		public HarfBuzz.Script script (HarfBuzz.Codepoint unicode);
		[Version (since = "0.9.2")]
		public void set_combining_class_func (owned HarfBuzz.UnicodeCombiningClassFunc func);
		[Version (since = "0.9.2")]
		public void set_compose_func (owned HarfBuzz.UnicodeComposeFunc func);
		[Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
		public void set_decompose_compatibility_func (owned HarfBuzz.UnicodedeComposeCompatibilityFunc func);
		[Version (since = "0.9.2")]
		public void set_decompose_func (owned HarfBuzz.UnicodeDecomposeFunc func);
		[Version (deprecated = true, deprecated_since = "2.0.0", since = "0.9.2")]
		public void set_eastasian_width_func (owned HarfBuzz.UnicodeEastasianWidthFunc func);
		[Version (since = "0.9.2")]
		public void set_general_category_func (owned HarfBuzz.UnicodeGeneralCategoryFunc func);
		[Version (since = "0.9.2")]
		public void set_mirroring_func (owned HarfBuzz.UnicodeMirroringFunc func);
		[Version (since = "0.9.2")]
		public void set_script_func (owned HarfBuzz.UnicodeScriptFunc func);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_user_data_key_t", copy_function = "g_boxed_copy", free_function = "g_boxed_free", lower_case_cprefix = "hb_gobject_user_data_key_", type_id = "hb_gobject_user_data_key_get_type ()")]
	[Compact]
	[GIR (name = "user_data_key_t")]
	public class UserDataKey {
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_bool_t")]
	[GIR (name = "bool_t")]
	[SimpleType]
	public struct Bool : int {
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_codepoint_t")]
	[GIR (name = "codepoint_t")]
	[SimpleType]
	public struct Codepoint : uint32 {
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_color_t")]
	[GIR (name = "color_t")]
	[SimpleType]
	public struct Color : uint32 {
		[Version (since = "2.1.0")]
		public uint8 get_alpha ();
		[Version (since = "2.1.0")]
		public uint8 get_blue ();
		[Version (since = "2.1.0")]
		public uint8 get_green ();
		[Version (since = "2.1.0")]
		public uint8 get_red ();
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_extents_t", has_type_id = false)]
	[GIR (name = "font_extents_t")]
	public struct FontExtents {
		public HarfBuzz.Position ascender;
		public HarfBuzz.Position descender;
		public HarfBuzz.Position line_gap;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_glyph_extents_t", has_type_id = false)]
	[GIR (name = "glyph_extents_t")]
	public struct GlyphExtents {
		public HarfBuzz.Position x_bearing;
		public HarfBuzz.Position y_bearing;
		public HarfBuzz.Position width;
		public HarfBuzz.Position height;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_mask_t")]
	[GIR (name = "mask_t")]
	[SimpleType]
	public struct Mask : uint32 {
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_color_layer_t", has_type_id = false)]
	[GIR (name = "ot_color_layer_t")]
	[Version (since = "2.1.0")]
	public struct OtColorLayer {
		public HarfBuzz.Codepoint glyph;
		public uint color_index;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_name_entry_t", has_type_id = false)]
	[GIR (name = "ot_name_entry_t")]
	[Version (since = "2.1.0")]
	public struct OtNameEntry {
		public HarfBuzz.OtNameId name_id;
		public weak HarfBuzz.Language language;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_name_id_t")]
	[GIR (name = "ot_name_id_t")]
	[SimpleType]
	public struct OtNameId : uint {
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_var_axis_t", has_type_id = false)]
	[GIR (name = "ot_var_axis_t")]
	[Version (deprecated = true, deprecated_since = "2.2.0", since = "1.4.2")]
	public struct OtVarAxis {
		public HarfBuzz.Tag tag;
		public HarfBuzz.OtNameId name_id;
		public float min_value;
		public float default_value;
		public float max_value;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_var_axis_info_t", has_type_id = false)]
	[GIR (name = "ot_var_axis_info_t")]
	[Version (since = "2.2.0")]
	public struct OtVarAxisInfo {
		public uint axis_index;
		public HarfBuzz.Tag tag;
		public HarfBuzz.OtNameId name_id;
		public HarfBuzz.OtVarAxisFlags flags;
		public float min_value;
		public float default_value;
		public float max_value;
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_position_t")]
	[GIR (name = "position_t")]
	[SimpleType]
	public struct Position : int32 {
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_tag_t")]
	[GIR (name = "tag_t")]
	[SimpleType]
	public struct Tag : uint32 {
		[Version (since = "0.9.2")]
		public static HarfBuzz.Tag from_string ([CCode (array_length_cname = "len", array_length_pos = 1.1)] uint8[] str);
		[Version (since = "0.9.5")]
		public void to_string ([CCode (array_length = false)] out unowned uint8 buf[4]);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_variation_t", has_type_id = false)]
	[GIR (name = "variation_t")]
	[Version (since = "1.4.2")]
	public struct Variation {
		public HarfBuzz.Tag tag;
		public float value;
		[CCode (cname = "hb_variation_to_string")]
		[Version (replacement = "variation_to_string", since = "1.4.2")]
		public void _string ([CCode (array_length_cname = "size", array_length_pos = 1.1, array_length_type = "guint")] char[] buf);
		public static HarfBuzz.Bool from_string ([CCode (array_length_cname = "len", array_length_pos = 1.5)] uint8[] str, out HarfBuzz.Variation variation);
		public void to_string ([CCode (array_length_cname = "size", array_length_pos = 1.1, array_length_type = "guint")] char[] buf);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_var_int_t")]
	[GIR (name = "var_int_t")]
	public struct var_int_t {
		public uint32 u32;
		public int32 i32;
		[CCode (array_length = false)]
		public weak uint16 u16[2];
		[CCode (array_length = false)]
		public weak int16 i16[2];
		[CCode (array_length = false)]
		public weak uint8 u8[4];
		[CCode (array_length = false)]
		public weak int8 i8[4];
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_aat_layout_feature_selector_t", cprefix = "HB_AAT_LAYOUT_FEATURE_SELECTOR_", type_id = "hb_gobject_aat_layout_feature_selector_get_type ()")]
	[GIR (name = "aat_layout_feature_selector_t")]
	[Version (since = "2.2.0")]
	public enum AatLayoutFeatureSelector {
		INVALID,
		ALL_TYPE_FEATURES_ON,
		ALL_TYPE_FEATURES_OFF,
		REQUIRED_LIGATURES_ON,
		REQUIRED_LIGATURES_OFF,
		COMMON_LIGATURES_ON,
		COMMON_LIGATURES_OFF,
		RARE_LIGATURES_ON,
		RARE_LIGATURES_OFF,
		LOGOS_ON,
		LOGOS_OFF,
		REBUS_PICTURES_ON,
		REBUS_PICTURES_OFF,
		DIPHTHONG_LIGATURES_ON,
		DIPHTHONG_LIGATURES_OFF,
		SQUARED_LIGATURES_ON,
		SQUARED_LIGATURES_OFF,
		ABBREV_SQUARED_LIGATURES_ON,
		ABBREV_SQUARED_LIGATURES_OFF,
		SYMBOL_LIGATURES_ON,
		SYMBOL_LIGATURES_OFF,
		CONTEXTUAL_LIGATURES_ON,
		CONTEXTUAL_LIGATURES_OFF,
		HISTORICAL_LIGATURES_ON,
		HISTORICAL_LIGATURES_OFF,
		UNCONNECTED,
		PARTIALLY_CONNECTED,
		CURSIVE,
		UPPER_AND_LOWER_CASE,
		ALL_CAPS,
		ALL_LOWER_CASE,
		SMALL_CAPS,
		INITIAL_CAPS,
		INITIAL_CAPS_AND_SMALL_CAPS,
		SUBSTITUTE_VERTICAL_FORMS_ON,
		SUBSTITUTE_VERTICAL_FORMS_OFF,
		LINGUISTIC_REARRANGEMENT_ON,
		LINGUISTIC_REARRANGEMENT_OFF,
		MONOSPACED_NUMBERS,
		PROPORTIONAL_NUMBERS,
		THIRD_WIDTH_NUMBERS,
		QUARTER_WIDTH_NUMBERS,
		WORD_INITIAL_SWASHES_ON,
		WORD_INITIAL_SWASHES_OFF,
		WORD_FINAL_SWASHES_ON,
		WORD_FINAL_SWASHES_OFF,
		LINE_INITIAL_SWASHES_ON,
		LINE_INITIAL_SWASHES_OFF,
		LINE_FINAL_SWASHES_ON,
		LINE_FINAL_SWASHES_OFF,
		NON_FINAL_SWASHES_ON,
		NON_FINAL_SWASHES_OFF,
		SHOW_DIACRITICS,
		HIDE_DIACRITICS,
		DECOMPOSE_DIACRITICS,
		NORMAL_POSITION,
		SUPERIORS,
		INFERIORS,
		ORDINALS,
		SCIENTIFIC_INFERIORS,
		NO_FRACTIONS,
		VERTICAL_FRACTIONS,
		DIAGONAL_FRACTIONS,
		PREVENT_OVERLAP_ON,
		PREVENT_OVERLAP_OFF,
		HYPHENS_TO_EM_DASH_ON,
		HYPHENS_TO_EM_DASH_OFF,
		HYPHEN_TO_EN_DASH_ON,
		HYPHEN_TO_EN_DASH_OFF,
		SLASHED_ZERO_ON,
		SLASHED_ZERO_OFF,
		FORM_INTERROBANG_ON,
		FORM_INTERROBANG_OFF,
		SMART_QUOTES_ON,
		SMART_QUOTES_OFF,
		PERIODS_TO_ELLIPSIS_ON,
		PERIODS_TO_ELLIPSIS_OFF,
		HYPHEN_TO_MINUS_ON,
		HYPHEN_TO_MINUS_OFF,
		ASTERISK_TO_MULTIPLY_ON,
		ASTERISK_TO_MULTIPLY_OFF,
		SLASH_TO_DIVIDE_ON,
		SLASH_TO_DIVIDE_OFF,
		INEQUALITY_LIGATURES_ON,
		INEQUALITY_LIGATURES_OFF,
		EXPONENTS_ON,
		EXPONENTS_OFF,
		MATHEMATICAL_GREEK_ON,
		MATHEMATICAL_GREEK_OFF,
		NO_ORNAMENTS,
		DINGBATS,
		PI_CHARACTERS,
		FLEURONS,
		DECORATIVE_BORDERS,
		INTERNATIONAL_SYMBOLS,
		MATH_SYMBOLS,
		NO_ALTERNATES,
		DESIGN_LEVEL1,
		DESIGN_LEVEL2,
		DESIGN_LEVEL3,
		DESIGN_LEVEL4,
		DESIGN_LEVEL5,
		NO_STYLE_OPTIONS,
		DISPLAY_TEXT,
		ENGRAVED_TEXT,
		ILLUMINATED_CAPS,
		TITLING_CAPS,
		TALL_CAPS,
		TRADITIONAL_CHARACTERS,
		SIMPLIFIED_CHARACTERS,
		JIS1978_CHARACTERS,
		JIS1983_CHARACTERS,
		JIS1990_CHARACTERS,
		TRADITIONAL_ALT_ONE,
		TRADITIONAL_ALT_TWO,
		TRADITIONAL_ALT_THREE,
		TRADITIONAL_ALT_FOUR,
		TRADITIONAL_ALT_FIVE,
		EXPERT_CHARACTERS,
		JIS2004_CHARACTERS,
		HOJO_CHARACTERS,
		NLCCHARACTERS,
		TRADITIONAL_NAMES_CHARACTERS,
		LOWER_CASE_NUMBERS,
		UPPER_CASE_NUMBERS,
		PROPORTIONAL_TEXT,
		MONOSPACED_TEXT,
		HALF_WIDTH_TEXT,
		THIRD_WIDTH_TEXT,
		QUARTER_WIDTH_TEXT,
		ALT_PROPORTIONAL_TEXT,
		ALT_HALF_WIDTH_TEXT,
		NO_TRANSLITERATION,
		HANJA_TO_HANGUL,
		HIRAGANA_TO_KATAKANA,
		KATAKANA_TO_HIRAGANA,
		KANA_TO_ROMANIZATION,
		ROMANIZATION_TO_HIRAGANA,
		ROMANIZATION_TO_KATAKANA,
		HANJA_TO_HANGUL_ALT_ONE,
		HANJA_TO_HANGUL_ALT_TWO,
		HANJA_TO_HANGUL_ALT_THREE,
		NO_ANNOTATION,
		BOX_ANNOTATION,
		ROUNDED_BOX_ANNOTATION,
		CIRCLE_ANNOTATION,
		INVERTED_CIRCLE_ANNOTATION,
		PARENTHESIS_ANNOTATION,
		PERIOD_ANNOTATION,
		ROMAN_NUMERAL_ANNOTATION,
		DIAMOND_ANNOTATION,
		INVERTED_BOX_ANNOTATION,
		INVERTED_ROUNDED_BOX_ANNOTATION,
		FULL_WIDTH_KANA,
		PROPORTIONAL_KANA,
		FULL_WIDTH_IDEOGRAPHS,
		PROPORTIONAL_IDEOGRAPHS,
		HALF_WIDTH_IDEOGRAPHS,
		CANONICAL_COMPOSITION_ON,
		CANONICAL_COMPOSITION_OFF,
		COMPATIBILITY_COMPOSITION_ON,
		COMPATIBILITY_COMPOSITION_OFF,
		TRANSCODING_COMPOSITION_ON,
		TRANSCODING_COMPOSITION_OFF,
		NO_RUBY_KANA,
		RUBY_KANA,
		RUBY_KANA_ON,
		RUBY_KANA_OFF,
		NO_CJK_SYMBOL_ALTERNATIVES,
		CJK_SYMBOL_ALT_ONE,
		CJK_SYMBOL_ALT_TWO,
		CJK_SYMBOL_ALT_THREE,
		CJK_SYMBOL_ALT_FOUR,
		CJK_SYMBOL_ALT_FIVE,
		NO_IDEOGRAPHIC_ALTERNATIVES,
		IDEOGRAPHIC_ALT_ONE,
		IDEOGRAPHIC_ALT_TWO,
		IDEOGRAPHIC_ALT_THREE,
		IDEOGRAPHIC_ALT_FOUR,
		IDEOGRAPHIC_ALT_FIVE,
		CJK_VERTICAL_ROMAN_CENTERED,
		CJK_VERTICAL_ROMAN_HBASELINE,
		NO_CJK_ITALIC_ROMAN,
		CJK_ITALIC_ROMAN,
		CJK_ITALIC_ROMAN_ON,
		CJK_ITALIC_ROMAN_OFF,
		CASE_SENSITIVE_LAYOUT_ON,
		CASE_SENSITIVE_LAYOUT_OFF,
		CASE_SENSITIVE_SPACING_ON,
		CASE_SENSITIVE_SPACING_OFF,
		ALTERNATE_HORIZ_KANA_ON,
		ALTERNATE_HORIZ_KANA_OFF,
		ALTERNATE_VERT_KANA_ON,
		ALTERNATE_VERT_KANA_OFF,
		NO_STYLISTIC_ALTERNATES,
		STYLISTIC_ALT_ONE_ON,
		STYLISTIC_ALT_ONE_OFF,
		STYLISTIC_ALT_TWO_ON,
		STYLISTIC_ALT_TWO_OFF,
		STYLISTIC_ALT_THREE_ON,
		STYLISTIC_ALT_THREE_OFF,
		STYLISTIC_ALT_FOUR_ON,
		STYLISTIC_ALT_FOUR_OFF,
		STYLISTIC_ALT_FIVE_ON,
		STYLISTIC_ALT_FIVE_OFF,
		STYLISTIC_ALT_SIX_ON,
		STYLISTIC_ALT_SIX_OFF,
		STYLISTIC_ALT_SEVEN_ON,
		STYLISTIC_ALT_SEVEN_OFF,
		STYLISTIC_ALT_EIGHT_ON,
		STYLISTIC_ALT_EIGHT_OFF,
		STYLISTIC_ALT_NINE_ON,
		STYLISTIC_ALT_NINE_OFF,
		STYLISTIC_ALT_TEN_ON,
		STYLISTIC_ALT_TEN_OFF,
		STYLISTIC_ALT_ELEVEN_ON,
		STYLISTIC_ALT_ELEVEN_OFF,
		STYLISTIC_ALT_TWELVE_ON,
		STYLISTIC_ALT_TWELVE_OFF,
		STYLISTIC_ALT_THIRTEEN_ON,
		STYLISTIC_ALT_THIRTEEN_OFF,
		STYLISTIC_ALT_FOURTEEN_ON,
		STYLISTIC_ALT_FOURTEEN_OFF,
		STYLISTIC_ALT_FIFTEEN_ON,
		STYLISTIC_ALT_FIFTEEN_OFF,
		STYLISTIC_ALT_SIXTEEN_ON,
		STYLISTIC_ALT_SIXTEEN_OFF,
		STYLISTIC_ALT_SEVENTEEN_ON,
		STYLISTIC_ALT_SEVENTEEN_OFF,
		STYLISTIC_ALT_EIGHTEEN_ON,
		STYLISTIC_ALT_EIGHTEEN_OFF,
		STYLISTIC_ALT_NINETEEN_ON,
		STYLISTIC_ALT_NINETEEN_OFF,
		STYLISTIC_ALT_TWENTY_ON,
		STYLISTIC_ALT_TWENTY_OFF,
		CONTEXTUAL_ALTERNATES_ON,
		CONTEXTUAL_ALTERNATES_OFF,
		SWASH_ALTERNATES_ON,
		SWASH_ALTERNATES_OFF,
		CONTEXTUAL_SWASH_ALTERNATES_ON,
		CONTEXTUAL_SWASH_ALTERNATES_OFF,
		DEFAULT_LOWER_CASE,
		LOWER_CASE_SMALL_CAPS,
		LOWER_CASE_PETITE_CAPS,
		DEFAULT_UPPER_CASE,
		UPPER_CASE_SMALL_CAPS,
		UPPER_CASE_PETITE_CAPS,
		HALF_WIDTH_CJK_ROMAN,
		PROPORTIONAL_CJK_ROMAN,
		DEFAULT_CJK_ROMAN,
		FULL_WIDTH_CJK_ROMAN
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_aat_layout_feature_type_t", cprefix = "HB_AAT_LAYOUT_FEATURE_TYPE_", type_id = "hb_gobject_aat_layout_feature_type_get_type ()")]
	[GIR (name = "aat_layout_feature_type_t")]
	[Version (since = "2.2.0")]
	public enum AatLayoutFeatureType {
		INVALID,
		ALL_TYPOGRAPHIC,
		LIGATURES,
		CURISVE_CONNECTION,
		LETTER_CASE,
		VERTICAL_SUBSTITUTION,
		LINGUISTIC_REARRANGEMENT,
		NUMBER_SPACING,
		SMART_SWASH_TYPE,
		DIACRITICS_TYPE,
		VERTICAL_POSITION,
		FRACTIONS,
		OVERLAPPING_CHARACTERS_TYPE,
		TYPOGRAPHIC_EXTRAS,
		MATHEMATICAL_EXTRAS,
		ORNAMENT_SETS_TYPE,
		CHARACTER_ALTERNATIVES,
		DESIGN_COMPLEXITY_TYPE,
		STYLE_OPTIONS,
		CHARACTER_SHAPE,
		NUMBER_CASE,
		TEXT_SPACING,
		TRANSLITERATION,
		ANNOTATION_TYPE,
		KANA_SPACING_TYPE,
		IDEOGRAPHIC_SPACING_TYPE,
		UNICODE_DECOMPOSITION_TYPE,
		RUBY_KANA,
		CJK_SYMBOL_ALTERNATIVES_TYPE,
		IDEOGRAPHIC_ALTERNATIVES_TYPE,
		CJK_VERTICAL_ROMAN_PLACEMENT_TYPE,
		ITALIC_CJK_ROMAN,
		CASE_SENSITIVE_LAYOUT,
		ALTERNATE_KANA,
		STYLISTIC_ALTERNATIVES,
		CONTEXTUAL_ALTERNATIVES,
		LOWER_CASE,
		UPPER_CASE,
		LANGUAGE_TAG_TYPE,
		CJK_ROMAN_SPACING_TYPE
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_cluster_level_t", cprefix = "HB_BUFFER_CLUSTER_LEVEL_", type_id = "hb_gobject_buffer_cluster_level_get_type ()")]
	[GIR (name = "buffer_cluster_level_t")]
	[Version (since = "0.9.42")]
	public enum BufferClusterLevel {
		MONOTONE_GRAPHEMES,
		MONOTONE_CHARACTERS,
		CHARACTERS,
		DEFAULT
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_content_type_t", cprefix = "HB_BUFFER_CONTENT_TYPE_", type_id = "hb_gobject_buffer_content_type_get_type ()")]
	[GIR (name = "buffer_content_type_t")]
	public enum BufferContentType {
		INVALID,
		UNICODE,
		GLYPHS
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_diff_flags_t", cprefix = "HB_BUFFER_DIFF_FLAG_", type_id = "hb_gobject_buffer_diff_flags_get_type ()")]
	[Flags]
	[GIR (name = "buffer_diff_flags_t")]
	public enum BufferDiffFlags {
		EQUAL,
		CONTENT_TYPE_MISMATCH,
		LENGTH_MISMATCH,
		NOTDEF_PRESENT,
		DOTTED_CIRCLE_PRESENT,
		CODEPOINT_MISMATCH,
		CLUSTER_MISMATCH,
		GLYPH_FLAGS_MISMATCH,
		POSITION_MISMATCH
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_flags_t", cprefix = "HB_BUFFER_FLAG_", type_id = "hb_gobject_buffer_flags_get_type ()")]
	[Flags]
	[GIR (name = "buffer_flags_t")]
	[Version (since = "0.9.20")]
	public enum BufferFlags {
		DEFAULT,
		BOT,
		EOT,
		PRESERVE_DEFAULT_IGNORABLES,
		REMOVE_DEFAULT_IGNORABLES,
		DO_NOT_INSERT_DOTTED_CIRCLE
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_serialize_flags_t", cprefix = "HB_BUFFER_SERIALIZE_FLAG_", type_id = "hb_gobject_buffer_serialize_flags_get_type ()")]
	[Flags]
	[GIR (name = "buffer_serialize_flags_t")]
	[Version (since = "0.9.20")]
	public enum BufferSerializeFlags {
		DEFAULT,
		NO_CLUSTERS,
		NO_POSITIONS,
		NO_GLYPH_NAMES,
		GLYPH_EXTENTS,
		GLYPH_FLAGS,
		NO_ADVANCES
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_serialize_format_t", cprefix = "HB_BUFFER_SERIALIZE_FORMAT_", type_id = "hb_gobject_buffer_serialize_format_get_type ()")]
	[GIR (name = "buffer_serialize_format_t")]
	[Version (since = "0.9.2")]
	public enum BufferSerializeFormat {
		TEXT,
		JSON,
		INVALID
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_direction_t", cprefix = "HB_DIRECTION_", type_id = "hb_gobject_direction_get_type ()")]
	[GIR (name = "direction_t")]
	public enum Direction {
		INVALID,
		LTR,
		RTL,
		TTB,
		BTT;
		[Version (since = "0.9.2")]
		public static HarfBuzz.Direction from_string ([CCode (array_length_cname = "len", array_length_pos = 1.1)] uint8[] str);
		[Version (since = "0.9.2")]
		public unowned string to_string ();
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_glyph_flags_t", cprefix = "HB_GLYPH_FLAG_", type_id = "hb_gobject_glyph_flags_get_type ()")]
	[Flags]
	[GIR (name = "glyph_flags_t")]
	[Version (since = "1.5.0")]
	public enum GlyphFlags {
		UNSAFE_TO_BREAK,
		DEFINED
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_memory_mode_t", cprefix = "HB_MEMORY_MODE_", type_id = "hb_gobject_memory_mode_get_type ()")]
	[GIR (name = "memory_mode_t")]
	public enum MemoryMode {
		DUPLICATE,
		READONLY,
		WRITABLE,
		READONLY_MAY_MAKE_WRITABLE
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_color_palette_flags_t", cprefix = "HB_OT_COLOR_PALETTE_FLAG_", type_id = "hb_gobject_ot_color_palette_flags_get_type ()")]
	[Flags]
	[GIR (name = "ot_color_palette_flags_t")]
	[Version (since = "2.1.0")]
	public enum OtColorPalette {
		DEFAULT,
		USABLE_WITH_LIGHT_BACKGROUND,
		USABLE_WITH_DARK_BACKGROUND;
		public static HarfBuzz.OtNameId color_get_name_id (HarfBuzz.Face face, uint color_index);
		public static uint get_colors (HarfBuzz.Face face, uint palette_index, uint start_offset, [CCode (array_length_cname = "color_count", array_length_pos = 3.5, array_length_type = "guint")] out HarfBuzz.Color[]? colors);
		public static uint get_count (HarfBuzz.Face face);
		public static HarfBuzz.OtColorPalette get_flags (HarfBuzz.Face face, uint palette_index);
		public static HarfBuzz.OtNameId get_name_id (HarfBuzz.Face face, uint palette_index);
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_layout_baseline_tag_t", cprefix = "HB_OT_LAYOUT_BASELINE_TAG_", type_id = "hb_gobject_ot_layout_baseline_tag_get_type ()")]
	[GIR (name = "ot_layout_baseline_tag_t")]
	[Version (since = "2.6.0")]
	public enum OtLayoutBaselineTag {
		ROMAN,
		HANGING,
		IDEO_FACE_BOTTOM_OR_LEFT,
		IDEO_FACE_TOP_OR_RIGHT,
		IDEO_EMBOX_BOTTOM_OR_LEFT,
		IDEO_EMBOX_TOP_OR_RIGHT,
		MATH
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_layout_glyph_class_t", cprefix = "HB_OT_LAYOUT_GLYPH_CLASS_", type_id = "hb_gobject_ot_layout_glyph_class_get_type ()")]
	[GIR (name = "ot_layout_glyph_class_t")]
	public enum OtLayoutGlyphClass {
		UNCLASSIFIED,
		BASE_GLYPH,
		LIGATURE,
		MARK,
		COMPONENT
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_constant_t", cprefix = "HB_OT_MATH_CONSTANT_", type_id = "hb_gobject_ot_math_constant_get_type ()")]
	[GIR (name = "ot_math_constant_t")]
	[Version (since = "1.3.3")]
	public enum OtMathContant {
		SCRIPT_PERCENT_SCALE_DOWN,
		SCRIPT_SCRIPT_PERCENT_SCALE_DOWN,
		DELIMITED_SUB_FORMULA_MIN_HEIGHT,
		DISPLAY_OPERATOR_MIN_HEIGHT,
		MATH_LEADING,
		AXIS_HEIGHT,
		ACCENT_BASE_HEIGHT,
		FLATTENED_ACCENT_BASE_HEIGHT,
		SUBSCRIPT_SHIFT_DOWN,
		SUBSCRIPT_TOP_MAX,
		SUBSCRIPT_BASELINE_DROP_MIN,
		SUPERSCRIPT_SHIFT_UP,
		SUPERSCRIPT_SHIFT_UP_CRAMPED,
		SUPERSCRIPT_BOTTOM_MIN,
		SUPERSCRIPT_BASELINE_DROP_MAX,
		SUB_SUPERSCRIPT_GAP_MIN,
		SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT,
		SPACE_AFTER_SCRIPT,
		UPPER_LIMIT_GAP_MIN,
		UPPER_LIMIT_BASELINE_RISE_MIN,
		LOWER_LIMIT_GAP_MIN,
		LOWER_LIMIT_BASELINE_DROP_MIN,
		STACK_TOP_SHIFT_UP,
		STACK_TOP_DISPLAY_STYLE_SHIFT_UP,
		STACK_BOTTOM_SHIFT_DOWN,
		STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN,
		STACK_GAP_MIN,
		STACK_DISPLAY_STYLE_GAP_MIN,
		STRETCH_STACK_TOP_SHIFT_UP,
		STRETCH_STACK_BOTTOM_SHIFT_DOWN,
		STRETCH_STACK_GAP_ABOVE_MIN,
		STRETCH_STACK_GAP_BELOW_MIN,
		FRACTION_NUMERATOR_SHIFT_UP,
		FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP,
		FRACTION_DENOMINATOR_SHIFT_DOWN,
		FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN,
		FRACTION_NUMERATOR_GAP_MIN,
		FRACTION_NUM_DISPLAY_STYLE_GAP_MIN,
		FRACTION_RULE_THICKNESS,
		FRACTION_DENOMINATOR_GAP_MIN,
		FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN,
		SKEWED_FRACTION_HORIZONTAL_GAP,
		SKEWED_FRACTION_VERTICAL_GAP,
		OVERBAR_VERTICAL_GAP,
		OVERBAR_RULE_THICKNESS,
		OVERBAR_EXTRA_ASCENDER,
		UNDERBAR_VERTICAL_GAP,
		UNDERBAR_RULE_THICKNESS,
		UNDERBAR_EXTRA_DESCENDER,
		RADICAL_VERTICAL_GAP,
		RADICAL_DISPLAY_STYLE_VERTICAL_GAP,
		RADICAL_RULE_THICKNESS,
		RADICAL_EXTRA_ASCENDER,
		RADICAL_KERN_BEFORE_DEGREE,
		RADICAL_KERN_AFTER_DEGREE,
		RADICAL_DEGREE_BOTTOM_RAISE_PERCENT
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_glyph_part_flags_t", cprefix = "HB_OT_MATH_GLYPH_PART_FLAG_", type_id = "hb_gobject_ot_math_glyph_part_flags_get_type ()")]
	[Flags]
	[GIR (name = "ot_math_glyph_part_flags_t")]
	[Version (since = "1.3.3")]
	public enum OtMathGlyphPartFlags {
		EXTENDER
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_math_kern_t", cprefix = "HB_OT_MATH_KERN_", type_id = "hb_gobject_ot_math_kern_get_type ()")]
	[GIR (name = "ot_math_kern_t")]
	[Version (since = "1.3.3")]
	public enum OtMathKern {
		TOP_RIGHT,
		TOP_LEFT,
		BOTTOM_RIGHT,
		BOTTOM_LEFT
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_meta_tag_t", cprefix = "HB_OT_META_TAG_", type_id = "hb_gobject_ot_meta_tag_get_type ()")]
	[GIR (name = "ot_meta_tag_t")]
	[Version (since = "2.6.0")]
	public enum OtMetaTag {
		DESIGN_LANGUAGES,
		SUPPORTED_LANGUAGES
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_metrics_tag_t", cprefix = "HB_OT_METRICS_TAG_", type_id = "hb_gobject_ot_metrics_tag_get_type ()")]
	[GIR (name = "ot_metrics_tag_t")]
	[Version (since = "2.6.0")]
	public enum OtMetricsTag {
		HORIZONTAL_ASCENDER,
		HORIZONTAL_DESCENDER,
		HORIZONTAL_LINE_GAP,
		HORIZONTAL_CLIPPING_ASCENT,
		HORIZONTAL_CLIPPING_DESCENT,
		VERTICAL_ASCENDER,
		VERTICAL_DESCENDER,
		VERTICAL_LINE_GAP,
		HORIZONTAL_CARET_RISE,
		HORIZONTAL_CARET_RUN,
		HORIZONTAL_CARET_OFFSET,
		VERTICAL_CARET_RISE,
		VERTICAL_CARET_RUN,
		VERTICAL_CARET_OFFSET,
		X_HEIGHT,
		CAP_HEIGHT,
		SUBSCRIPT_EM_X_SIZE,
		SUBSCRIPT_EM_Y_SIZE,
		SUBSCRIPT_EM_X_OFFSET,
		SUBSCRIPT_EM_Y_OFFSET,
		SUPERSCRIPT_EM_X_SIZE,
		SUPERSCRIPT_EM_Y_SIZE,
		SUPERSCRIPT_EM_X_OFFSET,
		SUPERSCRIPT_EM_Y_OFFSET,
		STRIKEOUT_SIZE,
		STRIKEOUT_OFFSET,
		UNDERLINE_SIZE,
		UNDERLINE_OFFSET
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_ot_var_axis_flags_t", cprefix = "HB_OT_VAR_AXIS_FLAG_", type_id = "hb_gobject_ot_var_axis_flags_get_type ()")]
	[Flags]
	[GIR (name = "ot_var_axis_flags_t")]
	[Version (since = "2.2.0")]
	public enum OtVarAxisFlags {
		HIDDEN
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_script_t", cprefix = "HB_SCRIPT_", type_id = "hb_gobject_script_get_type ()")]
	[GIR (name = "script_t")]
	public enum Script {
		COMMON,
		INHERITED,
		UNKNOWN,
		ARABIC,
		ARMENIAN,
		BENGALI,
		CYRILLIC,
		DEVANAGARI,
		GEORGIAN,
		GREEK,
		GUJARATI,
		GURMUKHI,
		HANGUL,
		HAN,
		HEBREW,
		HIRAGANA,
		KANNADA,
		KATAKANA,
		LAO,
		LATIN,
		MALAYALAM,
		ORIYA,
		TAMIL,
		TELUGU,
		THAI,
		TIBETAN,
		BOPOMOFO,
		BRAILLE,
		CANADIAN_SYLLABICS,
		CHEROKEE,
		ETHIOPIC,
		KHMER,
		MONGOLIAN,
		MYANMAR,
		OGHAM,
		RUNIC,
		SINHALA,
		SYRIAC,
		THAANA,
		YI,
		DESERET,
		GOTHIC,
		OLD_ITALIC,
		BUHID,
		HANUNOO,
		TAGALOG,
		TAGBANWA,
		CYPRIOT,
		LIMBU,
		LINEAR_B,
		OSMANYA,
		SHAVIAN,
		TAI_LE,
		UGARITIC,
		BUGINESE,
		COPTIC,
		GLAGOLITIC,
		KHAROSHTHI,
		NEW_TAI_LUE,
		OLD_PERSIAN,
		SYLOTI_NAGRI,
		TIFINAGH,
		BALINESE,
		CUNEIFORM,
		NKO,
		PHAGS_PA,
		PHOENICIAN,
		CARIAN,
		CHAM,
		KAYAH_LI,
		LEPCHA,
		LYCIAN,
		LYDIAN,
		OL_CHIKI,
		REJANG,
		SAURASHTRA,
		SUNDANESE,
		VAI,
		AVESTAN,
		BAMUM,
		EGYPTIAN_HIEROGLYPHS,
		IMPERIAL_ARAMAIC,
		INSCRIPTIONAL_PAHLAVI,
		INSCRIPTIONAL_PARTHIAN,
		JAVANESE,
		KAITHI,
		LISU,
		MEETEI_MAYEK,
		OLD_SOUTH_ARABIAN,
		OLD_TURKIC,
		SAMARITAN,
		TAI_THAM,
		TAI_VIET,
		BATAK,
		BRAHMI,
		MANDAIC,
		CHAKMA,
		MEROITIC_CURSIVE,
		MEROITIC_HIEROGLYPHS,
		MIAO,
		SHARADA,
		SORA_SOMPENG,
		TAKRI,
		BASSA_VAH,
		CAUCASIAN_ALBANIAN,
		DUPLOYAN,
		ELBASAN,
		GRANTHA,
		KHOJKI,
		KHUDAWADI,
		LINEAR_A,
		MAHAJANI,
		MANICHAEAN,
		MENDE_KIKAKUI,
		MODI,
		MRO,
		NABATAEAN,
		OLD_NORTH_ARABIAN,
		OLD_PERMIC,
		PAHAWH_HMONG,
		PALMYRENE,
		PAU_CIN_HAU,
		PSALTER_PAHLAVI,
		SIDDHAM,
		TIRHUTA,
		WARANG_CITI,
		AHOM,
		ANATOLIAN_HIEROGLYPHS,
		HATRAN,
		MULTANI,
		OLD_HUNGARIAN,
		SIGNWRITING,
		ADLAM,
		BHAIKSUKI,
		MARCHEN,
		OSAGE,
		TANGUT,
		NEWA,
		MASARAM_GONDI,
		NUSHU,
		SOYOMBO,
		ZANABAZAR_SQUARE,
		DOGRA,
		GUNJALA_GONDI,
		HANIFI_ROHINGYA,
		MAKASAR,
		MEDEFAIDRIN,
		OLD_SOGDIAN,
		SOGDIAN,
		ELYMAIC,
		NANDINAGARI,
		NYIAKENG_PUACHUE_HMONG,
		WANCHO,
		CHORASMIAN,
		DIVES_AKURU,
		KHITAN_SMALL_SCRIPT,
		YEZIDI,
		INVALID;
		[Version (since = "0.9.2")]
		public static HarfBuzz.Script from_iso15924_tag (HarfBuzz.Tag tag);
		[Version (since = "0.9.2")]
		public static HarfBuzz.Script from_string ([CCode (array_length_cname = "len", array_length_pos = 1.1)] uint8[] str);
		[Version (since = "0.9.2")]
		public HarfBuzz.Direction get_horizontal_direction ();
		[Version (since = "0.9.2")]
		public HarfBuzz.Tag to_iso15924_tag ();
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_combining_class_t", cprefix = "HB_UNICODE_COMBINING_CLASS_", type_id = "hb_gobject_unicode_combining_class_get_type ()")]
	[GIR (name = "unicode_combining_class_t")]
	public enum UnicodeCombiningClass {
		NOT_REORDERED,
		OVERLAY,
		NUKTA,
		KANA_VOICING,
		VIRAMA,
		CCC10,
		CCC11,
		CCC12,
		CCC13,
		CCC14,
		CCC15,
		CCC16,
		CCC17,
		CCC18,
		CCC19,
		CCC20,
		CCC21,
		CCC22,
		CCC23,
		CCC24,
		CCC25,
		CCC26,
		CCC27,
		CCC28,
		CCC29,
		CCC30,
		CCC31,
		CCC32,
		CCC33,
		CCC34,
		CCC35,
		CCC36,
		CCC84,
		CCC91,
		CCC103,
		CCC107,
		CCC118,
		CCC122,
		CCC129,
		CCC130,
		CCC133,
		ATTACHED_BELOW_LEFT,
		ATTACHED_BELOW,
		ATTACHED_ABOVE,
		ATTACHED_ABOVE_RIGHT,
		BELOW_LEFT,
		BELOW,
		BELOW_RIGHT,
		LEFT,
		RIGHT,
		ABOVE_LEFT,
		ABOVE,
		ABOVE_RIGHT,
		DOUBLE_BELOW,
		DOUBLE_ABOVE,
		IOTA_SUBSCRIPT,
		INVALID
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_general_category_t", cprefix = "HB_UNICODE_GENERAL_CATEGORY_", type_id = "hb_gobject_unicode_general_category_get_type ()")]
	[GIR (name = "unicode_general_category_t")]
	public enum UnicodeGeneralCategory {
		CONTROL,
		FORMAT,
		UNASSIGNED,
		PRIVATE_USE,
		SURROGATE,
		LOWERCASE_LETTER,
		MODIFIER_LETTER,
		OTHER_LETTER,
		TITLECASE_LETTER,
		UPPERCASE_LETTER,
		SPACING_MARK,
		ENCLOSING_MARK,
		NON_SPACING_MARK,
		DECIMAL_NUMBER,
		LETTER_NUMBER,
		OTHER_NUMBER,
		CONNECT_PUNCTUATION,
		DASH_PUNCTUATION,
		CLOSE_PUNCTUATION,
		FINAL_PUNCTUATION,
		INITIAL_PUNCTUATION,
		OTHER_PUNCTUATION,
		OPEN_PUNCTUATION,
		CURRENCY_SYMBOL,
		MODIFIER_SYMBOL,
		MATH_SYMBOL,
		OTHER_SYMBOL,
		LINE_SEPARATOR,
		PARAGRAPH_SEPARATOR,
		SPACE_SEPARATOR
	}
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_buffer_message_func_t", instance_pos = 3.9)]
	public delegate HarfBuzz.Bool BufferMessageFunc (HarfBuzz.Buffer buffer, HarfBuzz.Font font, string message);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_destroy_func_t", instance_pos = 0.9)]
	public delegate void DestroyFunc ();
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_font_extents_func_t", instance_pos = 3.9)]
	public delegate HarfBuzz.Bool FontGetFontExtentsFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.FontExtents extents);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_font_extents_func_t", instance_pos = 3.9)]
	public delegate HarfBuzz.Bool FontGetFontHExtentsFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.FontExtents extents);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_font_extents_func_t", instance_pos = 3.9)]
	public delegate HarfBuzz.Bool FontGetFontVExtentsFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.FontExtents extents);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advance_func_t", instance_pos = 3.9)]
	public delegate HarfBuzz.Position FontGetGlyphAdvanceFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advances_func_t", instance_pos = 7.9)]
	public delegate void FontGetGlyphAdvancesFunc (HarfBuzz.Font font, void* font_data, uint count, HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_contour_point_func_t", instance_pos = 6.9)]
	public delegate HarfBuzz.Bool FontGetGlyphContourFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint glyph, uint point_index, HarfBuzz.Position x, HarfBuzz.Position y);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_extents_func_t", instance_pos = 4.9)]
	public delegate HarfBuzz.Bool FontGetGlyphExtentsFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint glyph, out HarfBuzz.GlyphExtents extents);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_from_name_func_t", instance_pos = 4.9)]
	public delegate HarfBuzz.Bool FontGetGlyphFromNameFunc (HarfBuzz.Font font, void* font_data, [CCode (array_length_cname = "len", array_length_pos = 3.5)] char[] name, out HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_func_t", instance_pos = 5.9)]
	public delegate HarfBuzz.Bool FontGetGlyphFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint unicode, HarfBuzz.Codepoint variation_selector, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advance_func_t", instance_pos = 3.9)]
	public delegate HarfBuzz.Position FontGetGlyphHAdvanceFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advances_func_t", instance_pos = 7.9)]
	public delegate void FontGetGlyphHAdvancesFunc (HarfBuzz.Font font, void* font_data, uint count, HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_kerning_func_t", instance_pos = 4.9)]
	public delegate HarfBuzz.Position FontGetGlyphHKerningFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint first_glyph, HarfBuzz.Codepoint second_glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_origin_func_t", instance_pos = 5.9)]
	public delegate HarfBuzz.Bool FontGetGlyphHOriginFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint glyph, HarfBuzz.Position x, HarfBuzz.Position y);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_kerning_func_t", instance_pos = 4.9)]
	public delegate HarfBuzz.Position FontGetGlyphKerningFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint first_glyph, HarfBuzz.Codepoint second_glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_name_func_t", instance_pos = 4.9)]
	public delegate HarfBuzz.Bool FontGetGlyphNameFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint glyph, [CCode (array_length_cname = "size", array_length_pos = 4.1, array_length_type = "guint")] out char[] name);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_origin_func_t", instance_pos = 5.9)]
	public delegate HarfBuzz.Bool FontGetGlyphOriginFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint glyph, HarfBuzz.Position x, HarfBuzz.Position y);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advance_func_t", instance_pos = 3.9)]
	public delegate HarfBuzz.Position FontGetGlyphVAdvanceFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_advances_func_t", instance_pos = 7.9)]
	public delegate void FontGetGlyphVAdvancesFunc (HarfBuzz.Font font, void* font_data, uint count, HarfBuzz.Codepoint first_glyph, uint glyph_stride, HarfBuzz.Position first_advance, uint advance_stride);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_kerning_func_t", instance_pos = 4.9)]
	public delegate HarfBuzz.Position FontGetGlyphVKerningFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint first_glyph, HarfBuzz.Codepoint second_glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_glyph_origin_func_t", instance_pos = 5.9)]
	public delegate HarfBuzz.Bool FontGetGlyphVOriginFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint glyph, HarfBuzz.Position x, HarfBuzz.Position y);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_nominal_glyph_func_t", instance_pos = 4.9)]
	public delegate HarfBuzz.Bool FontGetNominalGlyphFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint unicode, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_nominal_glyphs_func_t", instance_pos = 7.9)]
	public delegate uint FontGetNominalGlyphsFunc (HarfBuzz.Font font, void* font_data, uint count, HarfBuzz.Codepoint first_unicode, uint unicode_stride, HarfBuzz.Codepoint first_glyph, uint glyph_stride);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_font_get_variation_glyph_func_t", instance_pos = 5.9)]
	public delegate HarfBuzz.Bool FontGetVariantGlyphFunc (HarfBuzz.Font font, void* font_data, HarfBuzz.Codepoint unicode, HarfBuzz.Codepoint variation_selector, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_reference_table_func_t", instance_pos = 2.9)]
	public delegate HarfBuzz.Blob ReferenceTableFunc (HarfBuzz.Face face, HarfBuzz.Tag tag);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_combining_class_func_t", instance_pos = 2.9)]
	public delegate HarfBuzz.UnicodeCombiningClass UnicodeCombiningClassFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint unicode);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_compose_func_t", instance_pos = 4.9)]
	public delegate HarfBuzz.Bool UnicodeComposeFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint a, HarfBuzz.Codepoint b, HarfBuzz.Codepoint ab);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_decompose_func_t", instance_pos = 4.9)]
	public delegate HarfBuzz.Bool UnicodeDecomposeFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint ab, HarfBuzz.Codepoint a, HarfBuzz.Codepoint b);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_eastasian_width_func_t", instance_pos = 2.9)]
	[Version (deprecated = true, deprecated_since = "2.0.0")]
	public delegate uint UnicodeEastasianWidthFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint unicode);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_general_category_func_t", instance_pos = 2.9)]
	public delegate HarfBuzz.UnicodeGeneralCategory UnicodeGeneralCategoryFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint unicode);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_mirroring_func_t", instance_pos = 2.9)]
	public delegate HarfBuzz.Codepoint UnicodeMirroringFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint unicode);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_script_func_t", instance_pos = 2.9)]
	public delegate HarfBuzz.Script UnicodeScriptFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint unicode);
	[CCode (cheader_filename = "hb-gobject.h", cname = "hb_unicode_decompose_compatibility_func_t", instance_pos = 3.9)]
	[Version (deprecated = true, deprecated_since = "2.0.0")]
	public delegate uint UnicodedeComposeCompatibilityFunc (HarfBuzz.UnicodeFuncs ufuncs, HarfBuzz.Codepoint u, HarfBuzz.Codepoint decomposed);
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_AAT_LAYOUT_NO_SELECTOR_INDEX")]
	public const int AAT_LAYOUT_NO_SELECTOR_INDEX;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT")]
	[Version (since = "0.9.31")]
	public const int BUFFER_REPLACEMENT_CODEPOINT_DEFAULT;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_FEATURE_GLOBAL_START")]
	[Version (since = "2.0.0")]
	public const int FEATURE_GLOBAL_START;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_MAP_VALUE_INVALID")]
	public const HarfBuzz.Codepoint MAP_VALUE_INVALID;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX")]
	public const int OT_LAYOUT_DEFAULT_LANGUAGE_INDEX;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_LAYOUT_NO_FEATURE_INDEX")]
	public const int OT_LAYOUT_NO_FEATURE_INDEX;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_LAYOUT_NO_SCRIPT_INDEX")]
	public const int OT_LAYOUT_NO_SCRIPT_INDEX;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_LAYOUT_NO_VARIATIONS_INDEX")]
	public const int OT_LAYOUT_NO_VARIATIONS_INDEX;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_MAX_TAGS_PER_LANGUAGE")]
	[Version (since = "2.0.0")]
	public const int OT_MAX_TAGS_PER_LANGUAGE;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_MAX_TAGS_PER_SCRIPT")]
	[Version (since = "2.0.0")]
	public const int OT_MAX_TAGS_PER_SCRIPT;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_OT_VAR_NO_AXIS_INDEX")]
	[Version (deprecated = true, deprecated_since = "2.2.0", since = "1.4.2")]
	public const int OT_VAR_NO_AXIS_INDEX;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_SET_VALUE_INVALID")]
	public const HarfBuzz.Codepoint SET_VALUE_INVALID;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_UNICODE_MAX")]
	[Version (since = "1.9.0")]
	public const int UNICODE_MAX;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_UNICODE_MAX_DECOMPOSITION_LEN")]
	[Version (deprecated = true, deprecated_since = "2.0.0")]
	public const int UNICODE_MAX_DECOMPOSITION_LEN;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_VERSION_MAJOR")]
	public const int VERSION_MAJOR;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_VERSION_MICRO")]
	public const int VERSION_MICRO;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_VERSION_MINOR")]
	public const int VERSION_MINOR;
	[CCode (cheader_filename = "hb-gobject.h", cname = "HB_VERSION_STRING")]
	public const string VERSION_STRING;
	[CCode (cheader_filename = "hb-gobject.h")]
	public static void ft_font_changed (HarfBuzz.Font font);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.0.5")]
	public static int ft_font_get_load_flags (HarfBuzz.Font font);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.0.5")]
	public static void ft_font_set_funcs (HarfBuzz.Font font);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.0.5")]
	public static void ft_font_set_load_flags (HarfBuzz.Font font, int load_flags);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.6.5")]
	public static void ft_font_unlock_face (HarfBuzz.Font font);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.38")]
	public static HarfBuzz.Blob glib_blob_create (GLib.Bytes gbytes);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.38")]
	public static unowned HarfBuzz.UnicodeFuncs glib_get_unicode_funcs ();
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.38")]
	public static GLib.UnicodeScript glib_script_from_script (HarfBuzz.Script script);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.38")]
	public static HarfBuzz.Script glib_script_to_script (GLib.UnicodeScript script);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.5.0")]
	public static HarfBuzz.GlyphFlags glyph_info_get_glyph_flags (HarfBuzz.Glyph info);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static uint ot_color_glyph_get_layers (HarfBuzz.Face face, HarfBuzz.Codepoint glyph, uint start_offset, [CCode (array_length_cname = "layer_count", array_length_pos = 3.5, array_length_type = "guint")] out unowned HarfBuzz.OtColorLayer[]? layers);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static HarfBuzz.Blob ot_color_glyph_reference_png (HarfBuzz.Font font, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static HarfBuzz.Blob ot_color_glyph_reference_svg (HarfBuzz.Face face, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static HarfBuzz.Bool ot_color_has_layers (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static HarfBuzz.Bool ot_color_has_palettes (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static HarfBuzz.Bool ot_color_has_png (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static HarfBuzz.Bool ot_color_has_svg (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.28")]
	public static void ot_font_set_funcs (HarfBuzz.Font font);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.8.5")]
	public static void ot_layout_collect_features (HarfBuzz.Face face, HarfBuzz.Tag table_tag, HarfBuzz.Tag scripts, HarfBuzz.Tag languages, HarfBuzz.Tag features, out unowned HarfBuzz.Set feature_indexes);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.8")]
	public static void ot_layout_collect_lookups (HarfBuzz.Face face, HarfBuzz.Tag table_tag, HarfBuzz.Tag scripts, HarfBuzz.Tag languages, HarfBuzz.Tag features, out unowned HarfBuzz.Set lookup_indexes);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.0.0")]
	public static uint ot_layout_feature_get_characters (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint feature_index, uint start_offset, [CCode (array_length_cname = "char_count", array_length_pos = 4.5, array_length_type = "guint")] out unowned HarfBuzz.Codepoint[] characters);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.7")]
	public static uint ot_layout_feature_get_lookups (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint feature_index, uint start_offset, [CCode (array_length_cname = "lookup_count", array_length_pos = 4.5, array_length_type = "guint")] out uint[] lookup_indexes);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.0.0")]
	public static HarfBuzz.Bool ot_layout_feature_get_name_ids (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint feature_index, out HarfBuzz.OtNameId label_id, out HarfBuzz.OtNameId tooltip_id, out HarfBuzz.OtNameId sample_id, out uint num_named_parameters, out HarfBuzz.OtNameId first_param_id);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static uint ot_layout_feature_with_variations_get_lookups (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint feature_index, uint variations_index, uint start_offset, [CCode (array_length_cname = "lookup_count", array_length_pos = 5.5, array_length_type = "guint")] out uint[] lookup_indexes);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static uint ot_layout_get_attach_points (HarfBuzz.Face face, HarfBuzz.Codepoint glyph, uint start_offset, [CCode (array_length_cname = "point_count", array_length_pos = 3.5, array_length_type = "guint")] out uint[] point_array);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.6.0")]
	public static HarfBuzz.Bool ot_layout_get_baseline (HarfBuzz.Font font, HarfBuzz.OtLayoutBaselineTag baseline_tag, HarfBuzz.Direction direction, HarfBuzz.Tag script_tag, HarfBuzz.Tag language_tag, out HarfBuzz.Position coord);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.7")]
	public static HarfBuzz.OtLayoutGlyphClass ot_layout_get_glyph_class (HarfBuzz.Face face, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.7")]
	public static void ot_layout_get_glyphs_in_class (HarfBuzz.Face face, HarfBuzz.OtLayoutGlyphClass klass, out unowned HarfBuzz.Set glyphs);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static uint ot_layout_get_ligature_carets (HarfBuzz.Font font, HarfBuzz.Direction direction, HarfBuzz.Codepoint glyph, uint start_offset, [CCode (array_length_cname = "caret_count", array_length_pos = 4.5, array_length_type = "guint")] out HarfBuzz.Position[] caret_array);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.10")]
	public static HarfBuzz.Bool ot_layout_get_size_params (HarfBuzz.Face face, out uint design_size, out uint subfamily_id, out HarfBuzz.OtNameId subfamily_name_id, out uint range_start, out uint range_end);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Bool ot_layout_has_glyph_classes (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Bool ot_layout_has_positioning (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Bool ot_layout_has_substitution (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Bool ot_layout_language_find_feature (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint script_index, uint language_index, HarfBuzz.Tag feature_tag, out uint feature_index);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static uint ot_layout_language_get_feature_indexes (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint script_index, uint language_index, uint start_offset, [CCode (array_length_cname = "feature_count", array_length_pos = 5.5, array_length_type = "guint")] out uint[] feature_indexes);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static uint ot_layout_language_get_feature_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint script_index, uint language_index, uint start_offset, [CCode (array_length_cname = "feature_count", array_length_pos = 5.5, array_length_type = "guint")] out HarfBuzz.Tag[] feature_tags);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.30")]
	public static HarfBuzz.Bool ot_layout_language_get_required_feature (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint script_index, uint language_index, out uint feature_index, out HarfBuzz.Tag feature_tag);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Bool ot_layout_language_get_required_feature_index (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint script_index, uint language_index, out uint feature_index);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.7")]
	public static void ot_layout_lookup_collect_glyphs (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint lookup_index, out unowned HarfBuzz.Set glyphs_before, out unowned HarfBuzz.Set glyphs_input, out unowned HarfBuzz.Set glyphs_after, out unowned HarfBuzz.Set glyphs_output);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.6.8")]
	public static uint ot_layout_lookup_get_glyph_alternates (HarfBuzz.Face face, uint lookup_index, HarfBuzz.Codepoint glyph, uint start_offset, [CCode (array_length_cname = "alternate_count", array_length_pos = 4.5, array_length_type = "guint")] out unowned HarfBuzz.Codepoint[] alternate_glyphs);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.7")]
	public static void ot_layout_lookup_substitute_closure (HarfBuzz.Face face, uint lookup_index, out unowned HarfBuzz.Set glyphs);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.7")]
	public static HarfBuzz.Bool ot_layout_lookup_would_substitute (HarfBuzz.Face face, uint lookup_index, HarfBuzz.Codepoint glyphs, uint glyphs_length, HarfBuzz.Bool zero_context);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.8.1")]
	public static void ot_layout_lookups_substitute_closure (HarfBuzz.Face face, HarfBuzz.Set lookups, out unowned HarfBuzz.Set glyphs);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (deprecated = true)]
	public static HarfBuzz.Bool ot_layout_script_find_language (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint script_index, HarfBuzz.Tag language_tag, uint language_index);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static uint ot_layout_script_get_language_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint script_index, uint start_offset, [CCode (array_length_cname = "language_count", array_length_pos = 4.5, array_length_type = "guint")] out HarfBuzz.Tag[] language_tags);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.0.0")]
	public static HarfBuzz.Bool ot_layout_script_select_language (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint script_index, uint language_count, HarfBuzz.Tag language_tags, out uint language_index);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Bool ot_layout_table_choose_script (HarfBuzz.Face face, HarfBuzz.Tag table_tag, HarfBuzz.Tag script_tags, out uint script_index, out HarfBuzz.Tag chosen_script);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Bool ot_layout_table_find_feature_variations (HarfBuzz.Face face, HarfBuzz.Tag table_tag, int coords, uint num_coords, out uint variations_index);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Bool ot_layout_table_find_script (HarfBuzz.Face face, HarfBuzz.Tag table_tag, HarfBuzz.Tag script_tag, out uint script_index);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static uint ot_layout_table_get_feature_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint start_offset, [CCode (array_length_cname = "feature_count", array_length_pos = 3.5, array_length_type = "guint")] out HarfBuzz.Tag[] feature_tags);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.22")]
	public static uint ot_layout_table_get_lookup_count (HarfBuzz.Face face, HarfBuzz.Tag table_tag);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static uint ot_layout_table_get_script_tags (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint start_offset, [CCode (array_length_cname = "script_count", array_length_pos = 3.5, array_length_type = "guint")] out HarfBuzz.Tag[] script_tags);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.0.0")]
	public static HarfBuzz.Bool ot_layout_table_select_script (HarfBuzz.Face face, HarfBuzz.Tag table_tag, uint script_count, HarfBuzz.Tag script_tags, out uint script_index, out HarfBuzz.Tag chosen_script);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.3.3")]
	public static HarfBuzz.Position ot_math_get_constant (HarfBuzz.Font font, HarfBuzz.OtMathContant constant);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.3.3")]
	public static uint ot_math_get_glyph_assembly (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, HarfBuzz.Direction direction, uint start_offset, [CCode (array_length_cname = "parts_count", array_length_pos = 4.5, array_length_type = "guint")] out unowned HarfBuzz.OtMathGlypthPart[] parts, out HarfBuzz.Position italics_correction);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.3.3")]
	public static HarfBuzz.Position ot_math_get_glyph_italics_correction (HarfBuzz.Font font, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.3.3")]
	public static HarfBuzz.Position ot_math_get_glyph_kerning (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, HarfBuzz.OtMathKern kern, HarfBuzz.Position correction_height);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.3.3")]
	public static HarfBuzz.Position ot_math_get_glyph_top_accent_attachment (HarfBuzz.Font font, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.3.3")]
	public static uint ot_math_get_glyph_variants (HarfBuzz.Font font, HarfBuzz.Codepoint glyph, HarfBuzz.Direction direction, uint start_offset, [CCode (array_length_cname = "variants_count", array_length_pos = 4.5, array_length_type = "guint")] out unowned HarfBuzz.OtMathGlypthVariant[] variants);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.3.3")]
	public static HarfBuzz.Position ot_math_get_min_connector_overlap (HarfBuzz.Font font, HarfBuzz.Direction direction);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.3.3")]
	public static HarfBuzz.Bool ot_math_has_data (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.3.3")]
	public static HarfBuzz.Bool ot_math_is_glyph_extended_shape (HarfBuzz.Face face, HarfBuzz.Codepoint glyph);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.6.0")]
	public static uint ot_meta_get_entry_tags (HarfBuzz.Face face, uint start_offset, [CCode (array_length_cname = "entries_count", array_length_pos = 2.5, array_length_type = "guint")] out unowned HarfBuzz.OtMetaTag[] entries);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.6.0")]
	public static HarfBuzz.Blob ot_meta_reference_entry (HarfBuzz.Face face, HarfBuzz.OtMetaTag meta_tag);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.6.0")]
	public static HarfBuzz.Bool ot_metrics_get_position (HarfBuzz.Font font, HarfBuzz.OtMetricsTag metrics_tag, out HarfBuzz.Position position);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.6.0")]
	public static float ot_metrics_get_variation (HarfBuzz.Font font, HarfBuzz.OtMetricsTag metrics_tag);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.6.0")]
	public static HarfBuzz.Position ot_metrics_get_x_variation (HarfBuzz.Font font, HarfBuzz.OtMetricsTag metrics_tag);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.6.0")]
	public static HarfBuzz.Position ot_metrics_get_y_variation (HarfBuzz.Font font, HarfBuzz.OtMetricsTag metrics_tag);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static uint ot_name_get_utf16 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, HarfBuzz.Language language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5, array_length_type = "guint")] out unowned uint16[] text);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static uint ot_name_get_utf32 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, HarfBuzz.Language language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5, array_length_type = "guint")] out unowned uint32[] text);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static uint ot_name_get_utf8 (HarfBuzz.Face face, HarfBuzz.OtNameId name_id, HarfBuzz.Language language, [CCode (array_length_cname = "text_size", array_length_pos = 3.5, array_length_type = "guint")] out unowned char[] text);
	[CCode (array_length_pos = 1.1, array_length_type = "guint", cheader_filename = "hb-gobject.h")]
	[Version (since = "2.1.0")]
	public static unowned HarfBuzz.OtNameEntry[] ot_name_list_names (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.2")]
	public static void ot_shape_glyphs_closure (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode (array_length_cname = "num_features", array_length_pos = 3.5, array_length_type = "guint")] HarfBuzz.Feature[] features, out unowned HarfBuzz.Set glyphs);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Tag ot_tag_from_language (HarfBuzz.Language language);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.2")]
	public static unowned HarfBuzz.Language ot_tag_to_language (HarfBuzz.Tag tag);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static HarfBuzz.Script ot_tag_to_script (HarfBuzz.Tag tag);
	[CCode (cheader_filename = "hb-gobject.h")]
	public static void ot_tags_from_script (HarfBuzz.Script script, HarfBuzz.Tag script_tag_1, HarfBuzz.Tag script_tag_2);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.0.0")]
	public static void ot_tags_from_script_and_language (HarfBuzz.Script script, HarfBuzz.Language language, uint? script_count, out HarfBuzz.Tag script_tags, uint? language_count, out HarfBuzz.Tag language_tags);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.0.0")]
	public static void ot_tags_to_script_and_language (HarfBuzz.Tag script_tag, HarfBuzz.Tag language_tag, HarfBuzz.Script? script, HarfBuzz.Language? language);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (deprecated = true, deprecated_since = "2.2.0", since = "1.4.2")]
	public static HarfBuzz.Bool ot_var_find_axis (HarfBuzz.Face face, HarfBuzz.Tag axis_tag, uint axis_index, out HarfBuzz.OtVarAxis axis_info);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.2.0")]
	public static HarfBuzz.Bool ot_var_find_axis_info (HarfBuzz.Face face, HarfBuzz.Tag axis_tag, out HarfBuzz.OtVarAxisInfo axis_info);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (deprecated = true, deprecated_since = "2.2.0", since = "1.4.2")]
	public static uint ot_var_get_axes (HarfBuzz.Face face, uint start_offset, [CCode (array_length_cname = "axes_count", array_length_pos = 2.5, array_length_type = "guint")] out unowned HarfBuzz.OtVarAxis[] axes_array);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.4.2")]
	public static uint ot_var_get_axis_count (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.2.0")]
	public static uint ot_var_get_axis_infos (HarfBuzz.Face face, uint start_offset, [CCode (array_length_cname = "axes_count", array_length_pos = 2.5, array_length_type = "guint")] out unowned HarfBuzz.OtVarAxisInfo[] axes_array);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.2.0")]
	public static uint ot_var_get_named_instance_count (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.4.2")]
	public static HarfBuzz.Bool ot_var_has_data (HarfBuzz.Face face);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.2.0")]
	public static uint ot_var_named_instance_get_design_coords (HarfBuzz.Face face, uint instance_index, [CCode (array_length_cname = "coords_length", array_length_pos = 2.5, array_length_type = "guint")] out float[] coords);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.2.0")]
	public static HarfBuzz.OtNameId ot_var_named_instance_get_postscript_name_id (HarfBuzz.Face face, uint instance_index);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "2.2.0")]
	public static HarfBuzz.OtNameId ot_var_named_instance_get_subfamily_name_id (HarfBuzz.Face face, uint instance_index);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.4.2")]
	public static void ot_var_normalize_coords (HarfBuzz.Face face, uint coords_length, float design_coords, out int normalized_coords);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "1.4.2")]
	public static void ot_var_normalize_variations (HarfBuzz.Face face, HarfBuzz.Variation variations, uint variations_length, [CCode (array_length_cname = "coords_length", array_length_pos = 4.1, array_length_type = "guint")] out int[] coords);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.2")]
	public static void shape (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode (array_length_cname = "num_features", array_length_pos = 3.1, array_length_type = "guint")] HarfBuzz.Feature[]? features);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.2")]
	public static HarfBuzz.Bool shape_full (HarfBuzz.Font font, HarfBuzz.Buffer buffer, [CCode (array_length_cname = "num_features", array_length_pos = 3.5, array_length_type = "guint")] HarfBuzz.Feature[]? features, [CCode (array_length = false, array_null_terminated = true)] string[]? shaper_list);
	[CCode (array_length = false, array_null_terminated = true, cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.2")]
	public static unowned string[] shape_list_shapers ();
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.2")]
	public static void version (out uint major, out uint minor, out uint micro);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.30")]
	public static HarfBuzz.Bool version_atleast (uint major, uint minor, uint micro);
	[CCode (cheader_filename = "hb-gobject.h")]
	[Version (since = "0.9.2")]
	public static unowned string version_string ();
}
