using System; using System.Collections.ObjectModel; using System.ComponentModel; using BililiveRecorder.Core.Config.V3; using BililiveRecorder.Core.Event; namespace BililiveRecorder.Core { public interface IRecorder : INotifyPropertyChanged, IDisposable { ConfigV3 Config { get; } ReadOnlyObservableCollection Rooms { get; } event EventHandler>? RecordSessionStarted; event EventHandler>? RecordSessionEnded; event EventHandler>? RecordFileOpening; event EventHandler>? RecordFileClosed; event EventHandler>? IOStats; event EventHandler>? RecordingStats; event EventHandler StreamStarted; IRoom AddRoom(int roomid); IRoom AddRoom(int roomid, bool enabled); void RemoveRoom(IRoom room); void SaveConfig(); } }