using System;
using System.Threading.Tasks;

namespace eSuite.WorkBench.Services
{
    public interface ICommandsService
    {
        public event EventHandler<FeedbackEventArgs> FeedbackMessage;

        //string IPAddress { get; }
        Task StartProxyContainerAsync(string tag);
        Task StartApiContainerAsync(string tag, string databaseName);
        Task StartWebUiContainerAsync(string tag);
        Task StartDatabaseMigratorContainerAsync(string tag, string databaseName);
        Task StartRabbitMQContainerAsync();

        Task StartSchedulerContainerAsync(string tag, string databaseName);
        Task StartMessageProcessorContainerAsync(string tag, string databaseName);
        Task<bool> IsAnyContainerRunningAsync();
        Task StopContainersAsync();
        bool IsAnyContainerRunning();
        Task ConnectToContainerRegistry();
        Task LaunchSwagger();
        Task LaunchWebUi();
        Task LaunchHealthZ();
    }
}