sig
  type t
  val createFromFile : filename:string -> SFFont.t
  val createFromMemory : data:string -> SFFont.t
  val copy : SFFont.t -> SFFont.t
  type glyph = {
    advance : float;
    bounds : float SFRect.t;
    textureRect : int SFRect.t;
  }
  val getGlyph :
    SFFont.t ->
    codePoint:int32 -> characterSize:int -> bold:bool -> SFFont.glyph
  val getKerning :
    SFFont.t -> first:int32 -> second:int32 -> characterSize:int -> float
  val getLineSpacing : SFFont.t -> characterSize:int -> float
  val getUnderlinePosition : SFFont.t -> characterSize:int -> float
  val getUnderlineThickness : SFFont.t -> characterSize:int -> float
  type info = { family : string; }
  val getInfo : SFFont.t -> SFFont.info
end