using Remotely.Shared.Primitives; using SkiaSharp; using System.Drawing; namespace Remotely.Desktop.Shared.Abstractions; public interface IScreenCapturer : IDisposable { event EventHandler ScreenChanged; bool CaptureFullscreen { get; set; } Rectangle CurrentScreenBounds { get; } bool IsGpuAccelerated { get; } string SelectedScreen { get; } IEnumerable GetDisplayNames(); SKRect GetFrameDiffArea(); Result GetImageDiff(); Result GetNextFrame(); int GetScreenCount(); Rectangle GetVirtualScreenBounds(); void Init(); void SetSelectedScreen(string displayName); }