sig
  class type http_processor_config =
    object
      method config_cgi : Netcgi_env.cgi_config
      method config_error_response : int -> string
      method config_limit_pipeline_length : int
      method config_limit_pipeline_size : int
      method config_log_error :
        Unix.sockaddr option ->
        Unix.sockaddr option ->
        Nethttp.http_method option ->
        Nethttp.http_header option -> string -> unit
      method config_max_header_length : int
      method config_max_reqline_length : int
      method config_max_trailer_length : int
      method config_timeout : float
      method config_timeout_next_request : float
    end
  class type http_reactor_config =
    object
      method config_cgi : Netcgi_env.cgi_config
      method config_error_response : int -> string
      method config_limit_pipeline_length : int
      method config_limit_pipeline_size : int
      method config_log_error :
        Unix.sockaddr option ->
        Unix.sockaddr option ->
        Nethttp.http_method option ->
        Nethttp.http_header option -> string -> unit
      method config_max_header_length : int
      method config_max_reqline_length : int
      method config_max_trailer_length : int
      method config_reactor_synch :
        [ `Close | `Connection | `Flush | `Write ]
      method config_timeout : float
      method config_timeout_next_request : float
    end
  class type internal_environment =
    object
      method cgi_auth_type : string
      method cgi_gateway_interface : string
      method cgi_https : bool
      method cgi_path_info : string
      method cgi_path_translated : string
      method cgi_properties : (string * string) list
      method cgi_property : ?default:string -> string -> string
      method cgi_query_string : string
      method cgi_remote_addr : string
      method cgi_remote_host : string
      method cgi_remote_ident : string
      method cgi_remote_user : string
      method cgi_request_method : string
      method cgi_request_uri : string
      method cgi_script_name : string
      method cgi_server_name : string
      method cgi_server_port : int option
      method cgi_server_protocol : string
      method cgi_server_software : string
      method config : Netcgi_env.cgi_config
      method cookies : (string * string) list
      method input_ch : Netchannels.in_obj_channel
      method input_content_length : int
      method input_content_type : string * (string * Mimestring.s_param) list
      method input_content_type_string : string
      method input_header : Netmime.mime_header
      method input_header_field : ?default:string -> string -> string
      method input_header_fields : (string * string) list
      method input_state : Netcgi_env.input_state
      method log_error : string -> unit
      method multiple_input_header_field : string -> string list
      method multiple_output_header_field : string -> string list
      method output_ch : Netchannels.out_obj_channel
      method output_header : Netmime.mime_header
      method output_header_field : ?default:string -> string -> string
      method output_header_fields : (string * string) list
      method output_state : Netcgi_env.output_state
      method protocol : Netcgi_env.protocol
      method remote_socket_addr : Unix.sockaddr
      method req_method : Nethttp.http_method
      method response : Nethttpd_kernel.http_response
      method send_file : Unix.file_descr -> int64 -> unit
      method send_output_header : unit -> unit
      method server_socket_addr : Unix.sockaddr
      method set_input_state : Netcgi_env.input_state -> unit
      method set_multiple_output_header_field : string -> string list -> unit
      method set_output_header_field : string -> string -> unit
      method set_output_header_fields : (string * string) list -> unit
      method set_output_state : Netcgi_env.output_state -> unit
      method set_status : Nethttp.http_status -> unit
      method unlock : unit -> unit
      method user_agent : string
    end
  class http_environment :
    #Nethttpd_reactor.http_processor_config ->
    string ->
    string ->
    Nethttp.protocol ->
    Nethttp.http_header ->
    Unix.sockaddr ->
    Unix.sockaddr ->
    Netchannels.in_obj_channel ->
    Netchannels.out_obj_channel ->
    Nethttpd_kernel.http_response -> (unit -> unit) -> internal_environment
  class type http_reactive_request =
    object
      method accept_body : unit -> unit
      method environment : Nethttpd_types.extended_environment
      method finish : unit -> unit
      method finish_request : unit -> unit
      method reject_body : unit -> unit
    end
  class http_reactor :
    #Nethttpd_reactor.http_reactor_config ->
    Unix.file_descr ->
    object
      method close : unit -> unit
      method next_request :
        unit -> Nethttpd_reactor.http_reactive_request option
    end
  val process_connection :
    #Nethttpd_reactor.http_reactor_config ->
    Unix.file_descr -> 'Nethttpd_types.http_service -> unit
end