sig   val get_acp : unit -> int   val get_console_cp : unit -> int   val set_console_cp : int -> unit   val get_console_output_cp : unit -> int   val set_console_output_cp : int -> unit   type input = Resize | Key of LTerm_key.t | Mouse of LTerm_mouse.t   val read_console_input : Lwt_unix.file_descr -> LTerm_windows.input Lwt.t   type text_attributes = { foreground : int; background : int; }   type console_screen_buffer_info = {     size : LTerm_geom.size;     cursor_position : LTerm_geom.coord;     attributes : LTerm_windows.text_attributes;     window : LTerm_geom.rect;     maximum_window_size : LTerm_geom.size;   }   val get_console_screen_buffer_info :     Lwt_unix.file_descr -> LTerm_windows.console_screen_buffer_info   type console_mode = {     cm_echo_input : bool;     cm_insert_mode : bool;     cm_line_input : bool;     cm_mouse_input : bool;     cm_processed_input : bool;     cm_quick_edit_mode : bool;     cm_window_input : bool;   }   val get_console_mode : Lwt_unix.file_descr -> LTerm_windows.console_mode   val set_console_mode :     Lwt_unix.file_descr -> LTerm_windows.console_mode -> unit   val get_console_cursor_info : Lwt_unix.file_descr -> int * bool   val set_console_cursor_info : Lwt_unix.file_descr -> int -> bool -> unit   val set_console_cursor_position :     Lwt_unix.file_descr -> LTerm_geom.coord -> unit   val set_console_text_attribute :     Lwt_unix.file_descr -> LTerm_windows.text_attributes -> unit   type char_info = {     ci_char : CamomileLibrary.UChar.t;     ci_foreground : int;     ci_background : int;   }   val write_console_output :     Lwt_unix.file_descr ->     LTerm_windows.char_info array array ->     LTerm_geom.size -> LTerm_geom.coord -> LTerm_geom.rect -> LTerm_geom.rect   val fill_console_output_character :     Lwt_unix.file_descr ->     CamomileLibrary.UChar.t -> int -> LTerm_geom.coord -> int end