sig
  type param_type =
      [ `Array
      | `Binary
      | `Boolean
      | `DateTime
      | `Double
      | `Int
      | `String
      | `Struct
      | `Undefined ]
  class virtual base :
    object
      val mutable base64_decoder : string -> string
      val mutable base64_encoder : string -> string
      val mutable datetime_decoder : string -> XmlRpcDateTime.t
      val mutable datetime_encoder : XmlRpcDateTime.t -> string
      val mutable error_handler : exn -> XmlRpc.message
      val methods : (string, XmlRpc.value list -> XmlRpc.value) Hashtbl.t
      method register :
        string ->
        ?help:string ->
        ?signature:XmlRpcServer.param_type list ->
        ?signatures:XmlRpcServer.param_type list list ->
        (XmlRpc.value list -> XmlRpc.value) -> unit
      method virtual run : unit -> unit
      method serve :
        (string -> XmlRpc.value list -> XmlRpc.value) -> string -> string
      method serve_message :
        (string -> XmlRpc.value list -> XmlRpc.value) ->
        XmlRpc.message -> XmlRpc.message
      method set_base64_decoder : (string -> string) -> unit
      method set_base64_encoder : (string -> string) -> unit
      method set_datetime_decoder : (string -> XmlRpcDateTime.t) -> unit
      method set_datetime_encoder : (XmlRpcDateTime.t -> string) -> unit
      method set_error_handler : (exn -> XmlRpc.message) -> unit
      method unregister : string -> unit
    end
  class type server =
    object
      val mutable base64_decoder : string -> string
      val mutable base64_encoder : string -> string
      val mutable datetime_decoder : string -> XmlRpcDateTime.t
      val mutable datetime_encoder : XmlRpcDateTime.t -> string
      val mutable error_handler : exn -> XmlRpc.message
      val methods : (string, XmlRpc.value list -> XmlRpc.value) Hashtbl.t
      method register :
        string ->
        ?help:string ->
        ?signature:param_type list ->
        ?signatures:param_type list list ->
        (XmlRpc.value list -> XmlRpc.value) -> unit
      method run : unit -> unit
      method serve :
        (string -> XmlRpc.value list -> XmlRpc.value) -> string -> string
      method serve_message :
        (string -> XmlRpc.value list -> XmlRpc.value) ->
        XmlRpc.message -> XmlRpc.message
      method set_base64_decoder : (string -> string) -> unit
      method set_base64_encoder : (string -> string) -> unit
      method set_datetime_decoder : (string -> XmlRpcDateTime.t) -> unit
      method set_datetime_encoder : (XmlRpcDateTime.t -> string) -> unit
      method set_error_handler : (exn -> XmlRpc.message) -> unit
      method unregister : string -> unit
    end
  class cgi : unit -> server
  class netplex :
    ?parallelizer:Netplex_types.parallelizer ->
    ?handler:string -> unit -> server
  val invalid_method : string -> 'a
  val invalid_params : unit -> 'a
end