using StellaOps.Scheduler.Models;
namespace StellaOps.Scheduler.Plugin;
///
/// Callback interface for plugins to report progress and update Run state.
///
public interface IRunProgressReporter
{
///
/// Reports progress as completed/total with an optional message.
///
Task ReportProgressAsync(int completed, int total, string? message = null, CancellationToken ct = default);
///
/// Transitions the Run to a new state, optionally recording an error.
///
Task TransitionStateAsync(RunState newState, string? error = null, CancellationToken ct = default);
///
/// Appends a log entry to the Run's execution log.
///
Task AppendLogAsync(string message, string level = "info", CancellationToken ct = default);
}