using Lattice.Core.Models; using Lattice.Core.Models.Enums; namespace Lattice.Core.Abstractions; /// /// Сервис управления жизненным циклом макета приложения. /// public interface ILayoutService { /// /// Текущий корневой узел всей структуры окон. /// LayoutNode? Root { get; } /// /// Событие, возникающее при любом изменении структуры (докинг, закрытие, изменение размеров). /// event EventHandler? LayoutUpdated; /// /// Перемещает узел в указанную позицию относительно целевого узла. /// void Dock(LayoutNode source, LayoutNode target, DockDirection direction); /// /// Удаляет узел из макета (например, при закрытии вкладки). /// void Remove(LayoutNode node); /// /// Импортирует структуру макета из снапшота. /// void LoadLayout(string jsonData); /// /// Экспортирует текущую структуру в строку для сохранения. /// string SaveLayout(); }