sig
  type t = Tsdl.Sdl.event_type
  val text_input : Bogue.Trigger.t
  val key_down : Bogue.Trigger.t
  val key_up : Bogue.Trigger.t
  val startup : Bogue.Trigger.t
  val mouse_enter : Bogue.Trigger.t
  val mouse_leave : Bogue.Trigger.t
  val mouse_at_rest : Bogue.Trigger.t
  val var_changed : Bogue.Trigger.t
  val update : Bogue.Trigger.t
  val user_event : Bogue.Trigger.t
  val buttons_down : Bogue.Trigger.t list
  val buttons_up : Bogue.Trigger.t list
  val pointer_motion : Bogue.Trigger.t list
  val should_exit : Tsdl.Sdl.event -> bool
  val will_exit : Tsdl.Sdl.event -> unit
  val nice_delay : Tsdl.Sdl.event -> float -> unit
  val push_quit : unit -> unit
  val wait_for :
    ?timeout:float -> ?ev:Tsdl.Sdl.event -> (unit -> bool) -> unit
  type sdl_event =
      [ `App_did_enter_background
      | `App_did_enter_foreground
      | `App_low_memory
      | `App_terminating
      | `App_will_enter_background
      | `App_will_enter_foreground
      | `Clipboard_update
      | `Controller_axis_motion
      | `Controller_button_down
      | `Controller_button_up
      | `Controller_device_added
      | `Controller_device_remapped
      | `Controller_device_removed
      | `Display_event
      | `Dollar_gesture
      | `Dollar_record
      | `Drop_file
      | `Finger_down
      | `Finger_motion
      | `Finger_up
      | `Joy_axis_motion
      | `Joy_ball_motion
      | `Joy_button_down
      | `Joy_button_up
      | `Joy_device_added
      | `Joy_device_removed
      | `Joy_hat_motion
      | `Key_down
      | `Key_up
      | `Mouse_button_down
      | `Mouse_button_up
      | `Mouse_motion
      | `Mouse_wheel
      | `Multi_gesture
      | `Quit
      | `Sensor_update
      | `Sys_wm_event
      | `Text_editing
      | `Text_input
      | `Unknown of int
      | `User_event
      | `Window_event ]
  type bogue_event =
      [ `Bogue_destroy_window
      | `Bogue_keyboard_focus
      | `Bogue_keymap_changed
      | `Bogue_mouse_at_rest
      | `Bogue_mouse_enter
      | `Bogue_mouse_focus
      | `Bogue_mouse_leave
      | `Bogue_redraw
      | `Bogue_remove_layout
      | `Bogue_startup
      | `Bogue_stop
      | `Bogue_stopped
      | `Bogue_sync_action
      | `Bogue_update
      | `Bogue_var_changed ]
  val event_kind :
    Tsdl.Sdl.event ->
    [ `App_did_enter_background
    | `App_did_enter_foreground
    | `App_low_memory
    | `App_terminating
    | `App_will_enter_background
    | `App_will_enter_foreground
    | `Bogue_destroy_window
    | `Bogue_keyboard_focus
    | `Bogue_keymap_changed
    | `Bogue_mouse_at_rest
    | `Bogue_mouse_enter
    | `Bogue_mouse_focus
    | `Bogue_mouse_leave
    | `Bogue_redraw
    | `Bogue_remove_layout
    | `Bogue_startup
    | `Bogue_stop
    | `Bogue_stopped
    | `Bogue_sync_action
    | `Bogue_update
    | `Bogue_var_changed
    | `Clipboard_update
    | `Controller_axis_motion
    | `Controller_button_down
    | `Controller_button_up
    | `Controller_device_added
    | `Controller_device_remapped
    | `Controller_device_removed
    | `Display_event
    | `Dollar_gesture
    | `Dollar_record
    | `Drop_file
    | `Finger_down
    | `Finger_motion
    | `Finger_up
    | `Joy_axis_motion
    | `Joy_ball_motion
    | `Joy_button_down
    | `Joy_button_up
    | `Joy_device_added
    | `Joy_device_removed
    | `Joy_hat_motion
    | `Key_down
    | `Key_up
    | `Mouse_button_down
    | `Mouse_button_up
    | `Mouse_motion
    | `Mouse_wheel
    | `Multi_gesture
    | `Quit
    | `Sensor_update
    | `Sys_wm_event
    | `Text_editing
    | `Text_input
    | `Unknown of int
    | `User_event
    | `Window_event ]
end