namespace Robovoice.Core; public interface ISttSource : IAsyncDisposable { event TranscriptEventHandler? TranscriptReceived; Task StartAsync(CancellationToken ct = default); Task StopAsync(CancellationToken ct = default); } public sealed class TranscriptEventArgs : EventArgs { public TranscriptMessage Message { get; init; } = new(TranscriptType.Final, string.Empty); } public delegate void TranscriptEventHandler(object? sender, TranscriptEventArgs e);