#nullable enable using System.Collections.Concurrent; 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 window. /// /// /// /// IWindowSizeMonitor CreateWindowSizeMonitor (IConsoleOutput consoleOutput, IOutputBuffer outputBuffer); }