namespace Sonex.Client.Views
{
    public interface IView
    {
        event System.EventHandler? StateChanged;

        bool HasChanges { get; }
        bool CanAdd => false;
        bool CanDelete => false;
        bool CanSave { get; }
        bool CanEdit { get; }

        void Add()
        {
        }

        void Delete()
        {
        }

        void Clear();
        void Reload();
        void Load(string key);
        void Save();

        void MarkChanged();
        void MarkSaved();
    }
}
