sig
  exception FT_Error of int
  type ft_library
  type ft_face
  val init_freetype : unit -> Cairo_ft.ft_library
  external done_freetype : Cairo_ft.ft_library -> unit
    = "ml_FT_Done_FreeType"
  external new_face :
    Cairo_ft.ft_library -> ?index:int -> string -> Cairo_ft.ft_face
    = "ml_FT_New_Face"
  external done_face : Cairo_ft.ft_face -> unit = "ml_FT_Done_Face"
  type fc_pattern
  external fc_name_parse :
    ?options:Cairo.Font_Options.t -> string -> Cairo_ft.fc_pattern
    = "ml_FcNameParse"
  external fc_name_unparse : Cairo_ft.fc_pattern -> string
    = "ml_FcNameUnparse"
  type font_face = [ `Any | `FT ] Cairo.font_face
  external font_face_create_for_pattern :
    Cairo_ft.fc_pattern -> Cairo_ft.font_face
    = "ml_cairo_ft_font_face_create_for_pattern"
  external font_face_create_for_ft_face :
    Cairo_ft.ft_face -> int -> Cairo_ft.font_face
    = "ml_cairo_ft_font_face_create_for_ft_face"
  val downcast_font_face : [> `Any ] Cairo.font_face -> Cairo_ft.font_face
  val downcast_scaled_font :
    [> `Any ] Cairo.Scaled_Font.t -> [ `Any | `FT ] Cairo.Scaled_Font.t
  external font_lock_face : [> `FT ] Cairo.Scaled_Font.t -> Cairo_ft.ft_face
    = "ml_cairo_ft_scaled_font_lock_face"
  external font_unlock_face : [> `FT ] Cairo.Scaled_Font.t -> unit
    = "ml_cairo_ft_scaled_font_unlock_face"
end