sig
  module Client_message :
    sig
      type t
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
  module Server_message :
    sig
      type t
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
  module Transport :
    sig
      type t
      val create :
        Import.Reader.t ->
        Import.Writer.t -> Typed_tcp_intf.Arg.Transport.t Import.Deferred.t
      val close : Typed_tcp_intf.Arg.Transport.t -> unit Import.Deferred.t
      val read :
        Typed_tcp_intf.Arg.Transport.t ->
        [ `Eof | `Ok of Typed_tcp_intf.Arg.Client_message.t ]
        Import.Deferred.t
      val write :
        Typed_tcp_intf.Arg.Transport.t ->
        Typed_tcp_intf.Arg.Server_message.t -> unit
      val flushed_time :
        Typed_tcp_intf.Arg.Transport.t -> Core.Std.Time.t Import.Deferred.t
    end
end