using RobotNet10.FleetManager.Script;
using RobotNet10.FleetManager.Services.RobotController;
using RobotNet10.FleetManager.Services.RobotManager.Models;
namespace RobotNet10.FleetManager.Services.RobotManager;
///
/// Service for managing RobotController instances and routing events
///
public interface IRobotManagerService
{
///
/// Get RobotController instance for a robot
///
IRobotController? GetRobotController(string robotId);
///
/// Get all RobotController instances
///
IReadOnlyDictionary GetAllRobotControllers();
///
/// Remove RobotController instance (when robot is deleted from DB)
///
void RemoveRobotController(string robotId);
///
/// Get RobotData for a robot (backward compatibility)
///
RobotData? GetRobotData(string robotId);
///
/// Get all RobotData (backward compatibility)
///
IReadOnlyDictionary GetAllRobotData();
///
/// Get list of available (online) robots
///
IReadOnlyList GetAvailableRobots();
///
/// Get list of available robots with condititions
///
Task> GetAvailableRobots(string layout, string version, string level, string model, Func func);
}