sig
  exception NewtFailure of string
  type color_set = Newt_int.newtColorSet
  type colors = Newt_int.newtColors
  type flags_sense = Newt_int.newtFlagsSense
  type flag =
      RETURNEXIT
    | HIDDEN
    | SCROLL
    | DISABLED
    | BORDER
    | WRAP
    | NOF12
    | MULTIPLE
    | SELECTED
    | CHECKBOX
    | PASSWORD
    | SHOWCURSOR
  type fd_flag = FD_READ | FD_WRITE | FD_EXCEPT
  val init : unit -> unit
  val finished : unit -> unit
  val init_and_finish : (unit -> 'a) -> 'a
  val cls : unit -> unit
  val resize_screen : int -> unit
  val wait_for_key : unit -> unit
  val clear_key_buffer : unit -> unit
  val delay : int -> unit
  val open_window : int -> int -> int -> int -> string -> unit
  val centered_window : int -> int -> string -> unit
  val pop_window : unit -> unit
  val pop_window_no_refresh : unit -> unit
  val set_colors : Newt_int.newtColors -> unit
  val set_color : Newt_int.newtColorSet -> string -> string -> unit
  val refresh : unit -> unit
  val suspend : unit -> unit
  val resume : unit -> int
  val push_help_line : string -> unit
  val redraw_help_line : unit -> unit
  val pop_help_line : unit -> unit
  val draw_root_text : int -> int -> string -> unit
  val bell : unit -> unit
  val cursor_on : unit -> unit
  val cursor_off : unit -> unit
  val get_screen_size : unit -> int * int
  type 'a component = Newt._component
  and _component
  type component_ptr
  val component_equals :
    Newt.component_ptr -> [> `Component ] Newt.component -> bool
  val compact_button :
    int -> int -> string -> [ `Button | `Component ] Newt.component
  val button :
    int -> int -> string -> [ `Button | `Component ] Newt.component
  val checkbox :
    int ->
    int ->
    string ->
    char -> string option -> [ `Checkbox | `Component ] Newt.component
  val checkbox_get_value : [> `Checkbox ] Newt.component -> char
  val checkbox_set_value : [> `Checkbox ] Newt.component -> char -> unit
  val checkbox_set_flags :
    [> `Checkbox ] Newt.component ->
    Newt.flag list -> Newt_int.newtFlagsSense -> unit
  val radio_button :
    int ->
    int ->
    string ->
    bool ->
    [> `Radio ] Newt.component option ->
    [ `Component | `Radio ] Newt.component
  val radio_get_current : [> `Radio ] Newt.component -> Newt.component_ptr
  val label : int -> int -> string -> [ `Component | `Label ] Newt.component
  val label_set_text : [> `Label ] Newt.component -> string -> unit
  val vertical_scrollbar :
    int ->
    int ->
    int ->
    Newt.color_set ->
    Newt.color_set -> [ `Component | `VerticalScrollbar ] Newt.component
  val scrollbar_set :
    [> `VerticalScrollbar ] Newt.component -> int -> int -> unit
  type 'a listbox
  val listbox : int -> int -> int -> Newt.flag list -> 'Newt.listbox
  val listbox_get_current : 'Newt.listbox -> 'a option
  val listbox_set_current : 'Newt.listbox -> int -> unit
  val listbox_set_current_by_key : 'Newt.listbox -> '-> unit
  val listbox_set_entry : 'Newt.listbox -> int -> string -> unit
  val listbox_set_width : 'Newt.listbox -> int -> unit
  val listbox_set_data : 'Newt.listbox -> int -> '-> unit
  val listbox_append_entry : 'Newt.listbox -> string -> '-> unit
  val listbox_insert_entry :
    'Newt.listbox -> string -> '-> 'a option -> unit
  val listbox_delete_entry : 'Newt.listbox -> '-> unit
  val listbox_clear : 'Newt.listbox -> unit
  val listbox_get_entry : 'Newt.listbox -> int -> string * 'a
  val listbox_get_selection : 'Newt.listbox -> 'a array
  val listbox_clear_selection : 'Newt.listbox -> unit
  val listbox_select_item : 'Newt.listbox -> '-> Newt.flags_sense -> unit
  val listbox_item_count : 'Newt.listbox -> int
  val component_of_listbox :
    'Newt.listbox -> [ `Component | `Listbox ] Newt.component
  val textbox_reflowed :
    int ->
    int ->
    string ->
    int ->
    int -> int -> Newt.flag list -> [ `Component | `Textbox ] Newt.component
  val textbox :
    int ->
    int ->
    int -> int -> Newt.flag list -> [ `Component | `Textbox ] Newt.component
  val textbox_set_text : [> `Textbox ] Newt.component -> string -> unit
  val textbox_set_height : [> `Textbox ] Newt.component -> int -> unit
  val textbox_get_num_lines : [> `Textbox ] Newt.component -> int
  val reflow_text : string -> int -> int -> int -> string * int * int
  val entry :
    int ->
    int ->
    string option ->
    int -> Newt.flag list -> [ `Component | `Entry ] Newt.component
  val entry_set : [> `Entry ] Newt.component -> string -> bool -> unit
  val entry_get_value : [> `Entry ] Newt.component -> string
  val entry_set_flags :
    [> `Entry ] Newt.component -> Newt.flag list -> Newt.flags_sense -> unit
  val scale :
    int -> int -> int -> int64 -> [ `Component | `Scale ] Newt.component
  val scale_set : [> `Scale ] Newt.component -> int64 -> unit
  val form :
    [> `VerticalScrollbar ] Newt.component option ->
    string option -> Newt.flag list -> [ `Component | `Form ] Newt.component
  val form_set_timer : [> `Form ] Newt.component -> int -> unit
  val form_watch_fd :
    [> `Form ] Newt.component -> Unix.file_descr -> Newt.fd_flag list -> unit
  val form_set_size : [> `Form ] Newt.component -> unit
  val form_get_current : [> `Form ] Newt.component -> Newt.component_ptr
  val form_set_background : [> `Form ] Newt.component -> int -> unit
  val form_set_current :
    [> `Form ] Newt.component -> [> `Component ] Newt.component -> unit
  val form_add_component :
    [> `Form ] Newt.component -> [> `Component ] Newt.component -> unit
  val form_add_components :
    [> `Form ] Newt.component -> [> `Component ] Newt.component list -> unit
  val form_set_height : [> `Form ] Newt.component -> int -> unit
  val form_set_width : [> `Form ] Newt.component -> int -> unit
  val run_form : [> `Form ] Newt.component -> Newt.component_ptr option
  val form_run : [> `Form ] Newt.component -> Newt_int.newtExitStruct
  val form_add_hot_key : [> `Form ] Newt.component -> int -> unit
  val component_takes_focus : [> `Component ] Newt.component -> bool -> unit
  val component_add_callback :
    [> `Component ] Newt.component -> (unit -> unit) -> unit
end