using System.Collections.Generic;
using System.Threading.Tasks;
using Wino.Core.Domain.Models.Printing;
namespace Wino.Core.WinUI.Interfaces;
///
/// Service interface for displaying the custom print dialog and managing print settings.
///
public interface IPrintDialogService
{
///
/// Shows the print dialog and returns the configured print settings.
///
/// Initial print settings to populate the dialog with. If null, default settings will be used.
/// List of available printers to show in the dialog. If null or empty, the service should attempt to discover printers.
///
/// A task that resolves to the configured WebView2PrintSettingsModel if the user clicked Print,
/// or null if the user cancelled the dialog.
///
Task ShowPrintDialogAsync(
WebView2PrintSettingsModel initialSettings = null,
IEnumerable availablePrinters = null);
///
/// Gets the list of available printers on the system.
///
/// A task that resolves to a list of available printer names.
Task> GetAvailablePrintersAsync();
}