namespace YD_TrainingCompetition_Api.Serial; public interface ISerialGateway { string[] GetAvailablePorts(); bool IsOpen { get; } string? CurrentPort { get; } Task OpenAsync(string portName, CancellationToken cancellationToken = default); Task CloseAsync(CancellationToken cancellationToken = default); void ClearInputBuffer(); Task SendAsync(byte[] data, CancellationToken cancellationToken = default); event EventHandler? DataReceived; }