sig
  exception Resources_exceeded
  class type simple_message = Netmime.mime_body
  type store = [ `File of string | `Memory ]
  type representation =
    [ `MIME of Netmime.mime_message | `Simple of Netcgi_types.simple_message ]
  class type cgi_argument =
    object
      method charset : string
      method content_type : string
      method content_type_params : (string * Mimestring.s_param) list
      method filename : string option
      method finalize : unit -> unit
      method name : string
      method open_value_rd : unit -> Netchannels.in_obj_channel
      method open_value_wr : unit -> Netchannels.out_obj_channel
      method representation : Netcgi_types.representation
      method ro : bool
      method set_value : string -> unit
      method store : Netcgi_types.store
      method value : string
    end
  type cgi_cookie = {
    cookie_name : string;
    cookie_value : string;
    cookie_expires : float option;
    cookie_domain : string option;
    cookie_path : string option;
    cookie_secure : bool;
  }
  type status =
    [ `Accepted
    | `Bad_gateway
    | `Bad_request
    | `Conflict
    | `Created
    | `Expectation_failed
    | `Forbidden
    | `Found
    | `Gateway_timeout
    | `Gone
    | `Http_version_not_supported
    | `Internal_server_error
    | `Length_required
    | `Method_not_allowed
    | `Moved_permanently
    | `Multiple_choices
    | `No_content
    | `Non_authoritative
    | `Not_acceptable
    | `Not_found
    | `Not_implemented
    | `Not_modified
    | `Ok
    | `Partial_content
    | `Payment_required
    | `Precondition_failed
    | `Proxy_auth_required
    | `Request_entity_too_large
    | `Request_timeout
    | `Request_uri_too_long
    | `Requested_range_not_satisfiable
    | `Reset_content
    | `See_other
    | `Service_unavailable
    | `Temporary_redirect
    | `Unauthorized
    | `Unsupported_media_type
    | `Use_proxy ]
  type request_method =
    [ `DELETE | `GET | `HEAD | `POST | `PUT of Netcgi_types.cgi_argument ]
  type cache_control = [ `Max_age of int | `No_cache | `Unspecified ]
  type query_string_spec =
    [ `Args of Netcgi_types.cgi_argument list | `Current | `Initial | `None ]
  type other_url_spec = [ `Env | `None | `This of string ]
  class type cgi_activation =
    object
      method argument : string -> Netcgi_types.cgi_argument
      method argument_value : ?default:string -> string -> string
      method arguments : (string * Netcgi_types.cgi_argument) list
      method delete_argument : ?fin:bool -> string -> unit
      method environment : Netcgi_env.cgi_environment
      method finalize : unit -> unit
      method initial_argument : string -> Netcgi_types.cgi_argument
      method initial_argument_value : ?default:string -> string -> string
      method initial_arguments : (string * Netcgi_types.cgi_argument) list
      method initial_multiple_argument :
        string -> Netcgi_types.cgi_argument list
      method multiple_argument : string -> Netcgi_types.cgi_argument list
      method output : Netchannels.trans_out_obj_channel
      method request_method : Netcgi_types.request_method
      method set_arguments :
        ?fin:bool -> Netcgi_types.cgi_argument list -> unit
      method set_header :
        ?status:Netcgi_types.status ->
        ?content_type:string ->
        ?cache:Netcgi_types.cache_control ->
        ?filename:string ->
        ?language:string ->
        ?script_type:string ->
        ?style_type:string ->
        ?set_cookie:Netcgi_types.cgi_cookie list ->
        ?fields:(string * string list) list -> unit -> unit
      method set_redirection_header : string -> unit
      method update_argument : ?fin:bool -> Netcgi_types.cgi_argument -> unit
      method update_multiple_argument :
        ?fin:bool -> Netcgi_types.cgi_argument list -> unit
      method url :
        ?protocol:Netcgi_env.protocol ->
        ?with_authority:Netcgi_types.other_url_spec ->
        ?with_script_name:Netcgi_types.other_url_spec ->
        ?with_path_info:Netcgi_types.other_url_spec ->
        ?with_query_string:Netcgi_types.query_string_spec -> unit -> string
    end
end