chromium/ios/chrome/browser/ui/settings/password/password_settings/password_bulk_move_handler.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SETTINGS_PASSWORD_BULK_MOVE_HANDLER_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SETTINGS_PASSWORD_BULK_MOVE_HANDLER_H_

// Protocol which handles showing alerts or authentication in response to user
// interactions with the bulk move passwords to account section in password
// manager settings.
@protocol BulkMoveLocalPasswordsToAccountHandler

// Attempts to auth the user and moves the passwords if auth is successful. If
// it's not successful, does nothing. If the user has no auth set on their
// device, prompt them to add some.
- (void)showAuthenticationForMovePasswordsToAccountWithMessage:
    (NSString*)message;

// Show the move passwords to account confirmation alert with constructed title
// and description.
- (void)showConfirmationDialogWithAlertTitle:(NSString*)alertTitle
                            alertDescription:(NSString*)alertDescription;

// Shows the snackbar confirming to the user that their local passwords have
// been saved to their account.
- (void)showMovedToAccountSnackbarWithPasswordCount:(int)count
                                          userEmail:(std::string)email;

@end

#endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SETTINGS_PASSWORD_BULK_MOVE_HANDLER_H_