sig
  module File_content :
    sig
      type t =
          string * Ocsigen_charset_mime.charset_assoc *
          Ocsigen_charset_mime.mime_assoc
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.Result.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Html_content :
    sig
      type t = Tyxml.Html.doc
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.Result.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Make_XML_Content :
    functor
      (Xml : Xml_sigs.Iterable) (Typed_xml : sig
                                               module Info : Xml_sigs.Info
                                               type 'a elt
                                               type doc
                                               val toelt : 'a elt -> Xml.elt
                                               val doc_toelt : doc -> Xml.elt
                                             end->
      sig
        type t = Typed_xml.doc
        type options = Http_headers.accept Lazy.t
        val result_of_content :
          ?options:options -> t -> Ocsigen_http_frame.Result.result Lwt.t
        val get_etag :
          ?options:options -> t -> Ocsigen_http_frame.etag option
      end
  module Text_content :
    sig
      type t = string * string
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.Result.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Stream_content :
    sig
      type t = string Ocsigen_stream.t
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.Result.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Streamlist_content :
    sig
      type t = (unit -> string Ocsigen_stream.t Lwt.t) list * string
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.Result.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Empty_content :
    sig
      type t = unit
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.Result.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Directory_content :
    sig
      type t = string * string list
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.Result.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Error_content :
    sig
      type t = int option * exn option * Ocsigen_cookies.cookieset
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.Result.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  val send_error :
    ?code:int ->
    ?exn:exn ->
    Ocsigen_http_com.slot ->
    clientproto:Ocsigen_http_frame.Http_header.proto ->
    ?mode:Ocsigen_http_frame.Http_header.http_mode ->
    ?proto:Ocsigen_http_frame.Http_header.proto ->
    ?cookies:Ocsigen_cookies.cookieset ->
    head:bool -> sender:Ocsigen_http_com.sender_type -> unit -> unit Lwt.t
end