using System.Collections.Generic;
namespace Semmle.Extraction.CSharp.DependencyFetching
{
internal interface IDotNetCliInvoker
{
///
/// The name of the dotnet executable.
///
string Exec { get; }
///
/// Execute `dotnet ` and return true if the command succeeded, otherwise false.
/// If `silent` is true the output of the command is logged as `debug` otherwise as `info`.
///
bool RunCommand(string args, bool silent = true);
///
/// Execute `dotnet ` and return true if the command succeeded, otherwise false.
/// The output of the command is returned in `output`.
/// If `silent` is true the output of the command is logged as `debug` otherwise as `info`.
///
bool RunCommand(string args, out IList output, bool silent = true);
///
/// Execute `dotnet ` in `` and return true if the command succeeded, otherwise false.
/// The output of the command is returned in `output`.
/// If `silent` is true the output of the command is logged as `debug` otherwise as `info`.
///
bool RunCommand(string args, string? workingDirectory, out IList output, bool silent = true);
}
}