sig
  val version : string
  exception Error of (int * string)
  type value =
      [ `Array of XmlRpc.value list
      | `Binary of string
      | `Boolean of bool
      | `DateTime of XmlRpcDateTime.t
      | `Double of float
      | `Int of int
      | `Int32 of int32
      | `Nil
      | `String of string
      | `Struct of (string * XmlRpc.value) list ]
  class client :
    ?debug:bool ->
    ?headers:(string * string) list ->
    ?insecure_ssl:bool ->
    ?timeout:float ->
    ?useragent:string ->
    string ->
    object
      val mutable debug : bool
      val mutable headers : (string * string) list
      val mutable insecure_ssl : bool
      val mutable timeout : float
      val url : string
      val mutable useragent : string
      method call : string -> XmlRpc.value list -> XmlRpc.value
      method debug : bool
      method headers : (string * string) list
      method insecure_ssl : bool
      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_debug : bool -> unit
      method set_headers : (string * string) list -> unit
      method set_insecure_ssl : bool -> unit
      method set_timeout : float -> unit
      method set_useragent : string -> unit
      method timeout : float
      method url : string
      method useragent : string
    end
  class multicall :
    XmlRpc.client ->
    object
      method call : string -> XmlRpc.value list -> XmlRpc.value Lazy.t
      method completed : bool
      method execute : unit -> unit
      method executed : bool
      method result : int -> XmlRpc.value
    end
  val dump : XmlRpc.value -> string
  type message =
      MethodCall of (string * XmlRpc.value list)
    | MethodResponse of XmlRpc.value
    | Fault of (int * string)
  val message_of_xml_element :
    ?base64_decoder:(string -> string) ->
    ?datetime_decoder:(string -> XmlRpcDateTime.t) ->
    Xml.xml -> XmlRpc.message
  val xml_element_of_message :
    ?base64_encoder:(string -> string) ->
    ?datetime_encoder:(XmlRpcDateTime.t -> string) ->
    XmlRpc.message -> Xml.xml
  val value_of_xml_element :
    ?base64_decoder:(string -> string) ->
    ?datetime_decoder:(string -> XmlRpcDateTime.t) -> Xml.xml -> XmlRpc.value
  val xml_element_of_value :
    ?base64_encoder:(string -> string) ->
    ?datetime_encoder:(XmlRpcDateTime.t -> string) -> XmlRpc.value -> Xml.xml
  val serve :
    ?base64_encoder:(string -> string) ->
    ?base64_decoder:(string -> string) ->
    ?datetime_encoder:(XmlRpcDateTime.t -> string) ->
    ?datetime_decoder:(string -> XmlRpcDateTime.t) ->
    ?error_handler:(exn -> XmlRpc.message) ->
    (string -> XmlRpc.value list -> XmlRpc.value) -> string -> string
  val serve_message :
    ?error_handler:(exn -> XmlRpc.message) ->
    (string -> XmlRpc.value list -> XmlRpc.value) ->
    XmlRpc.message -> XmlRpc.message
  val default_error_handler : exn -> XmlRpc.message
  val quiet_error_handler : exn -> XmlRpc.message
end