using System.Collections.Generic; namespace LanMountainDesktop.AirAppSdk; public interface ISettingsService { event EventHandler? Changed; T LoadSnapshot(AirAppSettingsScope scope, string? subjectId = null, string? placementId = null) where T : new(); void SaveSnapshot( AirAppSettingsScope scope, T snapshot, string? subjectId = null, string? placementId = null, string? sectionId = null, IReadOnlyCollection? changedKeys = null); T LoadSection( AirAppSettingsScope scope, string subjectId, string sectionId, string? placementId = null) where T : new(); void SaveSection( AirAppSettingsScope scope, string subjectId, string sectionId, T section, string? placementId = null, IReadOnlyCollection? changedKeys = null); void DeleteSection( AirAppSettingsScope scope, string subjectId, string sectionId, string? placementId = null); T? GetValue( AirAppSettingsScope scope, string key, string? subjectId = null, string? placementId = null, string? sectionId = null); void SetValue( AirAppSettingsScope scope, string key, T value, string? subjectId = null, string? placementId = null, string? sectionId = null, IReadOnlyCollection? changedKeys = null); IComponentSettingsAccessor GetComponentAccessor(string componentId, string? placementId); }