sig
  module Font_map :
    sig
      type t = [ `cairo | `pangofontmap ] Gobject.obj
      val get_default : unit -> Pango.font_map
      val set_default : Cairo_pango.Font_map.t -> unit
      val create : unit -> Pango.font_map
      val create_for_font_type : Cairo.font_type -> Pango.font_map
      val get_font_type : Cairo_pango.Font_map.t -> Cairo.font_type
      val set_resolution : Cairo_pango.Font_map.t -> float -> unit
      val get_resolution : Cairo_pango.Font_map.t -> float
      val create_context : Pango.font_map -> Pango.context
    end
  type cairo_font = [ `cairo | `pangofont ] Gobject.obj
  val get_scaled_font : Cairo_pango.cairo_font -> 'Cairo.Scaled_font.t
  val set_resolution : Pango.context -> float -> unit
  val get_resolution : Pango.context -> float
  val set_font_options : Pango.context -> Cairo.Font_options.t -> unit
  val get_font_options : Pango.context -> Cairo.Font_options.t
  val create_context : Cairo.context -> Pango.context
  val update_context : Cairo.context -> Pango.context -> unit
  val create_layout : Cairo.context -> Pango.layout
  val update_layout : Cairo.context -> Pango.layout -> unit
  val show_layout : Cairo.context -> Pango.layout -> unit
  val show_error_underline :
    Cairo.context -> float -> float -> w:float -> h:float -> unit
  val layout_path : Cairo.context -> Pango.layout -> unit
  val error_underline_path :
    Cairo.context -> float -> float -> w:float -> h:float -> unit
end