using Google.Protobuf;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tango.Transport.Discovery
{
///
/// Represents a discovery service client.
///
/// The type of the discovery message.
///
public interface IDiscoveryClient : IDiscoveryComponent where DiscoveryMessage : IMessage
{
///
/// Occurs when a matching service has been discovered.
///
event EventHandler> ServiceDiscovered;
///
/// Asynchronous method for awaiting until the service will be discovered.
///
///
Task> Discover(TimeSpan? timeout = null);
}
}