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 Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Xhtml_content :
    sig
      type t = XHTML.M.doc
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Html5_content :
    sig
      type t = HTML5.M.doc
      type options
      val result_of_content :
        ?options:options -> t -> Ocsigen_http_frame.result Lwt.t
      val get_etag : ?options:options -> t -> Ocsigen_http_frame.etag option
    end
  module Make_XML_Content :
    functor (XML : XML_sigs.Iterable->
      functor
        (TypedXML : 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 = TypedXML.doc
          type options = Http_headers.accept Lazy.t
          val result_of_content :
            ?options:options -> t -> Ocsigen_http_frame.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 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 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 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 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 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 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