using MediaBrowser.Model.Sync; using System; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Sync { public interface ICloudSyncProvider { /// /// Gets the name. /// /// The name. string Name { get; } /// /// Gets the synchronize targets. /// /// The user identifier. /// IEnumerable<SyncTarget>. IEnumerable GetSyncTargets(string userId); /// /// Transfers the item file. /// /// The input file. /// The path parts. /// The target. /// The progress. /// The cancellation token. /// Task. Task SendFile(string inputFile, string[] pathParts, SyncTarget target, IProgress progress, CancellationToken cancellationToken); /// /// Gets the file. /// /// The path parts. /// The target. /// The progress. /// The cancellation token. /// Task<Stream>. Task GetFile(string[] pathParts, SyncTarget target, IProgress progress, CancellationToken cancellationToken); } }