using System; using System.Collections.Generic; using System.Threading.Tasks; using MQTTnet.Core.Packets; namespace MQTTnet.Core.Client { public interface IMqttClient { bool IsConnected { get; } event EventHandler ApplicationMessageReceived; event EventHandler Connected; event EventHandler Disconnected; Task ConnectAsync(MqttApplicationMessage willApplicationMessage = null); Task DisconnectAsync(); Task PublishAsync(IEnumerable applicationMessages); Task> SubscribeAsync(IList topicFilters); Task> SubscribeAsync(params TopicFilter[] topicFilters); Task Unsubscribe(IList topicFilters); Task Unsubscribe(params string[] topicFilters); } }