using System.Collections.ObjectModel;
using Artemis.Core.ScriptingProviders;
namespace Artemis.Core.Services
{
///
/// A service that allows you to manage various types of instances
///
public interface IScriptingService : IArtemisService
{
///
/// Gets a list of all currently active global scripts
///
ReadOnlyCollection GlobalScripts { get; }
///
/// Creates a instance for the given
///
/// The script configuration of the script
///
/// If the was found an instance of the script; otherwise .
///
GlobalScript? CreateScriptInstance(ScriptConfiguration scriptConfiguration);
///
/// Creates a instance for the given
///
/// The profile the script configuration is configured for
/// The script configuration of the script
///
/// If the was found an instance of the script; otherwise .
///
ProfileScript? CreateScriptInstance(Profile profile, ScriptConfiguration scriptConfiguration);
///
/// Deletes the provided global script by it's configuration
///
void DeleteScript(ScriptConfiguration scriptConfiguration);
}
}