using InteractiveReadLine.Formatting; namespace InteractiveReadLine.Abstractions { /// /// Defines a provider for a buffer backed, console-like interface. Intended to create a seam between /// the actual System.Console instance and the higher level behaviors, it can also be used to wrap /// any character buffer interface with a moving cursor. /// public interface IConsole { /// /// Gets or sets the cursor's position from the left edge of the buffer /// int CursorLeft { get; set; } /// /// Gets or sets the cursor's position from the top of the buffer /// int CursorTop { get; set; } /// /// Gets the height of the provider's buffer, measured in rows /// int BufferHeight { get; } /// /// Gets the width of the provider's buffer, measured in columns /// int BufferWidth { get; } void Write(FormattedText text); void WriteLine(FormattedText text); void Write(FormattedChar c); ConsoleKeyInfo ReadKey(); } }