using System.Collections.Generic;
using Dalamud.Game.Gui.NamePlate;
namespace Dalamud.Plugin.Services;
///
/// Class used to modify the data used when rendering nameplates.
///
public interface INamePlateGui
{
///
/// The delegate used for receiving nameplate update events.
///
/// An object containing information about the pending data update.
/// A list of handlers used for updating nameplate data.
public delegate void OnPlateUpdateDelegate(
INamePlateUpdateContext context, IReadOnlyList handlers);
///
/// An event which fires when nameplate data is updated and at least one nameplate has important updates. The
/// subscriber is provided with a list of handlers for nameplates with important updates.
///
event OnPlateUpdateDelegate? OnNamePlateUpdate;
///
/// An event which fires when nameplate data is updated. The subscriber is provided with a list of handlers for all
/// nameplates. This event is likely to fire every frame even when no nameplates are actually updated, so in most
/// cases is preferred.
///
event OnPlateUpdateDelegate? OnDataUpdate;
///
/// Requests that all nameplates should be redrawn on the following frame.
///
void RequestRedraw();
}