using MxGateway.Contracts.Proto; namespace MxGateway.Client.Cli; public interface IMxGatewayCliClient : IAsyncDisposable { Task OpenSessionAsync( OpenSessionRequest request, CancellationToken cancellationToken); Task CloseSessionAsync( CloseSessionRequest request, CancellationToken cancellationToken); Task InvokeAsync( MxCommandRequest request, CancellationToken cancellationToken); IAsyncEnumerable StreamEventsAsync( StreamEventsRequest request, CancellationToken cancellationToken); }