using RoslynBridge.WebApi.Models;
namespace RoslynBridge.WebApi.Services;
///
/// Service for managing registered Visual Studio instances
///
public interface IInstanceRegistryService
{
///
/// Register a new Visual Studio instance
///
void Register(VSInstanceInfo instance);
///
/// Unregister a Visual Studio instance by process ID
///
bool Unregister(int processId);
///
/// Update heartbeat for an instance
///
bool UpdateHeartbeat(int processId);
///
/// Get all registered instances
///
IEnumerable GetAllInstances();
///
/// Get instance by process ID
///
VSInstanceInfo? GetByProcessId(int processId);
///
/// Get instance by solution path
///
VSInstanceInfo? GetBySolutionPath(string solutionPath);
///
/// Get instance by port
///
VSInstanceInfo? GetByPort(int port);
///
/// Remove stale instances (no heartbeat for specified timeout)
///
void RemoveStaleInstances(TimeSpan timeout);
}