Internal/IStatefulEventHost.cs

Internal interface for a stateful event host used by the Goo UI system. Declares ApplyEvents to apply a BlobEvents struct, properties for pointer-event handling and whether any handlers exist, and a nullable setter for a RequestRebuild Action that the applier can set to trigger panel rebuilds after handlers run.

using System;

namespace Goo.Internal;

internal interface IStatefulEventHost
{
    void ApplyEvents(in BlobEvents events);
    bool UserSetPointerEvents { get; set; }
    bool HasEventHandlers { get; }

    /// <summary>Set by the Applier: invoked after any user handler runs so the panel
    /// auto-rebuilds. Null when the owning GooPanel opts out (AutoRebuildOnEvents == false).</summary>
    Action? RequestRebuild { set; }
}