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 IServerSyncProvider : ISyncProvider
{
///
/// Transfers the file.
///
/// The stream.
/// The remote path.
/// The target.
/// The progress.
/// The cancellation token.
/// Task.
Task SendFile(Stream stream, string remotePath, SyncTarget target, IProgress progress, CancellationToken cancellationToken);
///
/// Deletes the file.
///
/// The path.
/// The target.
/// The cancellation token.
/// Task.
Task DeleteFile(string path, SyncTarget target, CancellationToken cancellationToken);
///
/// Gets the file.
///
/// The path.
/// The target.
/// The progress.
/// The cancellation token.
/// Task<Stream>.
Task GetFile(string path, SyncTarget target, IProgress progress, CancellationToken cancellationToken);
///
/// Gets the full path.
///
/// The path.
/// The target.
/// System.String.
string GetFullPath(IEnumerable path, SyncTarget target);
///
/// Gets the parent directory path.
///
/// The path.
/// The target.
/// System.String.
string GetParentDirectoryPath(string path, SyncTarget target);
///
/// Gets the file system entries.
///
/// The path.
/// The target.
/// The cancellation token.
/// Task<List<DeviceFileInfo>>.
Task> GetFileSystemEntries(string path, SyncTarget target, CancellationToken cancellationToken);
}
}