namespace MeetingAssistant.Recording; public interface IMeetingInactivityPromptService { Task ShowStopPromptAsync( MeetingInactivityPromptRequest request, Func handleResponseAsync, CancellationToken cancellationToken); } public sealed record MeetingInactivityPromptRequest( TimeSpan InactivityDuration, DateTimeOffset SuggestedEndTime, int PromptIndex, TimeSpan Threshold); public enum MeetingInactivityPromptResponse { Dismissed, Continue, Stop } public sealed class NoopMeetingInactivityPromptService : IMeetingInactivityPromptService { public Task ShowStopPromptAsync( MeetingInactivityPromptRequest request, Func handleResponseAsync, CancellationToken cancellationToken) { return Task.CompletedTask; } }