/* pango.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "Pango", gir_namespace = "Pango", gir_version = "1.0", lower_case_cprefix = "pango_")]
namespace Pango {
	namespace Scale {
		[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_SCALE_LARGE")]
		public const double LARGE;
		[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_SCALE_MEDIUM")]
		public const double MEDIUM;
		[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_SCALE_SMALL")]
		public const double SMALL;
		[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_SCALE_XX_LARGE")]
		public const double XX_LARGE;
		[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_SCALE_XX_SMALL")]
		public const double XX_SMALL;
		[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_SCALE_X_LARGE")]
		public const double X_LARGE;
		[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_SCALE_X_SMALL")]
		public const double X_SMALL;
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	public class AttrClass {
		public GLib.Callback copy;
		public GLib.Callback destroy;
		public GLib.Callback equal;
		public Pango.AttrType type;
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	public class AttrColor : Pango.Attribute {
		public Pango.Color color;
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	public class AttrFloat : Pango.Attribute {
		public double value;
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	public class AttrFontDesc : Pango.Attribute {
		public weak Pango.FontDescription desc;
		[CCode (has_construct_function = false, type = "PangoAttribute*")]
		public AttrFontDesc (Pango.FontDescription desc);
		public static Pango.Attribute @new (Pango.FontDescription desc);
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	[Version (since = "1.38")]
	public class AttrFontFeatures : Pango.Attribute {
		public weak string features;
		[CCode (has_construct_function = false, type = "PangoAttribute*")]
		public AttrFontFeatures (string features);
		public static Pango.Attribute @new (string features);
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	public class AttrInt : Pango.Attribute {
		public int value;
	}
	[CCode (cheader_filename = "pango/pango.h", free_function = "pango_attr_iterator_destroy", type_id = "pango_attr_iterator_get_type ()")]
	[Compact]
	public class AttrIterator {
		public Pango.AttrIterator copy ();
		[DestroysInstance]
		public void destroy ();
		public unowned Pango.Attribute? @get (Pango.AttrType type);
		[Version (since = "1.2")]
		public GLib.SList<Pango.Attribute> get_attrs ();
		public void get_font (Pango.FontDescription desc, out Pango.Language language, out GLib.SList<Pango.Attribute> extra_attrs);
		public bool next ();
		public void range (out int start, out int end);
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	public class AttrLanguage : Pango.Attribute {
		public weak Pango.Language value;
		[CCode (has_construct_function = false, type = "PangoAttribute*")]
		public AttrLanguage (Pango.Language language);
		public static Pango.Attribute @new (Pango.Language language);
	}
	[CCode (cheader_filename = "pango/pango.h", ref_function = "pango_attr_list_ref", type_id = "pango_attr_list_get_type ()", unref_function = "pango_attr_list_unref")]
	[Compact]
	public class AttrList {
		[CCode (has_construct_function = false)]
		public AttrList ();
		public void change (owned Pango.Attribute attr);
		public Pango.AttrList? copy ();
		[Version (since = "1.46")]
		public bool equal (Pango.AttrList other_list);
		[Version (since = "1.2")]
		public Pango.AttrList? filter (Pango.AttrFilterFunc func);
		[Version (since = "1.50")]
		public static Pango.AttrList? from_string (string text);
		[Version (since = "1.44")]
		public GLib.SList<Pango.Attribute> get_attributes ();
		public Pango.AttrIterator get_iterator ();
		public void insert (owned Pango.Attribute attr);
		public void insert_before (owned Pango.Attribute attr);
		[Version (since = "1.10")]
		public unowned Pango.AttrList @ref ();
		public void splice (Pango.AttrList other, int pos, int len);
		[Version (since = "1.50")]
		public string to_string ();
		public void unref ();
		[Version (since = "1.44")]
		public void update (int pos, int remove, int add);
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	public class AttrShape<T> : Pango.Attribute {
		public weak Pango.AttrDataCopyFunc<T> copy_func;
		public T data;
		public weak GLib.DestroyNotify destroy_func;
		public Pango.Rectangle ink_rect;
		public Pango.Rectangle logical_rect;
		[CCode (has_construct_function = false, type = "PangoAttribute*")]
		public AttrShape (Pango.Rectangle ink_rect, Pango.Rectangle logical_rect);
		public static Pango.Attribute @new (Pango.Rectangle ink_rect, Pango.Rectangle logical_rect);
		[Version (since = "1.8")]
		public static Pango.Attribute new_with_data (Pango.Rectangle ink_rect, Pango.Rectangle logical_rect, void* data, [CCode (destroy_notify_pos = 4.1)] owned Pango.AttrDataCopyFunc? copy_func);
		[CCode (has_construct_function = false, simple_generics = true, type = "PangoAttribute*")]
		[Version (since = "1.8")]
		public AttrShape.with_data (Pango.Rectangle ink_rect, Pango.Rectangle logical_rect, owned T data, Pango.AttrDataCopyFunc<T> copy_func);
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	public class AttrSize : Pango.Attribute {
		public uint absolute;
		public int size;
		[CCode (has_construct_function = false, type = "PangoAttribute*")]
		public AttrSize (int size);
		public static Pango.Attribute @new (int size);
		[Version (since = "1.8")]
		public static Pango.Attribute new_absolute (int size);
		[CCode (cname = "pango_attr_size_new_absolute", has_construct_function = false, type = "PangoAttribute*")]
		[Version (since = "1.8")]
		public AttrSize.with_absolute (int size);
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	[Compact]
	public class AttrString : Pango.Attribute {
		public weak string value;
	}
	[CCode (cheader_filename = "pango/pango.h", free_function = "pango_attribute_destroy", type_id = "pango_attribute_get_type ()")]
	[Compact]
	public class Attribute {
		public uint end_index;
		public weak Pango.AttrClass klass;
		public uint start_index;
		[Version (since = "1.50")]
		public unowned Pango.AttrColor? as_color ();
		[Version (since = "1.50")]
		public unowned Pango.AttrFloat? as_float ();
		[Version (since = "1.50")]
		public unowned Pango.AttrFontDesc? as_font_desc ();
		[Version (since = "1.50")]
		public unowned Pango.AttrFontFeatures? as_font_features ();
		[Version (since = "1.50")]
		public unowned Pango.AttrInt? as_int ();
		[Version (since = "1.50")]
		public unowned Pango.AttrLanguage? as_language ();
		[Version (since = "1.50")]
		public unowned Pango.AttrShape? as_shape ();
		[Version (since = "1.50")]
		public unowned Pango.AttrSize? as_size ();
		[Version (since = "1.50")]
		public unowned Pango.AttrString? as_string ();
		public Pango.Attribute copy ();
		[DestroysInstance]
		public void destroy ();
		public bool equal (Pango.Attribute attr2);
		[Version (since = "1.20")]
		public void init (Pango.AttrClass klass);
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_context_get_type ()")]
	public class Context : GLib.Object {
		[CCode (has_construct_function = false)]
		public Context ();
		[Version (since = "1.32.4")]
		public void changed ();
		public Pango.Direction get_base_dir ();
		[Version (since = "1.16")]
		public Pango.Gravity get_base_gravity ();
		public unowned Pango.FontDescription get_font_description ();
		[Version (since = "1.6")]
		public unowned Pango.FontMap get_font_map ();
		[Version (since = "1.16")]
		public Pango.Gravity get_gravity ();
		[Version (since = "1.16")]
		public Pango.GravityHint get_gravity_hint ();
		public Pango.Language get_language ();
		[Version (since = "1.6")]
		public unowned Pango.Matrix? get_matrix ();
		public Pango.FontMetrics get_metrics (Pango.FontDescription? desc, Pango.Language? language);
		[Version (since = "1.44")]
		public bool get_round_glyph_positions ();
		[Version (since = "1.32.4")]
		public uint get_serial ();
		public void list_families ([CCode (array_length_cname = "n_families", array_length_pos = 1.1)] out (unowned Pango.FontFamily)[] families);
		public Pango.Font? load_font (Pango.FontDescription desc);
		public Pango.Fontset? load_fontset (Pango.FontDescription desc, Pango.Language language);
		public void set_base_dir (Pango.Direction direction);
		[Version (since = "1.16")]
		public void set_base_gravity (Pango.Gravity gravity);
		public void set_font_description (Pango.FontDescription desc);
		public void set_font_map (Pango.FontMap font_map);
		[Version (since = "1.16")]
		public void set_gravity_hint (Pango.GravityHint hint);
		public void set_language (Pango.Language language);
		[Version (since = "1.6")]
		public void set_matrix (Pango.Matrix? matrix);
		[Version (since = "1.44")]
		public void set_round_glyph_positions (bool round_positions);
	}
	[CCode (cheader_filename = "pango/pango.h", ref_function = "pango_coverage_ref", type_id = "pango_coverage_get_type ()", unref_function = "pango_coverage_unref")]
	public class Coverage : GLib.Object {
		[CCode (has_construct_function = false)]
		public Coverage ();
		public Pango.Coverage copy ();
		[Version (deprecated = true, deprecated_since = "1.44")]
		public static Pango.Coverage? from_bytes ([CCode (array_length_cname = "n_bytes", array_length_pos = 1.1)] uint8[] bytes);
		public Pango.CoverageLevel @get (int index_);
		[Version (deprecated = true, deprecated_since = "1.44")]
		public void max (Pango.Coverage other);
		[Version (deprecated = true, deprecated_since = "1.52")]
		public unowned Pango.Coverage @ref ();
		public void @set (int index_, Pango.CoverageLevel level);
		[Version (deprecated = true, deprecated_since = "1.44")]
		public void to_bytes ([CCode (array_length_cname = "n_bytes", array_length_pos = 1.1)] out uint8[] bytes);
		[Version (deprecated = true, deprecated_since = "1.52")]
		public void unref ();
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_font_get_type ()")]
	public abstract class Font : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Font ();
		[NoWrapper]
		public virtual HarfBuzz.Font create_hb_font ();
		public virtual Pango.FontDescription describe ();
		[NoWrapper]
		public virtual Pango.FontDescription describe_absolute ();
		[Version (since = "1.14")]
		public Pango.FontDescription describe_with_absolute_size ();
		public static void descriptions_free ([CCode (array_length_cname = "n_descs", array_length_pos = 1.1)] owned Pango.FontDescription[]? descs);
		[Version (since = "1.50")]
		public static Pango.Font? deserialize (Pango.Context context, GLib.Bytes bytes) throws GLib.Error;
		public virtual Pango.Coverage get_coverage (Pango.Language language);
		[Version (since = "1.46")]
		public unowned Pango.FontFace get_face ();
		[Version (since = "1.44")]
		public virtual void get_features ([CCode (array_length_cname = "len", array_length_pos = 1.5, array_length_type = "guint")] out unowned HarfBuzz.Feature[] features, ref uint num_features);
		[Version (since = "1.10")]
		public virtual unowned Pango.FontMap? get_font_map ();
		public virtual void get_glyph_extents (Pango.Glyph glyph, out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		[CCode (array_length = false, array_null_terminated = true)]
		[Version (since = "1.50")]
		public unowned Pango.Language[]? get_languages ();
		public virtual Pango.FontMetrics get_metrics (Pango.Language? language);
		[Version (since = "1.44")]
		public bool has_char (unichar wc);
		[Version (since = "1.50")]
		public GLib.Bytes serialize ();
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_font_description_get_type ()")]
	[Compact]
	public class FontDescription {
		[CCode (has_construct_function = false)]
		public FontDescription ();
		public bool better_match (Pango.FontDescription? old_match, Pango.FontDescription new_match);
		public Pango.FontDescription? copy ();
		public Pango.FontDescription? copy_static ();
		public bool equal (Pango.FontDescription desc2);
		public void free ();
		public static Pango.FontDescription from_string (string str);
		public unowned string? get_family ();
		[Version (since = "1.16")]
		public Pango.Gravity get_gravity ();
		public Pango.FontMask get_set_fields ();
		public int get_size ();
		[Version (since = "1.8")]
		public bool get_size_is_absolute ();
		public Pango.Stretch get_stretch ();
		public Pango.Style get_style ();
		public Pango.Variant get_variant ();
		[Version (since = "1.42")]
		public unowned string? get_variations ();
		public Pango.Weight get_weight ();
		public uint hash ();
		public void merge (Pango.FontDescription? desc_to_merge, bool replace_existing);
		public void merge_static (Pango.FontDescription desc_to_merge, bool replace_existing);
		[Version (since = "1.8")]
		public void set_absolute_size (double size);
		public void set_family (string family);
		public void set_family_static (string family);
		[Version (since = "1.16")]
		public void set_gravity (Pango.Gravity gravity);
		public void set_size (int size);
		public void set_stretch (Pango.Stretch stretch);
		public void set_style (Pango.Style style);
		public void set_variant (Pango.Variant variant);
		[Version (since = "1.42")]
		public void set_variations (string? variations);
		[Version (since = "1.42")]
		public void set_variations_static (string variations);
		public void set_weight (Pango.Weight weight);
		public string to_filename ();
		public string to_string ();
		public void unset_fields (Pango.FontMask to_unset);
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_font_face_get_type ()")]
	public abstract class FontFace : GLib.Object {
		[CCode (has_construct_function = false)]
		protected FontFace ();
		public virtual Pango.FontDescription describe ();
		public virtual unowned string get_face_name ();
		[Version (since = "1.46")]
		public virtual unowned Pango.FontFamily get_family ();
		[Version (since = "1.18")]
		public virtual bool is_synthesized ();
		[Version (since = "1.4")]
		public virtual void list_sizes ([CCode (array_length_cname = "n_sizes", array_length_pos = 1.1)] out int[]? sizes);
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_font_family_get_type ()")]
	public abstract class FontFamily : GLib.Object {
		[CCode (has_construct_function = false)]
		protected FontFamily ();
		[Version (since = "1.46")]
		public virtual unowned Pango.FontFace? get_face (string? name);
		public virtual unowned string get_name ();
		[Version (since = "1.4")]
		public virtual bool is_monospace ();
		[Version (since = "1.44")]
		public virtual bool is_variable ();
		public virtual void list_faces ([CCode (array_length_cname = "n_faces", array_length_pos = 1.1)] out (unowned Pango.FontFace)[] faces);
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_font_map_get_type ()")]
	public abstract class FontMap : GLib.Object {
		[CCode (has_construct_function = false)]
		protected FontMap ();
		[Version (since = "1.34")]
		public virtual void changed ();
		[Version (since = "1.22")]
		public Pango.Context create_context ();
		[Version (since = "1.46")]
		public virtual unowned Pango.FontFamily get_family (string name);
		[Version (since = "1.32.4")]
		public virtual uint get_serial ();
		public virtual void list_families ([CCode (array_length_cname = "n_families", array_length_pos = 1.1)] out (unowned Pango.FontFamily)[] families);
		public virtual Pango.Font? load_font (Pango.Context context, Pango.FontDescription desc);
		public virtual Pango.Fontset? load_fontset (Pango.Context context, Pango.FontDescription desc, Pango.Language language);
	}
	[CCode (cheader_filename = "pango/pango.h", ref_function = "pango_font_metrics_ref", type_id = "pango_font_metrics_get_type ()", unref_function = "pango_font_metrics_unref")]
	[Compact]
	public class FontMetrics {
		public int get_approximate_char_width ();
		public int get_approximate_digit_width ();
		public int get_ascent ();
		public int get_descent ();
		[Version (since = "1.44")]
		public int get_height ();
		[Version (since = "1.6")]
		public int get_strikethrough_position ();
		[Version (since = "1.6")]
		public int get_strikethrough_thickness ();
		[Version (since = "1.6")]
		public int get_underline_position ();
		[Version (since = "1.6")]
		public int get_underline_thickness ();
		public unowned Pango.FontMetrics? @ref ();
		public void unref ();
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_fontset_get_type ()")]
	public abstract class Fontset : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Fontset ();
		[Version (since = "1.4")]
		public virtual void @foreach (Pango.FontsetForeachFunc func);
		public virtual Pango.Font get_font (uint wc);
		[NoWrapper]
		public virtual Pango.Language get_language ();
		public virtual Pango.FontMetrics get_metrics ();
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_fontset_simple_get_type ()")]
	public class FontsetSimple : Pango.Fontset {
		[CCode (has_construct_function = false)]
		public FontsetSimple (Pango.Language language);
		public void append (owned Pango.Font font);
		public int size ();
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_glyph_item_get_type ()")]
	[Compact]
	public class GlyphItem {
		public int end_x_offset;
		public weak Pango.GlyphString glyphs;
		public weak Pango.Item item;
		public int start_x_offset;
		public int y_offset;
		[Version (since = "1.2")]
		public GLib.SList<Pango.GlyphItem> apply_attrs (string text, Pango.AttrList list);
		[Version (since = "1.20")]
		public Pango.GlyphItem? copy ();
		[Version (since = "1.6")]
		public void free ();
		[Version (since = "1.26")]
		public void get_logical_widths (string text, [CCode (array_length = false)] int[] logical_widths);
		[Version (since = "1.6")]
		public void letter_space (string text, [CCode (array_length = false)] Pango.LogAttr[] log_attrs, int letter_spacing);
		[Version (since = "1.2")]
		public Pango.GlyphItem split (string text, int split_index);
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_glyph_string_get_type ()")]
	[Compact]
	public class GlyphString {
		[CCode (array_length_cname = "num_glyphs")]
		public Pango.GlyphInfo[] glyphs;
		[CCode (array_length_cname = "num_glyphs")]
		public int[] log_clusters;
		public int num_glyphs;
		[CCode (has_construct_function = false)]
		public GlyphString ();
		public Pango.GlyphString? copy ();
		public void extents (Pango.Font font, out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		public void extents_range (int start, int end, Pango.Font font, out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		public void free ();
		public void get_logical_widths (string text, int length, int embedding_level, [CCode (array_length = false)] int[] logical_widths);
		[Version (since = "1.14")]
		public int get_width ();
		public void index_to_x (string text, int length, Pango.Analysis analysis, int index_, bool trailing, out int x_pos);
		[Version (since = "1.50")]
		public void index_to_x_full (string text, int length, Pango.Analysis analysis, Pango.LogAttr? attrs, int index_, bool trailing, out int x_pos);
		public void set_size (int new_len);
		public void x_to_index (string text, int length, Pango.Analysis analysis, int x_pos, out int index_, out int trailing);
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_item_get_type ()")]
	[Compact]
	public class Item {
		public Pango.Analysis analysis;
		public int length;
		public int num_chars;
		public int offset;
		[CCode (has_construct_function = false)]
		public Item ();
		[Version (since = "1.44")]
		public void apply_attrs (Pango.AttrIterator iter);
		public Pango.Item? copy ();
		[DestroysInstance]
		public void free ();
		public Pango.Item split (int split_index, int split_offset);
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_language_get_type ()")]
	[Compact]
	public class Language {
		public static unowned Pango.Language? from_string (string? language);
		[Version (since = "1.16")]
		public static unowned Pango.Language get_default ();
		[CCode (array_length = false, array_null_terminated = true)]
		[Version (since = "1.48")]
		public static unowned Pango.Language[]? get_preferred ();
		public unowned string get_sample_string ();
		[CCode (array_length_pos = 0.1)]
		[Version (since = "1.22")]
		public unowned Pango.Script[]? get_scripts ();
		[Version (since = "1.4")]
		public bool includes_script (Pango.Script script);
		public bool matches (string range_list);
		public unowned string to_string ();
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_layout_get_type ()")]
	public class Layout : GLib.Object {
		[CCode (has_construct_function = false)]
		public Layout (Pango.Context context);
		public void context_changed ();
		public Pango.Layout copy ();
		[Version (since = "1.50")]
		public static Pango.Layout? deserialize (Pango.Context context, GLib.Bytes bytes, Pango.LayoutDeserializeFlags flags) throws GLib.Error;
		public Pango.Alignment get_alignment ();
		public unowned Pango.AttrList? get_attributes ();
		[Version (since = "1.4")]
		public bool get_auto_dir ();
		[Version (since = "1.22")]
		public int get_baseline ();
		[Version (since = "1.50")]
		public void get_caret_pos (int index_, out Pango.Rectangle strong_pos, out Pango.Rectangle weak_pos);
		[Version (since = "1.30")]
		public int get_character_count ();
		public unowned Pango.Context get_context ();
		public void get_cursor_pos (int index_, out Pango.Rectangle strong_pos, out Pango.Rectangle weak_pos);
		[Version (since = "1.46")]
		public Pango.Direction get_direction (int index);
		[Version (since = "1.6")]
		public Pango.EllipsizeMode get_ellipsize ();
		public void get_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		[Version (since = "1.8")]
		public unowned Pango.FontDescription? get_font_description ();
		[Version (since = "1.20")]
		public int get_height ();
		public int get_indent ();
		public Pango.LayoutIter get_iter ();
		public bool get_justify ();
		[Version (since = "1.50")]
		public bool get_justify_last_line ();
		public unowned Pango.LayoutLine? get_line (int line);
		public int get_line_count ();
		[Version (since = "1.16")]
		public unowned Pango.LayoutLine? get_line_readonly (int line);
		[Version (since = "1.44")]
		public float get_line_spacing ();
		public unowned GLib.SList<Pango.LayoutLine> get_lines ();
		[Version (since = "1.16")]
		public unowned GLib.SList<Pango.LayoutLine> get_lines_readonly ();
		public void get_log_attrs ([CCode (array_length_cname = "n_attrs", array_length_pos = 1.1)] out Pango.LogAttr[] attrs);
		[CCode (array_length_pos = 0.1)]
		[Version (since = "1.30")]
		public unowned Pango.LogAttr[] get_log_attrs_readonly ();
		public void get_pixel_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		public void get_pixel_size (out int width, out int height);
		[Version (since = "1.32.4")]
		public uint get_serial ();
		public bool get_single_paragraph_mode ();
		public void get_size (out int width, out int height);
		public int get_spacing ();
		public Pango.TabArray? get_tabs ();
		public unowned string get_text ();
		[Version (since = "1.16")]
		public int get_unknown_glyphs_count ();
		public int get_width ();
		public Pango.WrapMode get_wrap ();
		public void index_to_line_x (int index_, bool trailing, out int line, out int x_pos);
		public Pango.Rectangle index_to_pos (int index_);
		[Version (since = "1.16")]
		public bool is_ellipsized ();
		[Version (since = "1.16")]
		public bool is_wrapped ();
		public void move_cursor_visually (bool strong, int old_index, int old_trailing, int direction, out int new_index, out int new_trailing);
		[Version (since = "1.50")]
		public GLib.Bytes serialize (Pango.LayoutSerializeFlags flags);
		public void set_alignment (Pango.Alignment alignment);
		public void set_attributes (Pango.AttrList? attrs);
		[Version (since = "1.4")]
		public void set_auto_dir (bool auto_dir);
		[Version (since = "1.6")]
		public void set_ellipsize (Pango.EllipsizeMode ellipsize);
		public void set_font_description (Pango.FontDescription? desc);
		[Version (since = "1.20")]
		public void set_height (int height);
		public void set_indent (int indent);
		public void set_justify (bool justify);
		[Version (since = "1.50")]
		public void set_justify_last_line (bool justify);
		[Version (since = "1.44")]
		public void set_line_spacing (float factor);
		public void set_markup (string markup, int length);
		public void set_markup_with_accel (string markup, int length, unichar accel_marker, out unichar accel_char);
		public void set_single_paragraph_mode (bool setting);
		public void set_spacing (int spacing);
		public void set_tabs (Pango.TabArray? tabs);
		public void set_text (string text, int length);
		public void set_width (int width);
		public void set_wrap (Pango.WrapMode wrap);
		[Version (since = "1.50")]
		public bool write_to_file (Pango.LayoutSerializeFlags flags, string filename) throws GLib.Error;
		public bool xy_to_index (int x, int y, out int index_, out int trailing);
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_layout_iter_get_type ()")]
	[Compact]
	public class LayoutIter {
		public bool at_last_line ();
		[Version (since = "1.20")]
		public Pango.LayoutIter? copy ();
		public void free ();
		public int get_baseline ();
		public Pango.Rectangle get_char_extents ();
		public void get_cluster_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		public int get_index ();
		[Version (since = "1.20")]
		public unowned Pango.Layout get_layout ();
		public void get_layout_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		public unowned Pango.LayoutLine get_line ();
		public void get_line_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		[Version (since = "1.16")]
		public unowned Pango.LayoutLine get_line_readonly ();
		public void get_line_yrange (out int y0_, out int y1_);
		public unowned Pango.LayoutRun? get_run ();
		[Version (since = "1.50")]
		public int get_run_baseline ();
		public void get_run_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		[Version (since = "1.16")]
		public unowned Pango.LayoutRun? get_run_readonly ();
		public bool next_char ();
		public bool next_cluster ();
		public bool next_line ();
		public bool next_run ();
	}
	[CCode (cheader_filename = "pango/pango.h", ref_function = "pango_layout_line_ref", type_id = "pango_layout_line_get_type ()", unref_function = "pango_layout_line_unref")]
	[Compact]
	public class LayoutLine {
		public weak Pango.Layout layout;
		public int length;
		public uint resolved_dir;
		public weak GLib.SList<Pango.LayoutRun> runs;
		public int start_index;
		public void get_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		[Version (since = "1.44")]
		public void get_height (out int height);
		[Version (since = "1.50")]
		public int get_length ();
		public void get_pixel_extents (out Pango.Rectangle ink_rect, out Pango.Rectangle logical_rect);
		[Version (since = "1.50")]
		public Pango.Direction get_resolved_direction ();
		[Version (since = "1.50")]
		public int get_start_index ();
		public void get_x_ranges (int start_index, int end_index, [CCode (array_length_cname = "n_ranges", array_length_pos = 3.1)] out int[] ranges);
		public void index_to_x (int index_, bool trailing, out int x_pos);
		[Version (since = "1.50")]
		public bool is_paragraph_start ();
		[Version (since = "1.10")]
		public unowned Pango.LayoutLine @ref ();
		public void unref ();
		public bool x_to_index (int x_pos, out int index_, out int trailing);
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_glyph_item_get_type ()")]
	[Compact]
	public class LayoutRun : Pango.GlyphItem {
	}
	[CCode (cheader_filename = "pango/pango.h", type_id = "pango_renderer_get_type ()")]
	[Version (since = "1.8")]
	public abstract class Renderer : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Renderer ();
		public void activate ();
		[NoWrapper]
		public virtual void begin ();
		public void deactivate ();
		public virtual void draw_error_underline (int x, int y, int width, int height);
		public virtual void draw_glyph (Pango.Font font, Pango.Glyph glyph, double x, double y);
		[Version (since = "1.22")]
		public virtual void draw_glyph_item (string? text, Pango.GlyphItem glyph_item, int x, int y);
		public virtual void draw_glyphs (Pango.Font font, Pango.GlyphString glyphs, int x, int y);
		public void draw_layout (Pango.Layout layout, int x, int y);
		public void draw_layout_line (Pango.LayoutLine line, int x, int y);
		public virtual void draw_rectangle (Pango.RenderPart part, int x, int y, int width, int height);
		[NoWrapper]
		public virtual void draw_shape (Pango.AttrShape attr, int x, int y);
		public virtual void draw_trapezoid (Pango.RenderPart part, double y1_, double x11, double x21, double y2, double x12, double x22);
		[NoWrapper]
		public virtual void end ();
		[Version (since = "1.38")]
		public uint16 get_alpha (Pango.RenderPart part);
		public unowned Pango.Color? get_color (Pango.RenderPart part);
		[Version (since = "1.20")]
		public unowned Pango.Layout? get_layout ();
		[Version (since = "1.20")]
		public unowned Pango.LayoutLine? get_layout_line ();
		public unowned Pango.Matrix? get_matrix ();
		public virtual void part_changed (Pango.RenderPart part);
		[NoWrapper]
		public virtual void prepare_run (Pango.LayoutRun run);
		[Version (since = "1.38")]
		public void set_alpha (Pango.RenderPart part, uint16 alpha);
		public void set_color (Pango.RenderPart part, Pango.Color? color);
		public void set_matrix (Pango.Matrix? matrix);
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_script_iter_get_type ()")]
	[Compact]
	public class ScriptIter {
		[CCode (has_construct_function = false)]
		[Version (since = "1.4")]
		public ScriptIter (string text, int length);
		[Version (since = "1.4")]
		public void free ();
		[Version (since = "1.4")]
		public void get_range (out string start, out string end, out Pango.Script script);
		[Version (since = "1.4")]
		public bool next ();
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_tab_array_get_type ()")]
	[Compact]
	public class TabArray {
		[CCode (has_construct_function = false)]
		public TabArray (int initial_size, bool positions_in_pixels);
		public Pango.TabArray copy ();
		public void free ();
		[Version (since = "1.50")]
		public static Pango.TabArray? from_string (string text);
		[Version (since = "1.50")]
		public unichar get_decimal_point (int tab_index);
		public bool get_positions_in_pixels ();
		public int get_size ();
		public void get_tab (int tab_index, out Pango.TabAlign alignment, out int location);
		public void get_tabs (out Pango.TabAlign alignments, [CCode (array_length = false)] out int[] locations);
		public void resize (int new_size);
		[Version (since = "1.50")]
		public void set_decimal_point (int tab_index, unichar decimal_point);
		[Version (since = "1.50")]
		public void set_positions_in_pixels (bool positions_in_pixels);
		public void set_tab (int tab_index, Pango.TabAlign alignment, int location);
		[Version (since = "1.50")]
		public void sort ();
		[Version (since = "1.50")]
		public string to_string ();
		[CCode (has_construct_function = false)]
		public TabArray.with_positions (int size, bool positions_in_pixels, Pango.TabAlign first_alignment, ...);
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	public struct Analysis {
		public void* shape_engine;
		public void* lang_engine;
		public weak Pango.Font font;
		public uint8 level;
		public uint8 gravity;
		public uint8 flags;
		public uint8 script;
		public weak Pango.Language language;
		public weak GLib.SList<void*> extra_attrs;
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_color_get_type ()")]
	public struct Color {
		public uint16 red;
		public uint16 green;
		public uint16 blue;
		public Pango.Color? copy ();
		public void free ();
		public bool parse (string spec);
		[Version (since = "1.46")]
		public bool parse_with_alpha (out uint16 alpha, string spec);
		[Version (since = "1.16")]
		public string to_string ();
	}
	[CCode (cheader_filename = "pango/pango.h")]
	[SimpleType]
	public struct Glyph : uint32 {
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	public struct GlyphGeometry {
		public Pango.GlyphUnit width;
		public Pango.GlyphUnit x_offset;
		public Pango.GlyphUnit y_offset;
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	public struct GlyphInfo {
		public Pango.Glyph glyph;
		public Pango.GlyphGeometry geometry;
		public Pango.GlyphVisAttr attr;
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_glyph_item_iter_get_type ()")]
	[Version (since = "1.22")]
	public struct GlyphItemIter {
		public weak Pango.GlyphItem glyph_item;
		public weak string text;
		public int start_glyph;
		public int start_index;
		public int start_char;
		public int end_glyph;
		public int end_index;
		public int end_char;
		public Pango.GlyphItemIter? copy ();
		public void free ();
		public bool init_end (Pango.GlyphItem glyph_item, string text);
		public bool init_start (Pango.GlyphItem glyph_item, string text);
		public bool next_cluster ();
		public bool prev_cluster ();
	}
	[CCode (cheader_filename = "pango/pango.h")]
	[SimpleType]
	public struct GlyphUnit : int32 {
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	public struct GlyphVisAttr {
		public uint is_cluster_start;
		public uint is_color;
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	public struct LogAttr {
		public uint is_line_break;
		public uint is_mandatory_break;
		public uint is_char_break;
		public uint is_white;
		public uint is_cursor_position;
		public uint is_word_start;
		public uint is_word_end;
		public uint is_sentence_boundary;
		public uint is_sentence_start;
		public uint is_sentence_end;
		public uint backspace_deletes_character;
		public uint is_expandable_space;
		public uint is_word_boundary;
		public uint break_inserts_hyphen;
		public uint break_removes_preceding;
		public uint reserved;
	}
	[CCode (cheader_filename = "pango/pango.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "pango_matrix_get_type ()")]
	[Version (since = "1.6")]
	public struct Matrix {
		public double xx;
		public double xy;
		public double yx;
		public double yy;
		public double x0;
		public double y0;
		public void concat (Pango.Matrix new_matrix);
		public Pango.Matrix? copy ();
		public void free ();
		[Version (since = "1.12")]
		public double get_font_scale_factor ();
		[Version (since = "1.38")]
		public void get_font_scale_factors (out double xscale, out double yscale);
		[Version (since = "1.50")]
		public double get_slant_ratio ();
		public void rotate (double degrees);
		public void scale (double scale_x, double scale_y);
		[Version (since = "1.16")]
		public void transform_distance (ref double dx, ref double dy);
		[Version (since = "1.16")]
		public void transform_pixel_rectangle (ref Pango.Rectangle rect);
		[Version (since = "1.16")]
		public void transform_point (ref double x, ref double y);
		[Version (since = "1.16")]
		public void transform_rectangle (ref Pango.Rectangle rect);
		public void translate (double tx, double ty);
	}
	[CCode (cheader_filename = "pango/pango.h", has_type_id = false)]
	public struct Rectangle {
		public int x;
		public int y;
		public int width;
		public int height;
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_ALIGN_", type_id = "pango_alignment_get_type ()")]
	public enum Alignment {
		LEFT,
		CENTER,
		RIGHT
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_ATTR_", type_id = "pango_attr_type_get_type ()")]
	public enum AttrType {
		INVALID,
		LANGUAGE,
		FAMILY,
		STYLE,
		WEIGHT,
		VARIANT,
		STRETCH,
		SIZE,
		FONT_DESC,
		FOREGROUND,
		BACKGROUND,
		UNDERLINE,
		STRIKETHROUGH,
		RISE,
		SHAPE,
		SCALE,
		FALLBACK,
		LETTER_SPACING,
		UNDERLINE_COLOR,
		STRIKETHROUGH_COLOR,
		ABSOLUTE_SIZE,
		GRAVITY,
		GRAVITY_HINT,
		FONT_FEATURES,
		FOREGROUND_ALPHA,
		BACKGROUND_ALPHA,
		ALLOW_BREAKS,
		SHOW,
		INSERT_HYPHENS,
		OVERLINE,
		OVERLINE_COLOR,
		LINE_HEIGHT,
		ABSOLUTE_LINE_HEIGHT,
		TEXT_TRANSFORM,
		WORD,
		SENTENCE,
		BASELINE_SHIFT,
		FONT_SCALE;
		[Version (since = "1.22")]
		public unowned string? get_name ();
		public static Pango.AttrType register (string name);
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_BASELINE_SHIFT_", type_id = "pango_baseline_shift_get_type ()")]
	[Version (since = "1.50")]
	public enum BaselineShift {
		NONE,
		SUPERSCRIPT,
		SUBSCRIPT
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_BIDI_TYPE_", type_id = "pango_bidi_type_get_type ()")]
	[Version (deprecated = true, deprecated_since = "1.44", since = "1.22")]
	public enum BidiType {
		L,
		LRE,
		LRO,
		R,
		AL,
		RLE,
		RLO,
		PDF,
		EN,
		ES,
		ET,
		AN,
		CS,
		NSM,
		BN,
		B,
		S,
		WS,
		ON,
		LRI,
		RLI,
		FSI,
		PDI;
		public static Pango.BidiType for_unichar (unichar ch);
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_COVERAGE_", type_id = "pango_coverage_level_get_type ()")]
	public enum CoverageLevel {
		NONE,
		FALLBACK,
		APPROXIMATE,
		EXACT
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_DIRECTION_", type_id = "pango_direction_get_type ()")]
	public enum Direction {
		LTR,
		RTL,
		TTB_LTR,
		TTB_RTL,
		WEAK_LTR,
		WEAK_RTL,
		NEUTRAL
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_ELLIPSIZE_", type_id = "pango_ellipsize_mode_get_type ()")]
	public enum EllipsizeMode {
		NONE,
		START,
		MIDDLE,
		END
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_FONT_MASK_", type_id = "pango_font_mask_get_type ()")]
	[Flags]
	public enum FontMask {
		FAMILY,
		STYLE,
		VARIANT,
		WEIGHT,
		STRETCH,
		SIZE,
		GRAVITY,
		VARIATIONS
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_FONT_SCALE_", type_id = "pango_font_scale_get_type ()")]
	[Version (since = "1.50")]
	public enum FontScale {
		NONE,
		SUPERSCRIPT,
		SUBSCRIPT,
		SMALL_CAPS
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_GRAVITY_", type_id = "pango_gravity_get_type ()")]
	[Version (since = "1.16")]
	public enum Gravity {
		SOUTH,
		EAST,
		NORTH,
		WEST,
		AUTO;
		public static Pango.Gravity get_for_matrix (Pango.Matrix? matrix);
		public static Pango.Gravity get_for_script (Pango.Script script, Pango.Gravity base_gravity, Pango.GravityHint hint);
		[Version (since = "1.26")]
		public static Pango.Gravity get_for_script_and_width (Pango.Script script, bool wide, Pango.Gravity base_gravity, Pango.GravityHint hint);
		public double to_rotation ();
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_GRAVITY_HINT_", type_id = "pango_gravity_hint_get_type ()")]
	[Version (since = "1.16")]
	public enum GravityHint {
		NATURAL,
		STRONG,
		LINE
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_LAYOUT_DESERIALIZE_", type_id = "pango_layout_deserialize_flags_get_type ()")]
	[Flags]
	[Version (since = "1.50")]
	public enum LayoutDeserializeFlags {
		DEFAULT,
		CONTEXT
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_LAYOUT_SERIALIZE_", type_id = "pango_layout_serialize_flags_get_type ()")]
	[Flags]
	[Version (since = "1.50")]
	public enum LayoutSerializeFlags {
		DEFAULT,
		CONTEXT,
		OUTPUT
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_OVERLINE_", type_id = "pango_overline_get_type ()")]
	[Version (since = "1.46")]
	public enum Overline {
		NONE,
		SINGLE
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_RENDER_PART_", type_id = "pango_render_part_get_type ()")]
	[Version (since = "1.8")]
	public enum RenderPart {
		FOREGROUND,
		BACKGROUND,
		UNDERLINE,
		STRIKETHROUGH,
		OVERLINE
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_SCRIPT_", type_id = "pango_script_get_type ()")]
	public enum Script {
		INVALID_CODE,
		COMMON,
		INHERITED,
		ARABIC,
		ARMENIAN,
		BENGALI,
		BOPOMOFO,
		CHEROKEE,
		COPTIC,
		CYRILLIC,
		DESERET,
		DEVANAGARI,
		ETHIOPIC,
		GEORGIAN,
		GOTHIC,
		GREEK,
		GUJARATI,
		GURMUKHI,
		HAN,
		HANGUL,
		HEBREW,
		HIRAGANA,
		KANNADA,
		KATAKANA,
		KHMER,
		LAO,
		LATIN,
		MALAYALAM,
		MONGOLIAN,
		MYANMAR,
		OGHAM,
		OLD_ITALIC,
		ORIYA,
		RUNIC,
		SINHALA,
		SYRIAC,
		TAMIL,
		TELUGU,
		THAANA,
		THAI,
		TIBETAN,
		CANADIAN_ABORIGINAL,
		YI,
		TAGALOG,
		HANUNOO,
		BUHID,
		TAGBANWA,
		BRAILLE,
		CYPRIOT,
		LIMBU,
		OSMANYA,
		SHAVIAN,
		LINEAR_B,
		TAI_LE,
		UGARITIC,
		NEW_TAI_LUE,
		BUGINESE,
		GLAGOLITIC,
		TIFINAGH,
		SYLOTI_NAGRI,
		OLD_PERSIAN,
		KHAROSHTHI,
		UNKNOWN,
		BALINESE,
		CUNEIFORM,
		PHOENICIAN,
		PHAGS_PA,
		NKO,
		KAYAH_LI,
		LEPCHA,
		REJANG,
		SUNDANESE,
		SAURASHTRA,
		CHAM,
		OL_CHIKI,
		VAI,
		CARIAN,
		LYCIAN,
		LYDIAN,
		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;
		[Version (deprecated = true, deprecated_since = "1.44.", since = "1.4")]
		public static Pango.Script for_unichar (unichar ch);
		[Version (since = "1.4")]
		public Pango.Language? get_sample_language ();
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_SHAPE_", type_id = "pango_shape_flags_get_type ()")]
	[Flags]
	[Version (since = "1.44")]
	public enum ShapeFlags {
		NONE,
		ROUND_POSITIONS
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_SHOW_", type_id = "pango_show_flags_get_type ()")]
	[Flags]
	[Version (since = "1.44")]
	public enum ShowFlags {
		NONE,
		SPACES,
		LINE_BREAKS,
		IGNORABLES
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_STRETCH_", type_id = "pango_stretch_get_type ()")]
	public enum Stretch {
		ULTRA_CONDENSED,
		EXTRA_CONDENSED,
		CONDENSED,
		SEMI_CONDENSED,
		NORMAL,
		SEMI_EXPANDED,
		EXPANDED,
		EXTRA_EXPANDED,
		ULTRA_EXPANDED
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_STYLE_", type_id = "pango_style_get_type ()")]
	public enum Style {
		NORMAL,
		OBLIQUE,
		ITALIC
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_TAB_", type_id = "pango_tab_align_get_type ()")]
	public enum TabAlign {
		LEFT,
		RIGHT,
		CENTER,
		DECIMAL
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_TEXT_TRANSFORM_", type_id = "pango_text_transform_get_type ()")]
	[Version (since = "1.50")]
	public enum TextTransform {
		NONE,
		LOWERCASE,
		UPPERCASE,
		CAPITALIZE
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_UNDERLINE_", type_id = "pango_underline_get_type ()")]
	public enum Underline {
		NONE,
		SINGLE,
		DOUBLE,
		LOW,
		ERROR,
		SINGLE_LINE,
		DOUBLE_LINE,
		ERROR_LINE
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_VARIANT_", type_id = "pango_variant_get_type ()")]
	public enum Variant {
		NORMAL,
		SMALL_CAPS,
		ALL_SMALL_CAPS,
		PETITE_CAPS,
		ALL_PETITE_CAPS,
		UNICASE,
		TITLE_CAPS
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_WEIGHT_", type_id = "pango_weight_get_type ()")]
	public enum Weight {
		THIN,
		ULTRALIGHT,
		LIGHT,
		SEMILIGHT,
		BOOK,
		NORMAL,
		MEDIUM,
		SEMIBOLD,
		BOLD,
		ULTRABOLD,
		HEAVY,
		ULTRAHEAVY
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_WRAP_", type_id = "pango_wrap_mode_get_type ()")]
	public enum WrapMode {
		WORD,
		CHAR,
		WORD_CHAR
	}
	[CCode (cheader_filename = "pango/pango.h", cprefix = "PANGO_LAYOUT_DESERIALIZE_", type_id = "pango_layout_deserialize_error_get_type ()")]
	[Version (since = "1.50")]
	public errordomain LayoutDeserializeError {
		INVALID,
		INVALID_VALUE,
		MISSING_VALUE;
		public static GLib.Quark quark ();
	}
	[CCode (cheader_filename = "pango/pango.h", has_target = false)]
	public delegate T AttrDataCopyFunc<T> (T data);
	[CCode (cheader_filename = "pango/pango.h", instance_pos = 1.9)]
	public delegate bool AttrFilterFunc (Pango.Attribute attribute);
	[CCode (cheader_filename = "pango/pango.h", instance_pos = 2.9)]
	[Version (since = "1.4")]
	public delegate bool FontsetForeachFunc (Pango.Fontset fontset, Pango.Font font);
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_ANALYSIS_FLAG_CENTERED_BASELINE")]
	[Version (since = "1.16")]
	public const int ANALYSIS_FLAG_CENTERED_BASELINE;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_ANALYSIS_FLAG_IS_ELLIPSIS")]
	[Version (since = "1.36.7")]
	public const int ANALYSIS_FLAG_IS_ELLIPSIS;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_ANALYSIS_FLAG_NEED_HYPHEN")]
	[Version (since = "1.44")]
	public const int ANALYSIS_FLAG_NEED_HYPHEN;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_ATTR_INDEX_FROM_TEXT_BEGINNING")]
	[Version (since = "1.24")]
	public const uint ATTR_INDEX_FROM_TEXT_BEGINNING;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_ATTR_INDEX_TO_TEXT_END")]
	[Version (since = "1.24")]
	public const uint ATTR_INDEX_TO_TEXT_END;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_GLYPH_EMPTY")]
	public const Pango.Glyph GLYPH_EMPTY;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_GLYPH_INVALID_INPUT")]
	[Version (since = "1.20")]
	public const Pango.Glyph GLYPH_INVALID_INPUT;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_GLYPH_UNKNOWN_FLAG")]
	public const Pango.Glyph GLYPH_UNKNOWN_FLAG;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_SCALE")]
	public const int SCALE;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_VERSION_MAJOR")]
	public const int VERSION_MAJOR;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_VERSION_MICRO")]
	public const int VERSION_MICRO;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_VERSION_MINOR")]
	public const int VERSION_MINOR;
	[CCode (cheader_filename = "pango/pango.h", cname = "PANGO_VERSION_STRING")]
	public const string VERSION_STRING;
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.44")]
	public static Pango.Attribute attr_allow_breaks_new (bool allow_breaks);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.38")]
	public static Pango.Attribute attr_background_alpha_new (uint16 alpha);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_background_new (uint16 red, uint16 green, uint16 blue);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.50")]
	public static Pango.Attribute attr_baseline_shift_new (int shift);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.50")]
	public static void attr_break (string text, int length, Pango.AttrList attr_list, int offset, [CCode (array_length_cname = "attrs_len", array_length_pos = 5.1)] Pango.LogAttr[] attrs);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.4")]
	public static Pango.Attribute attr_fallback_new (bool enable_fallback);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_family_new (string family);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "AttrFontDesc.new")]
	public static Pango.Attribute attr_font_desc_new (Pango.FontDescription desc);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.50")]
	public static Pango.Attribute attr_font_scale_new (Pango.FontScale scale);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.38")]
	public static Pango.Attribute attr_foreground_alpha_new (uint16 alpha);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_foreground_new (uint16 red, uint16 green, uint16 blue);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.16")]
	public static Pango.Attribute attr_gravity_hint_new (Pango.GravityHint hint);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.16")]
	public static Pango.Attribute attr_gravity_new (Pango.Gravity gravity);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.44")]
	public static Pango.Attribute attr_insert_hyphens_new (bool insert_hyphens);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.6")]
	public static Pango.Attribute attr_letter_spacing_new (int letter_spacing);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.50")]
	public static Pango.Attribute attr_line_height_new (double factor);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.50")]
	public static Pango.Attribute attr_line_height_new_absolute (int height);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "AttrList.from_string", since = "1.50")]
	public static Pango.AttrList? attr_list_from_string (string text);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.46")]
	public static Pango.Attribute attr_overline_color_new (uint16 red, uint16 green, uint16 blue);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.46")]
	public static Pango.Attribute attr_overline_new (Pango.Overline overline);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_rise_new (int rise);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_scale_new (double scale_factor);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.50")]
	public static Pango.Attribute attr_sentence_new ();
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.44")]
	public static Pango.Attribute attr_show_new (Pango.ShowFlags flags);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_stretch_new (Pango.Stretch stretch);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.8")]
	public static Pango.Attribute attr_strikethrough_color_new (uint16 red, uint16 green, uint16 blue);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_strikethrough_new (bool strikethrough);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_style_new (Pango.Style style);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.50")]
	public static Pango.Attribute attr_text_transform_new (Pango.TextTransform transform);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "AttrType.get_name", since = "1.22")]
	public static unowned string? attr_type_get_name (Pango.AttrType type);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "AttrType.register")]
	public static Pango.AttrType attr_type_register (string name);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.8")]
	public static Pango.Attribute attr_underline_color_new (uint16 red, uint16 green, uint16 blue);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_underline_new (Pango.Underline underline);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_variant_new (Pango.Variant variant);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Attribute attr_weight_new (Pango.Weight weight);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.50")]
	public static Pango.Attribute attr_word_new ();
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "BidiType.for_unichar", since = "1.22")]
	public static Pango.BidiType bidi_type_for_unichar (unichar ch);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.44")]
	public static void @break (string text, int length, Pango.Analysis analysis, [CCode (array_length_cname = "attrs_len", array_length_pos = 4.1)] Pango.LogAttr[] attrs);
	[CCode (cheader_filename = "pango/pango.h")]
	public static void default_break (string text, int length, Pango.Analysis? analysis, Pango.LogAttr attrs, int attrs_len);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.16")]
	public static void extents_to_pixels (Pango.Rectangle? inclusive, Pango.Rectangle? nearest);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.4")]
	public static Pango.Direction find_base_dir (string text, int length);
	[CCode (cheader_filename = "pango/pango.h")]
	public static void find_paragraph_boundary (string text, int length, out int paragraph_delimiter_index, out int next_paragraph_start);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "FontDescription.from_string")]
	public static Pango.FontDescription font_description_from_string (string str);
	[CCode (cheader_filename = "pango/pango.h")]
	public static void get_log_attrs (string text, int length, int level, Pango.Language language, [CCode (array_length_cname = "attrs_len", array_length_pos = 5.1)] Pango.LogAttr[] attrs);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.30")]
	public static bool get_mirror_char (unichar ch, unichar mirrored_ch);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "Gravity.get_for_matrix", since = "1.16")]
	public static Pango.Gravity gravity_get_for_matrix (Pango.Matrix? matrix);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "Gravity.get_for_script", since = "1.16")]
	public static Pango.Gravity gravity_get_for_script (Pango.Script script, Pango.Gravity base_gravity, Pango.GravityHint hint);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "Gravity.get_for_script_and_width", since = "1.26")]
	public static Pango.Gravity gravity_get_for_script_and_width (Pango.Script script, bool wide, Pango.Gravity base_gravity, Pango.GravityHint hint);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "Gravity.to_rotation", since = "1.16")]
	public static double gravity_to_rotation (Pango.Gravity gravity);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.10")]
	public static bool is_zero_width (unichar ch);
	[CCode (cheader_filename = "pango/pango.h")]
	public static GLib.List<Pango.Item> itemize (Pango.Context context, string text, int start_index, int length, Pango.AttrList attrs, Pango.AttrIterator? cached_iter);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.4")]
	public static GLib.List<Pango.Item> itemize_with_base_dir (Pango.Context context, Pango.Direction base_dir, string text, int start_index, int length, Pango.AttrList attrs, Pango.AttrIterator? cached_iter);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "Language.from_string")]
	public static unowned Pango.Language? language_from_string (string? language);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "Language.get_default", since = "1.16")]
	public static unowned Pango.Language language_get_default ();
	[CCode (array_length = false, array_null_terminated = true, cheader_filename = "pango/pango.h")]
	[Version (replacement = "Language.get_preferred", since = "1.48")]
	public static unowned Pango.Language[]? language_get_preferred ();
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "LayoutDeserializeError.quark")]
	public static GLib.Quark layout_deserialize_error_quark ();
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.4")]
	public static uint8 log2vis_get_embedding_levels (string text, int length, ref Pango.Direction pbase_dir);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.31.0")]
	public static bool markup_parser_finish (GLib.MarkupParseContext context, out Pango.AttrList attr_list, out string text, out unichar accel_char) throws GLib.Error;
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.31.0")]
	public static unowned GLib.MarkupParseContext markup_parser_new (unichar accel_marker);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.38", since = "1.16")]
	public static bool parse_enum (GLib.Type type, string? str, out int value, bool warn, out string possible_values);
	[CCode (cheader_filename = "pango/pango.h")]
	public static bool parse_markup (string markup_text, int length, unichar accel_marker, out Pango.AttrList attr_list, out string text, out unichar accel_char) throws GLib.Error;
	[CCode (cheader_filename = "pango/pango.h")]
	public static bool parse_stretch (string str, out Pango.Stretch stretch, bool warn);
	[CCode (cheader_filename = "pango/pango.h")]
	public static bool parse_style (string str, out Pango.Style style, bool warn);
	[CCode (cheader_filename = "pango/pango.h")]
	public static bool parse_variant (string str, out Pango.Variant variant, bool warn);
	[CCode (cheader_filename = "pango/pango.h")]
	public static bool parse_weight (string str, out Pango.Weight weight, bool warn);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.12")]
	public static void quantize_line_geometry (ref int thickness, ref int position);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.38")]
	public static int read_line ([CCode (type = "FILE*")] GLib.FileStream stream, GLib.StringBuilder str);
	[CCode (cheader_filename = "pango/pango.h")]
	public static GLib.List<Pango.Item> reorder_items (GLib.List<Pango.Item> items);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.38")]
	public static bool scan_int (ref string pos, out int @out);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.38")]
	public static bool scan_string (ref string pos, GLib.StringBuilder @out);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.38")]
	public static bool scan_word (ref string pos, GLib.StringBuilder @out);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.44.", replacement = "Script.for_unichar", since = "1.4")]
	public static Pango.Script script_for_unichar (unichar ch);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "Script.get_sample_language", since = "1.4")]
	public static Pango.Language? script_get_sample_language (Pango.Script script);
	[CCode (cheader_filename = "pango/pango.h")]
	public static void shape (string text, int length, Pango.Analysis analysis, Pango.GlyphString glyphs);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.32")]
	public static void shape_full (string item_text, int item_length, string? paragraph_text, int paragraph_length, Pango.Analysis analysis, Pango.GlyphString glyphs);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.50")]
	public static void shape_item (Pango.Item item, string? paragraph_text, int paragraph_length, Pango.LogAttr? log_attrs, Pango.GlyphString glyphs, Pango.ShapeFlags flags);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.44")]
	public static void shape_with_flags (string item_text, int item_length, string? paragraph_text, int paragraph_length, Pango.Analysis analysis, Pango.GlyphString glyphs, Pango.ShapeFlags flags);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.38")]
	public static bool skip_space (ref string pos);
	[CCode (array_length = false, array_null_terminated = true, cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.38")]
	public static string[] split_file_list (string str);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (replacement = "TabArray.from_string", since = "1.50")]
	public static Pango.TabArray? tab_array_from_string (string text);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.44")]
	public static void tailor_break (string text, int length, Pango.Analysis analysis, int offset, [CCode (array_length_cname = "attrs_len", array_length_pos = 5.1)] Pango.LogAttr[] attrs);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (deprecated = true, deprecated_since = "1.38")]
	public static string trim_string (string str);
	[CCode (cheader_filename = "pango/pango.h")]
	public static Pango.Direction unichar_direction (unichar ch);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.16")]
	public static int units_from_double (double d);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.16")]
	public static double units_to_double (int i);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.16")]
	public static int version ();
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.16")]
	public static unowned string? version_check (int required_major, int required_minor, int required_micro);
	[CCode (cheader_filename = "pango/pango.h")]
	[Version (since = "1.16")]
	public static unowned string version_string ();
}
