using MediaBrowser.Model.Devices;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Model.ApiClient
{
    public interface IDevice
    {
        /// 
        /// Occurs when [resume from sleep].
        /// 
        event EventHandler ResumeFromSleep;
        /// 
        /// Gets the name of the device.
        /// 
        /// The name of the device.
        string DeviceName { get; }
        /// 
        /// Gets the device identifier.
        /// 
        /// The device identifier.
        string DeviceId { get; }
        /// 
        /// Gets the local images.
        /// 
        /// IEnumerable<LocalFileInfo>.
        Task> GetLocalPhotos();
        /// 
        /// Gets the local videos.
        /// 
        /// IEnumerable<LocalFileInfo>.
        Task> GetLocalVideos();
        /// 
        /// Uploads the file.
        /// 
        /// The file.
        /// The API client.
        /// The cancellation token.
        /// Task.
        Task UploadFile(LocalFileInfo file, IApiClient apiClient, CancellationToken cancellationToken = default(CancellationToken));
    }
}