namespace JdeScoping.SecureStoreManager.Services;
///
/// Result from unsaved changes prompt.
///
public enum UnsavedChangesResult
{
Save,
DontSave,
Cancel
}
///
/// Abstraction for platform-specific dialog operations.
/// Enables unit testing of view models that need to show dialogs.
///
public interface IDialogService
{
///
/// Shows an error message dialog.
///
/// The error message to display.
/// The dialog title.
Task ShowErrorAsync(string message, string title);
///
/// Shows an informational message dialog.
///
/// The informational message to display.
/// The dialog title.
Task ShowInfoAsync(string message, string title);
///
/// Shows a confirmation dialog with Yes/No options.
///
/// The confirmation message to display.
/// The dialog title.
/// True if user clicked Yes, false otherwise.
Task ShowConfirmationAsync(string message, string title);
///
/// Shows a prompt for unsaved changes with Save/Don't Save/Cancel options.
///
Task ShowUnsavedChangesPromptAsync();
///
/// Shows a save file dialog.
///
/// Dialog title.
/// Display name for the file type (e.g., "Key Files").
/// File pattern (e.g., "*.key").
/// Default extension (e.g., ".key").
/// Selected file path or null if cancelled.
Task ShowSaveFileDialogAsync(string title, string fileTypeName, string pattern, string defaultExtension);
///
/// Shows an open file dialog.
///
/// Dialog title.
/// Display name for the file type (e.g., "Key Files").
/// File pattern (e.g., "*.key").
/// Selected file path or null if cancelled.
Task ShowOpenFileDialogAsync(string title, string fileTypeName, string pattern);
}