namespace MeetingAssistant.Recording; public interface IRecordedAudioStore { Task CreateSessionAsync(CancellationToken cancellationToken); Task DeleteStaleRecordingsAsync(CancellationToken cancellationToken); } public interface IRecordedAudioSink : IAsyncDisposable { string AudioPath { get; } Task AppendAsync(AudioChunk chunk, CancellationToken cancellationToken); Task CompleteAsync(CancellationToken cancellationToken); Task DeleteAsync(CancellationToken cancellationToken); }