#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);
}