// Copyright (c) Arlo Godfrey. All Rights Reserved.
// Licensed under the GNU Lesser General Public License, Version 3.0 with additional terms.
// See the LICENSE, LICENSE.LESSER and LICENSE.ADDITIONAL files in the project root for more information.
using System;
using OwlCore.AbstractUI.Models;
using StrixMusic.Sdk.AppModels;
namespace StrixMusic.Sdk.Services
{
///
/// A service that facilitates raising s.
///
public interface INotificationService
{
///
/// The maximum number of notification that will be raised at once. Dismiss a notification to show remaining notifications in the queue.
///
public int MaxActiveNotifications { get; }
///
/// Enqueue a notification for the Shell to display.
///
/// The title for the notification.
/// The body content for the notification.
/// The created notification.
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1030:Use events where appropriate", Justification = "Method raises event")]
Notification RaiseNotification(string title, string message = "");
///
/// Enqueue a notification for the Shell to display.
///
/// The created notification.
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1030:Use events where appropriate", Justification = "Method raises event")]
Notification RaiseNotification(AbstractUICollection elementGroup);
///
/// Raised when a new notification needs to be displayed.
///
public event EventHandler? NotificationRaised;
///
/// Raised when the user dismisses a notification.
///
public event EventHandler? NotificationDismissed;
}
}