using LightlessSync.API.Data; namespace LightlessSync.PlayerData.Pairs; /// /// orchestrates the lifecycle of a paired character /// public interface IPairHandlerAdapter : IDisposable, IPairPerformanceSubject { new string Ident { get; } bool Initialized { get; } bool IsVisible { get; } bool ScheduledForDeletion { get; set; } CharacterData? LastReceivedCharacterData { get; } long LastAppliedDataBytes { get; } new string? PlayerName { get; } string PlayerNameHash { get; } uint PlayerCharacterId { get; } void Initialize(); void ApplyData(CharacterData data); void ApplyLastReceivedData(bool forced = false); bool FetchPerformanceMetricsFromCache(); void LoadCachedCharacterData(CharacterData data); void SetUploading(bool uploading); void SetPaused(bool paused); }