using System.Collections.Generic; namespace LanMountainDesktop.PluginSdk; public interface IComponentSettingsAccessor { string ComponentId { get; } string? PlacementId { get; } T LoadSnapshot() where T : new(); void SaveSnapshot(T snapshot, IReadOnlyCollection? changedKeys = null); T LoadSection(string sectionId) where T : new(); void SaveSection(string sectionId, T section, IReadOnlyCollection? changedKeys = null); void DeleteSection(string sectionId); T? GetValue(string key); void SetValue(string key, T value, IReadOnlyCollection? changedKeys = null); }