using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Data.Models;
using SharedLibraryCore.Commands;
namespace SharedLibraryCore.Interfaces
{
///
/// defines capabilities of script command factory
///
public interface IScriptCommandFactory
{
///
/// generate a new script command from parsed source
///
/// name of command
/// alias of command
/// description of command
/// minimum required permission
/// target required or not
/// command arguments (name, is required)
/// action to perform when command is executed
///
///
IManagerCommand CreateScriptCommand(string name, string alias, string description, string permission,
bool isTargetRequired, IEnumerable args, Func executeAction,
IEnumerable supportedGames);
}
}