// Copyright (c) Arlo Godfrey. All Rights Reserved. // Licensed under the GNU Lesser General Public License, Version 3.0 with additional terms. // See the LICENSE, LICENSE.LESSER and LICENSE.ADDITIONAL files in the project root for more information. using System; using System.Threading; using System.Threading.Tasks; namespace StrixMusic.Sdk.AppModels { /// /// Indicates an item that can be downloaded for offline usage. /// public interface IDownloadable : IAsyncDisposable { /// /// Information about downloading this item. /// DownloadInfo DownloadInfo { get; } /// /// Begins a download operation for this playable item. /// /// A that represents the asynchronous operation. Task StartDownloadOperationAsync(DownloadOperation operation, CancellationToken cancellationToken = default); /// /// Raised when is updated. /// event EventHandler? DownloadInfoChanged; } }