#nullable enable using System.Collections.Concurrent; using Terminal.Gui.App; namespace Terminal.Gui.Drivers; /// /// Base untyped interface for for methods that are not templated on low level /// console input type. /// public interface IComponentFactory { /// /// Create the class for the current driver implementation i.e. the class responsible for /// rendering into the console. /// /// IConsoleOutput CreateOutput (); } /// /// Creates driver specific subcomponent classes (, etc) for a /// . /// /// public interface IComponentFactory : IComponentFactory { /// /// Create class for the current driver implementation i.e. the class responsible for reading /// user input from the console. /// /// IConsoleInput CreateInput (); /// /// Creates the class for the current driver implementation i.e. the class responsible for /// translating raw console input into Terminal.Gui common event and . /// /// /// IInputProcessor CreateInputProcessor (ConcurrentQueue inputBuffer); /// /// Creates class for the current driver implementation i.e. the class responsible for /// reporting the current size of the terminal. /// /// /// /// IConsoleSizeMonitor CreateConsoleSizeMonitor (IConsoleOutput consoleOutput, IOutputBuffer outputBuffer); }