using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tango.Telemetry { /// /// Represents a target destination that can receive and process published telemetry data. /// Implementations may include cloud services, databases, or custom sinks. /// public interface ITelemetryDestination : IDisposable { /// /// Gets or sets the unique name of the destination used for identification and logging. /// String Name { get; set; } /// /// Checks whether the destination is currently available to receive telemetry. /// /// True if the destination is available; otherwise, false. Task IsAvailable(); /// /// Gets a read-only list of source types that this destination supports. /// IReadOnlyList SupportedSourceTypes { get; } /// /// Publishes the given telemetry package along with machine metadata properties. /// /// The telemetry package to publish. /// Metadata properties such as SerialNumber, MachineType, and Environment. Task Publish(TelemetryPublishPackage package, List> properties); } }