using RobotNet10.Shared.Detection;
namespace RobotNet10.RobotApp.Detection;
///
/// Main service interface for marker and landmark detection
/// Manages detection sessions and device transforms
///
public interface IMarkerDetector : IDisposable
{
///
/// Create a new detection session
///
/// Session configuration with search area and marker list
/// Created detection session instance
///
/// Thrown if:
/// - Marker IDs don't exist in database
/// - Device IDs don't exist in device provider
/// - Invalid configuration parameters
///
Task CreateSessionAsync(MarkersSearchRequest request);
///
/// Get all active sessions
///
/// Read-only list of active sessions
IReadOnlyList GetActiveSessions();
///
/// Get session by ID
///
/// Session ID to find
/// Session if found, null otherwise
IDetectSession? GetSession(Guid sessionId);
}