using System.Threading.Tasks;
namespace Artemis.UI.Shared.Providers;
///
/// Represents a provider for custom cursors.
///
public interface IUpdateProvider
{
///
/// Asynchronously checks whether an update is available.
///
/// The channel to use when checking updates (i.e. master or development)
/// A task returning if an update is available; otherwise .
Task CheckForUpdate(string channel);
///
/// Applies any available updates.
///
/// The channel to use when checking updates (i.e. master or development)
/// Whether or not to update silently.
Task ApplyUpdate(string channel, bool silent);
///
/// Offer to install the update to the user.
///
/// The channel to use when checking updates (i.e. master or development)
/// A boolean indicating whether the main window is open.
/// A task returning if the user chose to update; otherwise .
Task OfferUpdate(string channel, bool windowOpen);
}