public interface IBlazorDialogsHelper
{
    Task StopAsync(string message);
    Task<bool> AnswerYesNoAsync(string message);
    Task<bool> AnswerOkCancelAsync(string message);
    Task<int> AnswerYesNoCancelAsync(string message);
    Task<int> Answer3ButtonsAsync(string message, string button1, string button2, string button3);
    Task<double?> AskDoubleAsync(string message, double defaultValue, string mask, double minValue = double.MinValue, double maxValue = double.MaxValue, bool withTouchKeyBoard = false);
    Task<string> AskStringAsync(string message, string defaultValue, bool upperCase = false, int maxLength = int.MaxValue, bool nullIfCancel = false, bool isPassword = false, bool isEmail = false);
    Task<string[]> AskStringsAsync(string message, string defaultValue1, string defaultValue2, bool upperCase = false, int maxLength = 0);
    Task<double[]> AskDoublesAsync(string message, double defaultValue1, double defaultValue2, string mask, double minValue = double.MinValue, double maxValue = double.MaxValue);
    Task<string> AskMemoAsync(string message, string defaultValue, bool hideCancelButton = false, bool allowReadWriteWhenCancelButtonHidden = false);
    Task<DateTime?> AskDateTimeAsync(string message, DateTime defaultValue, bool withTime = false);
    Task<string> AskTargetSigAsync(string message, Sig._SigEnum module, string targetFilter = null);
    Task<_Dialogs.DialogAskComboRet> AskUserAsync(string message, bool withAll = false, string defaultValue = null);
    Task<_Dialogs.DialogAskComboRet> AskDepotAsync(string message, string defaultId = null, bool withAll = false, bool withAllActive = false);
    Task<_Dialogs.DialogAskComboRet[]> AskUsersAsync(string message, bool withAll = false, string defaultValue1 = null, string defaultValue2 = null);
    Task<_Dialogs.DialogAskComboRet[]> AskDepotsAsync(string message, string defaultId1 = null, string defaultId2 = null, bool withAll = false);
    Task<_Dialogs.DialogAskComboRet[]> AskDepotMplaceAsync(string message, string defaultIdDepot, string defaultIdMplace = null, bool disableDepot = false, string reqSqlMplace = null);
    Task<_Dialogs.DialogAskComboRet[]> AskRepsAsync(string message, bool withAll = false);
    Task<_Dialogs.DialogAskComboRet[]> AskExercicesAsync(string message);
    Task<_Dialogs.DialogAskComboRet> AskRepAsync(string message, bool withAll = false);
    Task<_Dialogs.DialogAskPieceRet> AskPieceAsync(string message, _Dialogs.AskPieceEnum typeDoc, int[] types, int defaultType, bool allowTypeChange = true, bool hidePiece = false, string whereSequenc = null, bool withOriginals = false);
    Task<_Dialogs.DialogAskComboRet> AskComboAsync(string message, List<(string id, string lib)> items, string defaultId = null, int width = 0);
    Task<_Dialogs.DialogAskComboRet> AskExerciceAsync(string message, byte defaultExercice = 0);
    Task<MercatorApi.ApiLangues?> AskLangueAsync(string message);
    Task<(int tiroir, string lib)?> AskTirAsync(bool withAll = false, bool withTiroirsLib = false); // null = aucun tiroir trouvé ou erreur / tiroir -1 = annulé / -9 = Tous (somme) / -8 = Tous (détails)
}