using System.Threading.Tasks;
using Dalamud.Interface.ImGuiNotification.Internal;
using Dalamud.Interface.Textures;
using Dalamud.Interface.Textures.TextureWraps;
using Serilog;
namespace Dalamud.Interface.ImGuiNotification;
/// Represents a blueprint for a notification.
public sealed record Notification : INotification
{
///
/// Gets the default value for and .
///
public static TimeSpan DefaultDuration => NotificationConstants.DefaultDuration;
///
public string Content { get; set; } = string.Empty;
///
public string? Title { get; set; }
///
public string? MinimizedText { get; set; }
///
public NotificationType Type { get; set; } = NotificationType.None;
///
public INotificationIcon? Icon { get; set; }
///
public ISharedImmediateTexture? IconTexture { get; set; }
///
public DateTime HardExpiry { get; set; } = DateTime.MaxValue;
///
public TimeSpan InitialDuration { get; set; } = DefaultDuration;
///
public TimeSpan ExtensionDurationSinceLastInterest { get; set; } = DefaultDuration;
///
public bool ShowIndeterminateIfNoExpiry { get; set; } = true;
///
public bool RespectUiHidden { get; set; } = true;
///
public bool Minimized { get; set; } = true;
///
public bool UserDismissable { get; set; } = true;
///
public float Progress { get; set; } = 1f;
}