Module Websocket
module Connection_close_reason : sig ... end
module Websocket_role : sig ... end
val create : ?opcode:[ `Text | `Binary ] -> role:Websocket_role.t -> Async.Reader.t -> Async.Writer.t -> t
val pipes : t -> string Async.Pipe.Reader.t * string Async.Pipe.Writer.t
val close_finished : t -> (Connection_close_reason.t * string * Core.Info.t option) Async.Deferred.t