using System.Collections.Generic;
using System.Threading.Tasks;
using Wino.Core.Domain.Models.Updates;
namespace Wino.Core.Domain.Interfaces;
public interface IUpdateManager
{
/// Loads and parses the update notes for the current version from the bundled asset file.
Task GetLatestUpdateNotesAsync();
/// Returns true if the current version's update notes have not yet been shown to the user.
bool ShouldShowUpdateNotes();
/// Stores a flag in local settings indicating the update notes for the current version have been seen.
void MarkUpdateNotesAsSeen();
/// Returns true if any registered migration has not yet been completed.
bool HasPendingMigrations();
/// Runs all pending migrations in order and marks each as completed in local settings.
Task RunPendingMigrationsAsync();
/// Registers migrations to be tracked and executed by this manager.
void RegisterMigrations(IEnumerable migrations);
}