namespace Terminal.Gui.App;
///
/// Represents a scheduled timeout for use with timer management APIs.
///
/// Encapsulates a callback function to be invoked after a specified time interval. The callback can optionally
/// indicate whether the timeout should repeat.
///
///
/// Used by and related timer systems to manage timed operations in the application.
///
///
public class Timeout
{
///
/// Gets or sets the function to invoke when the timeout expires.
///
///
/// A delegate. If the callback returns , the timeout will be
/// rescheduled and invoked again after the same interval.
/// If the callback returns , the timeout will be removed and not invoked again.
///
public Func Callback { get; set; }
///
/// Gets or sets the time interval to wait before invoking the .
///
///
/// A representing the delay before the callback is invoked. If the timeout is rescheduled
/// (i.e., returns ), this interval is used again.
///
public virtual TimeSpan Span { get; set; }
}