chromium/ios/chrome/browser/ui/settings/password/password_checkup/password_checkup_coordinator.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_CHECKUP_PASSWORD_CHECKUP_COORDINATOR_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_CHECKUP_PASSWORD_CHECKUP_COORDINATOR_H_

#import "components/password_manager/core/browser/ui/password_check_referrer.h"
#import "ios/chrome/browser/shared/coordinator/chrome_coordinator/chrome_coordinator.h"
#import "ios/chrome/browser/ui/settings/password/reauthentication/password_manager_reauthentication_delegate.h"

@protocol ApplicationCommands;
@class PasswordCheckupCoordinator;
namespace password_manager {
enum class WarningType;
}
@protocol ReauthenticationProtocol;

// Delegate for PasswordCheckupCoordinator.
@protocol
    PasswordCheckupCoordinatorDelegate <PasswordManagerReauthenticationDelegate>

// Called when the view controller is removed from navigation controller.
- (void)passwordCheckupCoordinatorDidRemove:
    (PasswordCheckupCoordinator*)coordinator;

@end

// This coordinator presents the Password Checkup homepage.
@interface PasswordCheckupCoordinator : ChromeCoordinator

- (instancetype)
    initWithBaseNavigationController:
        (UINavigationController*)navigationController
                             browser:(Browser*)browser
                        reauthModule:(id<ReauthenticationProtocol>)reauthModule
                            referrer:(password_manager::PasswordCheckReferrer)
                                         referrer NS_DESIGNATED_INITIALIZER;

- (instancetype)initWithBaseViewController:(UIViewController*)viewController
                                   browser:(Browser*)browser NS_UNAVAILABLE;

@property(nonatomic, weak) id<PasswordCheckupCoordinatorDelegate> delegate;

@property(nonatomic, weak) id<ApplicationCommands> dispatcher;

// Show the Password Issues page for `warningType`.
- (void)showPasswordIssuesWithWarningType:
    (password_manager::WarningType)warningType;

@end

#endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_CHECKUP_PASSWORD_CHECKUP_COORDINATOR_H_