namespace Lattice.Core.Docking.Serialization;
///
/// Абстракция для сериализации и десериализации состояния макета док-системы.
/// Позволяет сохранять и восстанавливать расположение панелей, окон и их состояние.
///
///
/// Эта абстракция позволяет реализовать различные форматы сериализации (JSON, XML, бинарный)
/// и различные хранилища (файлы, базы данных, облако) без изменения основной логики док-системы.
///
public interface ILayoutSerializer
{
///
/// Сериализует состояние менеджера макета в строку.
///
/// Менеджер макета для сериализации.
/// Строковое представление состояния макета.
string Serialize(Engine.LayoutManager manager);
///
/// Десериализует состояние макета из строки и восстанавливает его в менеджере.
///
/// Менеджер макета для восстановления состояния.
/// Сериализованное состояние макета.
///
/// Функция разрешения контента по идентификатору, используемая для восстановления
/// ссылок на контент в десериализованном состоянии.
///
void Deserialize(Engine.LayoutManager manager, string serializedLayout,
Func contentResolver);
}