Code/IRouterEvent.cs
namespace BetterUI;

/// <summary>
/// An event that is sent when the router is ready.
/// </summary>
/// <remarks>
/// This event is sent when the router is ready to navigate to a page.
/// You can listen to this event to know when the router is ready
/// to navigate to a page.
/// </remarks>
public interface IRouterEvent : ISceneEvent<IRouterEvent>
{
	/// <summary>
	/// Called when the router is ready.
	/// </summary>
	/// <remarks>
	/// This event is sent when the router is ready to navigate to a page.
	/// </remarks>
	void OnRouterReady() { }

	/// <summary>
	/// Called when a page is closed.
	/// </summary>
	/// <param name="page">The page that was closed.</param>
	/// <remarks>
	/// This event is sent when a page is closed.
	/// </remarks>
	void OnRouterPageClose( RouterPage page ) { }

	/// <summary>
	/// Called when a page is opened.
	/// </summary>
	/// <param name="page">The page that was opened.</param>
	/// <param name="args">Arguments that were passed to the page.</param>
	/// <remarks>
	/// This event is sent when a page is opened.
	/// </remarks>
	void OnRouterPageOpen( RouterPage page, params object[] args ) { }
}