using RobotNet10.NavigationTune.Shared.Interfaces; using RobotNet10.NavigationTune.Shared.Models; using BatchTestResult = RobotNet10.NavigationTune.Shared.Models.BatchTestResult; using ComparisonResult = RobotNet10.NavigationTune.Shared.Models.ComparisonResult; namespace RobotNet10.NavigationTune.Services; /// /// Main orchestrator for tuning operations /// public interface ITuningOrchestrator { /// /// Start a test and return immediately with testRunId and status Running. /// Test runs in background; completion is notified via SignalR (ReceiveTestResult). /// Use this for UI single-test execution so Stop/Pause buttons become active right away. /// Task StartTestAsync( TestScenario scenario, NavigationParameterSet parameters, string? connectionId = null, Guid? testRunId = null, CancellationToken cancellationToken = default ); Task RunSingleTestAsync( TestScenario scenario, NavigationParameterSet parameters, string? connectionId = null, Guid? testRunId = null, CancellationToken cancellationToken = default ); Task RunBatchTestsAsync( List scenarios, NavigationParameterSet parameters, CancellationToken cancellationToken = default ); Task CompareConfigurationsAsync( List parameterSets, TestScenario scenario, CancellationToken cancellationToken = default ); void PauseTest(string testRunId); void ResumeTest(string testRunId); void StopTest(string testRunId); void EmergencyStop(string testRunId); }