// ReSharper disable UnusedMemberInSuper.Global
// ReSharper disable UnusedMember.Global
using System.Collections.Generic;
namespace RGB.NET.Core;
///
/// Represents a generic ledgroup.
///
public interface ILedGroup : IDecoratable, IEnumerable
{
///
/// Gets the surface this group is attached to or null if it is not attached to any surface.
///
RGBSurface? Surface { get; internal set; }
///
/// Gets a bool indicating if the group is attached to a surface.
///
bool IsAttached => Surface != null;
///
/// Gets or sets the which should be drawn over this .
///
IBrush? Brush { get; set; }
///
/// Gets or sets the z-index of this to allow ordering them before drawing. (lowest first) (default: 0)
///
int ZIndex { get; set; }
///
/// Called when the is attached to the .
///
void OnAttach();
///
/// Called when the is detached from the .
///
void OnDetach();
///
/// Returns a list containing all in this group.
///
/// A list containing all in this group.
IList ToList();
}