using MainShell.Recipe.Models;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MainShell.Recipe.ViewModel
{
    public interface IRecipeViewModel
    {
        RecipeManager RecipeManager { get; }
        ObservableCollection<RecipeWrap> RecipeWraps { get; }
        RecipeWrap SelectedRecipeWrap { get; set; }
        void SyncSelectionFromActiveRecipe();
        RecipeButtonGroupViewModel RecipeButtonGroupViewModel { get;}
        bool HideRecipePanel { get; set; }
        bool CanCopyRecipe { get; }
        bool CanImportRecipe { get; }
        bool CanExportRecipe { get; }
        bool HasUnsavedChanges { get; }
        string CurrentRecipeDisplayName { get; }
        bool TryLeaveCurrentRecipeContext();
        void SaveCurrentRecipeSilently();
        void OnCreateNewRecipe(object sender, EventArgs eventArgs);
        void OnDeleteRecipe(object sender, EventArgs eventArgs);
        void OnCopyRecipe(object sender, EventArgs eventArgs);
        void OnApplyRecipe(object sender, EventArgs eventArgs);
        void OnImportRecipe(object sender, EventArgs eventArgs);
        void OnSaveRecipe(object sender, EventArgs eventArgs);
        void OnExportRecipe(object sender, EventArgs eventArgs);
        void OnReNameRecipe(object sender, EventArgs eventArgs);
        void OnClearRecipe(object sender, EventArgs eventArgs);
    }
}
