(** Represent the {!module:Sheet} *) type screen (** Initialise thee screen *) val init: unit -> screen val close: screen -> unit (** {2 Screen updates} *) val draw: Sheet.t -> screen -> screen val draw_input: Sheet.t -> screen -> screen val resize: Sheet.t -> screen -> screen (** Display a message in the status bar. *) val status: screen -> UTF8.t -> unit (** {2 User inputs} *) (** Wait for a keycode *) val read_key : screen -> string (** The keycode is always NULL terminated *) val search: screen -> UTF8.t val get_cell: screen -> int * int -> (int * int) option val editor: ?position: int * int -> ?prefix:UTF8.t -> ?init:UTF8.t -> screen -> UTF8.t option