sig
  module Server :
    sig
      module File : sig type t = Tcp_file.Server.File.t end
      val serve :
        auth:(Import.Socket.inet -> bool) ->
        port:int -> unit Import.Deferred.t
      val open_file :
        ?append:bool ->
        ?dos_format:bool -> string -> File.t Import.Deferred.t
      val serve_existing_static_file : string -> unit Import.Deferred.t
      val stop_serving : File.t -> unit
      val close : ?stop_serving:bool -> File.t -> unit Import.Deferred.t
      val write_message : File.t -> string -> unit
      val schedule_message : File.t -> Core.Std.Bigstring.t -> unit
      val write_sexp : File.t -> Core.Std.Sexp.t -> unit
      val flushed : File.t -> unit Import.Deferred.t
      val with_file :
        ?append:bool ->
        string -> f:(File.t -> 'Import.Deferred.t) -> 'Import.Deferred.t
      val writer_monitor :
        File.t ->
        (Import.Monitor.t, [ `This_is_a_static_file ]) Core.Std.Result.t
      val debug_snapshot : unit -> Core.Std.Sexp.t
    end
  module Client :
    sig
      type t = Tcp_file.Client.t
      module Error :
        sig
          type t =
            Tcp_file.Client.Error.t =
              File_not_found of string
            | Unknown of string
          val sexp_of_t : t -> Sexplib.Sexp.t
          val t_of_sexp : Sexplib.Sexp.t -> t
          val to_string : t -> string
        end
      module Message :
        sig
          type t =
            Tcp_file.Client.Message.t =
              String of string
            | Bigstring of Core.Std.Bigstring.t
          val bin_size_t : t Core.Std.Bin_prot.Size.sizer
          val bin_write_t : t Core.Std.Bin_prot.Write_ml.writer
          val bin_write_t_ : t Core.Std.Bin_prot.Unsafe_write_c.writer
          val bin_writer_t : t Core.Std.Bin_prot.Type_class.writer
          val bin_read_t : t Core.Std.Bin_prot.Read_ml.reader
          val bin_read_t_ : t Core.Std.Bin_prot.Unsafe_read_c.reader
          val bin_read_t__ :
            (int -> t) Core.Std.Bin_prot.Unsafe_read_c.reader
          val bin_reader_t : t Core.Std.Bin_prot.Type_class.reader
          val bin_t : t Core.Std.Bin_prot.Type_class.t
          val length : t -> int
          val to_string : t -> string option
          val to_string_exn : t -> string
          val to_bigstring : t -> Core.Std.Bigstring.t
        end
      module Response :
        sig type t = (Message.t, Error.t) Core.Std.Result.t end
      val connect :
        host:string ->
        port:int -> (t, Core.Std.Exn.t) Core.Std.Result.t Import.Deferred.t
      val disconnect : t -> unit
      val read :
        t -> string -> Response.t Import.Pipe.Reader.t Import.Deferred.t
      val tail :
        t -> string -> Response.t Import.Pipe.Reader.t Import.Deferred.t
    end
  val ounit_tests : unit -> OUnit.test
end