sig
  type t
  val create :
    keypair:string * string ->
    uri:Tilde_uri.t -> port:int -> ZMQ.Context.t -> Tilde_client.t Lwt.t
  type node_info = { node_domain : string; }
  type 'a result = ('a, string * string) CCError.t
  val node_info :
    Tilde_client.t -> Tilde_client.node_info Tilde_client.result Lwt.t
  val service_list :
    Tilde_client.t ->
    (Tilde_uri.t * Tilde_endpoint.t list) list Tilde_client.result Lwt.t
  val discover :
    Tilde_uri.t ->
    Tilde_client.t -> Tilde_endpoint.t list Tilde_client.result Lwt.t
end