namespace Terminal.Gui.App;
// TODO: This whole concept is bogus and over-engineered.
// TODO: Remove it and just subscribers use the IApplication.Iteration
// TODO: If the requirement is they know if it's the first iteration, they can
// TODO: count invocations.
///
/// Interface for class that handles bespoke behaviours that occur when application
/// top level changes.
///
public interface IToplevelTransitionManager
{
///
/// Raises the event on tahe current top level
/// if it has not been raised before now.
///
///
void RaiseReadyEventIfNeeded (IApplication? app);
///
/// Handles any state change needed when the application top changes e.g.
/// setting redraw flags
///
///
void HandleTopMaybeChanging (IApplication? app);
}