namespace MeetingAssistant.Transcription; public interface IFunAsrWebSocketConnectionFactory { Task ConnectAsync(Uri endpoint, CancellationToken cancellationToken); } public interface IFunAsrWebSocketConnection : IAsyncDisposable { Task SendTextAsync(string message, CancellationToken cancellationToken); Task SendBinaryAsync(ReadOnlyMemory message, CancellationToken cancellationToken); Task ReceiveTextAsync(CancellationToken cancellationToken); Task CloseOutputAsync(CancellationToken cancellationToken); }