// 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_