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();
}