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