sig
  exception Message_lost
  exception Message_timeout
  exception Communication_error of exn
  exception Client_is_down
  exception Keep_call
  type t
  type connector =
      Inet of (string * int)
    | InetNumeric of (int * int * int * int * int)
    | Unix of string
    | Descriptor of Unix.file_descr
    | Dynamic_descriptor of (unit -> Unix.file_descr)
    | Dynamic_descriptor' of
        ((unit -> Unix.file_descr) *
         (Rpc_client.t -> Unix.file_descr -> unit))
  val shutdown_connector :
    Rpc_client.t -> Rpc_client.connector -> Unix.file_descr -> unit
  val create :
    ?program_number:Rtypes.uint4 ->
    ?version_number:Rtypes.uint4 ->
    ?initial_xid:int ->
    ?shutdown:(Rpc_client.t ->
               Rpc_client.connector -> Unix.file_descr -> unit) ->
    Unixqueue.event_system ->
    Rpc_client.connector -> Rpc.protocol -> Rpc_program.t -> Rpc_client.t
  val configure : Rpc_client.t -> int -> float -> unit
  val set_exception_handler : Rpc_client.t -> (exn -> unit) -> unit
  val add_call :
    Rpc_client.t ->
    string -> Xdr.xdr_value -> ((unit -> Xdr.xdr_value) -> unit) -> unit
  val event_system : Rpc_client.t -> Unixqueue.event_system
  val program : Rpc_client.t -> Rpc_program.t
  val get_socket_name : Rpc_client.t -> Unix.sockaddr
  val get_peer_name : Rpc_client.t -> Unix.sockaddr
  val get_protocol : Rpc_client.t -> Rpc.protocol
  val sync_call : Rpc_client.t -> string -> Xdr.xdr_value -> Xdr.xdr_value
  val shut_down : Rpc_client.t -> unit
  class type auth_session =
    object
      method next_credentials :
        Rpc_client.t -> string * string * string * string
      method server_accepts : string -> string -> unit
      method server_rejects : Rpc.server_error -> unit
    end
  class type auth_method =
    object
      method name : string
      method new_session : unit -> Rpc_client.auth_session
    end
  val auth_none : Rpc_client.auth_method
  val set_auth_methods : Rpc_client.t -> Rpc_client.auth_method list -> unit
  val verbose : bool -> unit
end