sig
  type t
  val create : unit -> SFString.t
  val make :
    ?size:float ->
    ?font:SFFont.t ->
    ?color:SFColor.t ->
    ?blend:SFBlendMode.t ->
    ?pos:float * float ->
    ?rotation:float -> ?scale:float * float -> string -> SFString.t
  val setText : text:SFString.t -> str:string -> unit
  val setSize : text:SFString.t -> size:float -> unit
  val setFont : text:SFString.t -> font:SFFont.t -> unit
  val setPosition : text:SFString.t -> left:float -> top:float -> unit
  val setPosition2 : text:SFString.t -> pos:float * float -> unit
  val setColor : text:SFString.t -> color:SFColor.t -> unit
  val setRotation : text:SFString.t -> rotation:float -> unit
  val setScale : text:SFString.t -> scaleX:float -> scaleY:float -> unit
  val move : text:SFString.t -> offsetX:float -> offsetY:float -> unit
  val move2 : text:SFString.t -> offset:float * float -> unit
  val rotate : text:SFString.t -> angle:float -> unit
  val scale : text:SFString.t -> factorX:float -> factorY:float -> unit
  val scale2 : text:SFString.t -> factor:float * float -> unit
  val setBlendMode : text:SFString.t -> mode:SFBlendMode.t -> unit
  val getX : text:SFString.t -> float
  val getY : text:SFString.t -> float
  val getXY : text:SFString.t -> float * float
  val getRect : text:SFString.t -> float SFRect.t
end