sig
  type board
  type shortcuts
  exception Exit
  val exit_on_escape : int * int * (Bogue.Main.board -> unit)
  val create :
    ?shortcuts:Bogue.Main.shortcuts ->
    ?connections:Bogue.Widget.connection list ->
    ?on_user_event:(Tsdl.Sdl.event -> unit) ->
    Bogue.Window.t list -> Bogue.Main.board
  val get_monitor_refresh_rate : Bogue.Main.board -> int option
  val of_windows :
    ?shortcuts:Bogue.Main.shortcuts ->
    ?connections:Bogue.Widget.connection list ->
    ?on_user_event:(Tsdl.Sdl.event -> unit) ->
    Bogue.Window.t list -> Bogue.Main.board
  val of_layouts :
    ?shortcuts:Bogue.Main.shortcuts ->
    ?connections:Bogue.Widget.connection list ->
    ?on_user_event:(Tsdl.Sdl.event -> unit) ->
    Bogue.Layout.t list -> Bogue.Main.board
  val of_layout :
    ?shortcuts:Bogue.Main.shortcuts ->
    ?connections:Bogue.Widget.connection list ->
    ?on_user_event:(Tsdl.Sdl.event -> unit) ->
    Bogue.Layout.t -> Bogue.Main.board
  val make :
    ?shortcuts:Bogue.Main.shortcuts ->
    Bogue.Widget.connection list -> Bogue.Layout.t list -> Bogue.Main.board
  val run :
    ?vsync:bool ->
    ?before_display:(unit -> unit) ->
    ?after_display:(unit -> unit) -> Bogue.Main.board -> unit
  type shortcut_action = Bogue.Main.board -> unit
  val shortcuts_empty : unit -> Bogue.Main.shortcuts
  val shortcuts_add :
    Bogue.Main.shortcuts ->
    ?keymod:Tsdl.Sdl.keymod ->
    int -> Bogue.Main.shortcut_action -> Bogue.Main.shortcuts
  val shortcuts_add_ctrl :
    Bogue.Main.shortcuts ->
    int -> Bogue.Main.shortcut_action -> Bogue.Main.shortcuts
  val shortcuts_add_ctrl_shift :
    Bogue.Main.shortcuts ->
    int -> Bogue.Main.shortcut_action -> Bogue.Main.shortcuts
  val shortcuts_of_list :
    (int * int * Bogue.Main.shortcut_action) list -> Bogue.Main.shortcuts
  val make_sdl_windows :
    ?windows:Tsdl.Sdl.window list -> Bogue.Main.board -> unit
  val refresh_custom_windows : Bogue.Main.board -> unit
  val one_step :
    ?before_display:(unit -> unit) ->
    bool ->
    (unit -> unit) * (unit -> unit) ->
    ?clear:bool -> Bogue.Main.board -> bool
  val get_frame : unit -> int
  val quit : unit -> unit
end