chromium/ios/chrome/credential_provider_extension/reauthentication_handler.h

// Copyright 2020 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_CREDENTIAL_PROVIDER_EXTENSION_REAUTHENTICATION_HANDLER_H_
#define IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_REAUTHENTICATION_HANDLER_H_

#import "ios/chrome/common/ui/reauthentication/reauthentication_protocol.h"

#import <UIKit/UIKit.h>

// Handler for showing the hardwarde reauthentication input to user, or
// a dialog about setting a passcode if nothing else is available.
@interface ReauthenticationHandler : NSObject

// Creates a handler with the given `ReauthenticationProtocol` module.
// A test instance can be passed in.
- (instancetype)initWithReauthenticationModule:
    (id<ReauthenticationProtocol>)reauthenticationModule;

// Starts reauthentication flow, which will call `completionHandler` with
// the result status, or present an alert reminding user to set a passcode
// if no hardware for reauthentication is available.
- (void)verifyUserWithCompletionHandler:
            (void (^)(ReauthenticationResult))completionHandler
        presentReminderOnViewController:(UIViewController*)viewController;

@end

#endif  // IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_REAUTHENTICATION_HANDLER_H_