using StabilityMatrix.Core.Models.Progress; using StabilityMatrix.Core.Processes; namespace StabilityMatrix.Core.Helper; public interface IPrerequisiteHelper { string GitBinPath { get; } bool IsPythonInstalled { get; } Task InstallAllIfNecessary(IProgress? progress = null); Task UnpackResourcesIfNecessary(IProgress? progress = null); Task InstallGitIfNecessary(IProgress? progress = null); Task InstallVcRedistIfNecessary(IProgress? progress = null); Task InstallPythonIfNecessary(IProgress? progress = null); /// /// Run embedded git with the given arguments. /// Task RunGit(string? workingDirectory = null, params string[] args); Task SetupPythonDependencies(string installLocation, string requirementsFileName, IProgress? progress = null, Action? onConsoleOutput = null); void UpdatePathExtensions(); }