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(); }