using Avalonia.Controls.Notifications;
namespace Ursa.Controls;
///
/// Represents a message that can be shown in a window or by the host operating system.
///
public interface IMessage
{
///
/// Gets the of the message.
///
NotificationType Type { get; }
///
/// Gets a value indicating whether the message should show an icon.
///
bool ShowIcon { get; }
///
/// Gets a value indicating whether the message should show a close button.
///
bool ShowClose { get; }
///
/// Gets the expiration time of the message after which it will automatically close.
/// If the value is then the message will remain open until the user closes it.
///
TimeSpan Expiration { get; }
///
/// Gets an Action to be run when the message is clicked.
///
Action? OnClick { get; }
///
/// Gets an Action to be run when the message is closed.
///
Action? OnClose { get; }
}