using System.Collections.Generic;
using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Sync;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Sync
{
public interface ISyncRepository
{
///
/// Gets the job.
///
/// The identifier.
/// SyncJob.
SyncJob GetJob(string id);
///
/// Creates the specified job.
///
/// The job.
/// Task.
Task Create(SyncJob job);
///
/// Updates the specified job.
///
/// The job.
/// Task.
Task Update(SyncJob job);
///
/// Deletes the job.
///
/// The identifier.
/// Task.
Task DeleteJob(string id);
///
/// Gets the jobs.
///
/// The query.
/// QueryResult<SyncJob>.
QueryResult GetJobs(SyncJobQuery query);
///
/// Gets the job item.
///
/// The identifier.
/// SyncJobItem.
SyncJobItem GetJobItem(string id);
///
/// Creates the specified job item.
///
/// The job item.
/// Task.
Task Create(SyncJobItem jobItem);
///
/// Updates the specified job item.
///
/// The job item.
/// Task.
Task Update(SyncJobItem jobItem);
///
/// Gets the job items.
///
/// The query.
/// IEnumerable<SyncJobItem>.
QueryResult GetJobItems(SyncJobItemQuery query);
///
/// Gets the library item ids.
///
/// The query.
/// QueryResult<System.String>.
Dictionary GetSyncedItemProgresses(SyncJobItemQuery query);
}
}