using System; using System.Threading; using System.Threading.Tasks; using AlayaCore.Models; using AlayaCore.States; using CmlLib.Core; using CmlLib.Core.Installers; namespace AlayaCore.Abstractions.Interfaces { public interface ILaunchDirector { Task EvaluateAsync(CancellationToken cancellationToken = default); Task InstallOrUpdateAsync(CancellationToken cancellationToken = default, EventHandler? minecraftProgess = null, EventHandler? byteProgress = null, IProgress? neoForgeProgress = null, IProgress? neoForgeByteProgress = null); Task LaunchAsync(CancellationToken cancellationToken = default); bool CanRun { get; } bool NeedsUpdating { get; } LaunchPlan? CurrentPlan { get; } } }