#nullable enable
namespace Terminal.Gui;
///
/// Describes a response received from the console as a result of a request being sent via .
///
public class AnsiEscapeSequenceResponse
{
// QUESTION: Should this be nullable to indicate there was no error, or is string.Empty sufficient?
///
/// Gets the error string received from e.g. see
///
/// EscSeqUtils.CSI_SendDeviceAttributes.Request
///
/// .
///
public required string Error { get; init; }
// QUESTION: Does string.Empty indicate no response recevied? If not, perhaps make this property nullable?
///
/// Gets the Response string received from e.g. see
///
/// EscSeqUtils.CSI_SendDeviceAttributes.Request
///
/// .
///
public required string? Response { get; init; }
// QUESTION: Does string.Empty indicate no terminator expected? If not, perhaps make this property nullable?
///
///
/// Gets the terminator that uniquely identifies the response received from
/// the console. e.g. for
///
/// EscSeqUtils.CSI_SendDeviceAttributes.Request
///
/// the terminator is
///
/// EscSeqUtils.CSI_SendDeviceAttributes.Terminator
///
/// .
///
///
/// After sending a request, the first response with matching terminator will be matched
/// to the oldest outstanding request.
///
///
public required string Terminator { get; init; }
///
/// The value expected in the response after the CSI e.g.
///
/// EscSeqUtils.CSI_ReportTerminalSizeInChars.Value
///
/// should result in a response of the form ESC [ 8 ; height ; width t. In this case,
/// will be "8".
///
public string? ExpectedResponseValue { get; init; }
}