sig
  type mouse_button =
      ButtonLeft
    | ButtonRight
    | ButtonMiddle
    | ButtonX1
    | ButtonX2
  type mouse_wheel = VerticalWheel | HorizontalWheel
  external getButtonCount : unit -> int = "caml_sfMouseButtonCount"
  external isButtonPressed : button:SFMouse.mouse_button -> bool
    = "caml_sfMouse_isButtonPressed"
  external getPosition : unit -> int * int = "caml_sfMouse_getPosition"
  external setPosition : pos:int * int -> unit = "caml_sfMouse_setPosition"
  val string_of_button : SFMouse.mouse_button -> string
  val button_of_string : string -> SFMouse.mouse_button
  val string_of_wheel : SFMouse.mouse_wheel -> string
  val wheel_of_string : string -> SFMouse.mouse_wheel
end