using System; using System.Collections.Generic; using System.Threading.Tasks; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Models.Personalization; namespace Wino.Core.Domain.Interfaces; public interface INewThemeService : IInitializeAsync { event EventHandler ElementThemeChanged; event EventHandler AccentColorChanged; event EventHandler BackdropChanged; Task> GetAvailableThemesAsync(); Task CreateNewCustomThemeAsync(string themeName, string accentColor, byte[] wallpaperData); Task> GetCurrentCustomThemesAsync(); Task DeleteCustomThemeAsync(Guid themeId); List GetAvailableAccountColors(); Task ApplyCustomThemeAsync(bool isInitializing); // Window Backdrop Management WindowBackdropType CurrentBackdropType { get; set; } void ApplyBackdrop(WindowBackdropType backdropType); // Settings ApplicationElementTheme RootTheme { get; set; } Guid? CurrentApplicationThemeId { get; set; } string AccentColor { get; set; } string GetSystemAccentColorHex(); bool IsCustomTheme { get; } // Improved accent color management Task SetAccentColorAsync(string hexColor, bool preserveTheme = true); // Title bar color management void UpdateSystemCaptionButtonColors(); // Backdrop management List GetAvailableBackdropTypes(); /// /// Re-applies the current theme (backdrop, root theme, accent, caption colors) /// to the currently active window. Use after a window transition. /// Task ApplyThemeToActiveWindowAsync(); }