namespace InABox.Avalonia.Platform;

/// <summary>
/// LatestVersion plugin
/// </summary>
public interface IAppVersion : ILoggable
{

    /// <summary>
    /// Gets the version number of the current app's installed version.
    /// </summary>
    /// <value>The current app's installed version number.</value>
    string InstalledVersionNumber();

    /// <summary>
    /// Checks if the current app is the latest version available in the public store.
    /// </summary>
    /// <returns>True if the current app is the latest version available, false otherwise.</returns>
    Task<bool> IsUsingLatestVersion();
    
    Task<AppInfo> GetLatestVersion(bool force);
    
    /// <summary>
    /// Opens the current app in the public store.
    /// </summary>
    Task OpenAppInStore();

}

