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);
}
}