namespace ytLive.Services;

/// <summary>
/// Identifies which monitor holds a full-screen window (a game/app running
/// borderless or exclusive fullscreen). Seam so ScreenCaptureManager is
/// testable without Win32 interop.
/// </summary>
public interface IFullScreenDetector
{
    /// <summary>
    /// The index of the monitor a full-screen foreground window covers, or null
    /// when the foreground window is windowed, missing, or one of our own.
    /// </summary>
    int? GetForegroundFullScreenMonitorIndex();

    /// <summary>Index of the primary (taskbar-hosting) monitor.</summary>
    int PrimaryMonitorIndex();

    /// <summary>All monitors in capture-key order (enumeration order).</summary>
    IReadOnlyList<DisplayInfo> GetDisplays();
}
