using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Model.IO
{
public interface IIsoMounter : IDisposable
{
///
/// Mounts the specified iso path.
///
/// The iso path.
/// The cancellation token.
/// IsoMount.
/// isoPath
/// Unable to create mount.
Task Mount(string isoPath, CancellationToken cancellationToken);
///
/// Determines whether this instance can mount the specified path.
///
/// The path.
/// true if this instance can mount the specified path; otherwise, false.
bool CanMount(string path);
///
/// Gets a value indicating whether [requires installation].
///
/// true if [requires installation]; otherwise, false.
bool RequiresInstallation { get; }
///
/// Gets a value indicating whether this instance is installed.
///
/// true if this instance is installed; otherwise, false.
bool IsInstalled { get; }
///
/// Installs this instance.
///
/// Task.
Task Install(CancellationToken cancellationToken);
///
/// Gets the name.
///
/// The name.
string Name { get; }
}
}