sig
  type mode =
      [ `cross_fade
      | `cube_down
      | `cube_left
      | `cube_right
      | `cube_up
      | `page_down
      | `page_left
      | `page_right
      | `page_up
      | `rotate_x_center_axis
      | `rotate_xz_center_axis
      | `rotate_y_center_axis
      | `rotate_yz_center_axis ]
  type interaction = [ `cube | `none | `page | `rotate ]
  type direction = [ `down | `left | `right | `up ]
  val add : Evas.obj -> Evas.obj
  val addx : Elm_object.t_addx
  val front_visible_get : Evas.obj -> bool
  val perspective_set : Evas.obj -> int -> int -> int -> unit
  val go : Evas.obj -> Elm_flip.mode -> unit
  val go_to : Evas.obj -> bool -> Elm_flip.mode -> unit
  val interaction_set : Evas.obj -> Elm_flip.interaction -> unit
  val interaction_get : Evas.obj -> Elm_flip.interaction
  val interaction_direction_enabled_set :
    Evas.obj -> Elm_flip.direction -> bool -> unit
  val interaction_direction_enabled_get :
    Evas.obj -> Elm_flip.direction -> bool
  val interaction_direction_hitsize_set :
    Evas.obj -> Elm_flip.direction -> float -> unit
  val interaction_direction_hitsize_get :
    Evas.obj -> Elm_flip.direction -> float
end