using MediaBrowser.Model.Sync;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Sync
{
public interface ISyncDataProvider
{
///
/// Gets the server item ids.
///
/// The target.
/// The server identifier.
/// Task<List<System.String>>.
Task> GetServerItemIds(SyncTarget target, string serverId);
///
/// Gets the synchronize job item ids.
///
/// The target.
/// The server identifier.
/// Task<List<System.String>>.
Task> GetSyncJobItemIds(SyncTarget target, string serverId);
///
/// Adds the or update.
///
/// The target.
/// The item.
/// Task.
Task AddOrUpdate(SyncTarget target, LocalItem item);
///
/// Deletes the specified identifier.
///
/// The target.
/// The identifier.
/// Task.
Task Delete(SyncTarget target, string id);
///
/// Gets the specified identifier.
///
/// The target.
/// The identifier.
/// Task<LocalItem>.
Task Get(SyncTarget target, string id);
///
/// Gets the cached item.
///
/// The target.
/// The server identifier.
/// The item identifier.
/// Task<LocalItem>.
Task> GetItems(SyncTarget target, string serverId, string itemId);
///
/// Gets the cached items by synchronize job item identifier.
///
/// The target.
/// The server identifier.
/// The synchronize job item identifier.
/// Task<List<LocalItem>>.
Task> GetItemsBySyncJobItemId(SyncTarget target, string serverId, string syncJobItemId);
}
}