sig
  type t
  val close : t -> Int_result.unit
  val close_noerr : t -> unit
  val close_wait : t -> unit Lwt.t
  val is_active : t -> bool
  val ref' : t -> unit
  val unref : t -> unit
  val has_ref : t -> bool
  val to_handle : Uwt.Process.t -> Uwt.Handle.t
  type stdio =
      Inherit_file of file
    | Create_pipe of Uwt.Pipe.t
    | Inherit_pipe of Uwt.Pipe.t
    | Inherit_stream of Uwt.Stream.t
    | Create_pipe_read of Uwt.Pipe.t
    | Create_pipe_write of Uwt.Pipe.t
    | Create_pipe_duplex of Uwt.Pipe.t
  type exit_cb = Uwt.Process.t -> exit_status:int -> term_signal:int -> unit
  val spawn :
    ?stdin:Uwt.Process.stdio ->
    ?stdout:Uwt.Process.stdio ->
    ?stderr:Uwt.Process.stdio ->
    ?uid:int ->
    ?gid:int ->
    ?verbatim_arguments:bool ->
    ?detach:bool ->
    ?hide:bool ->
    ?env:string list ->
    ?cwd:string ->
    ?exit_cb:Uwt.Process.exit_cb ->
    string -> string list -> Uwt.Process.t uv_result
  val spawn_exn :
    ?stdin:Uwt.Process.stdio ->
    ?stdout:Uwt.Process.stdio ->
    ?stderr:Uwt.Process.stdio ->
    ?uid:int ->
    ?gid:int ->
    ?verbatim_arguments:bool ->
    ?detach:bool ->
    ?hide:bool ->
    ?env:string list ->
    ?cwd:string ->
    ?exit_cb:Uwt.Process.exit_cb -> string -> string list -> Uwt.Process.t
  val disable_stdio_inheritance : unit -> unit
  val pid : Uwt.Process.t -> Int_result.int
  val pid_exn : Uwt.Process.t -> int
  val process_kill : Uwt.Process.t -> int -> Int_result.unit
  val process_kill_exn : Uwt.Process.t -> int -> unit
  val kill : pid:int -> signum:int -> Int_result.unit
  val kill_exn : pid:int -> signum:int -> unit
end