#nullable enable namespace Terminal.Gui.App; /// Interface to create a platform specific driver. internal interface IMainLoopDriver { /// Must report whether there are any events pending, or even block waiting for events. /// , if there were pending events, otherwise. bool EventsPending (); /// The iteration function. void Iteration (); /// Initializes the , gets the calling main loop for the initialization. /// Call to release resources. /// Main loop. void Setup (MainLoop mainLoop); /// Tears down the driver. Releases resources created in . void TearDown (); /// Wakes up the that might be waiting on input, must be thread safe. void Wakeup (); }