@class SBFAuthenticationAssertionManager, NSString, SBFMobileKeyBag, NSDate, NSHashTable, SBFAuthenticationAssertion, PCPersistentTimer, SBFMobileKeyBagState, NSMutableArray, BSCompoundAssertion, SBFSecureDisplayCoordinator; @protocol SBFAuthenticationPolicy, SBFUserAuthenticationModel; @interface SBFUserAuthenticationController : NSObject <SBFMobileKeyBagObserver, SBFUserAuthenticationModelDelegate, SBFAuthenticationAssertionProviding, SBFAuthenticationStatusProvider, SBFPasscodeFieldChangeObserver> { SBFMobileKeyBag *_keybag; NSMutableArray *_responders; NSHashTable *_observers; id<SBFUserAuthenticationModel> _model; long long _authenticationState; SBFAuthenticationAssertionManager *_assertionManager; NSString *_lastIncorrectPasscodeAttempt; SBFAuthenticationAssertion *_transientAuthCheckingAssertion; struct __CFRunLoopObserver { } *_runLoopObserver; PCPersistentTimer *_unblockTimer; long long _cachedAuthFlag; SBFSecureDisplayCoordinator *_secureDisplayCoordinator; SBFMobileKeyBagState *_cachedExtendedState; BSCompoundAssertion *_secureDisplayDeferralAssertions; } @property (retain, nonatomic, getter=_policy, setter=_setPolicy:) id<SBFAuthenticationPolicy> policy; @property (readonly, nonatomic) NSDate *lastRevokedAuthenticationDate; @property (readonly, nonatomic) BOOL inSecureDisplayMode; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (BOOL)_authenticateIfInGracePeriod; - (void)dealloc; - (BOOL)hasPasscodeSet; - (void)_handleSuccessfulAuthentication:(id)a0 responder:(id)a1; - (id)succinctDescriptionBuilder; - (void)removeResponder:(id)a0; - (BOOL)_isPermanentlyBlocked; - (BOOL)_performNilPasscodeCheck; - (id)publicDescription; - (void)_clearBlockedState; - (BOOL)isAuthenticated; - (void)notePasscodeEntryBegan; - (void)_uncachePasscodeIfNecessary; - (long long)_evaluateAuthenticationAttempt:(id)a0 outError:(id *)a1; - (BOOL)_isUserRequestedEraseEnabled; - (void)_noteDeviceLockStateMayHaveChangedForExternalReasons; - (BOOL)_processAuthenticationRequest:(id)a0 responder:(id)a1; - (void)_updateAuthenticationStateAndDateForLockState:(id)a0; - (BOOL)_isTemporarilyBlocked; - (void)_removeAuthenticationAssertion:(id)a0; - (void)_addAuthenticationAssertion:(id)a0; - (void)_notifyClientsOfAuthenticationResult:(long long)a0 forRequest:(id)a1 error:(id)a2 withResponder:(id)a3; - (id)descriptionBuilderWithMultilinePrefix:(id)a0; - (id)createGracePeriodAssertionWithReason:(id)a0; - (void)_handleInvalidAuthentication:(id)a0 responder:(id)a1; - (void)_setModel:(id)a0; - (BOOL)hasAuthenticatedAtLeastOnceSinceBoot; - (long long)_evaluatePasscodeAttempt:(id)a0 outError:(id *)a1; - (void)_updateAuthenticationStateForPublicReason:(id)a0; - (void)_removeAuthResponder:(id)a0; - (void)addAsFirstResponder:(id)a0; - (BOOL)_isAssertionValid:(id)a0; - (void)keybag:(id)a0 extendedStateDidChange:(id)a1; - (void)processAuthenticationRequest:(id)a0 responder:(id)a1; - (void)_unblockTimerFired; - (id)createSecureDisplayDeferralAssertionWithReason:(id)a0; - (void)_revokeAuthenticationImmediately:(BOOL)a0 forPublicReason:(id)a1; - (void)_setup_runLoopObserverIfNecessary; - (id)descriptionWithMultilinePrefix:(id)a0; - (void)_removePrivateAuthenticationObserver:(id)a0; - (void)deviceLockStateMayHaveChangedForModel:(id)a0; - (BOOL)_isInBioUnlockState; - (void)_setupPolicy:(id)a0; - (void)_clearUnblockTimer; - (void)_scheduleUnblockTimer; - (id)createKeybagUnlockAssertionWithReason:(id)a0; - (void).cxx_destruct; - (void)revokeAuthenticationIfNecessaryForPublicReason:(id)a0; - (void)_setAuthState:(long long)a0; - (void)notePasscodeEntryCancelled; - (void)_updateSecureModeIfNecessaryForNewAuthState; - (void)_addAsFirstResponder:(id)a0; - (BOOL)isAuthenticatedCached; - (void)_updateAuthenticationStateImmediately:(BOOL)a0 forPublicReason:(id)a1; - (void)_addPrivateAuthenticationObserver:(id)a0; - (id)succinctDescription; - (void)deviceLockModelRequestsDeviceWipe:(id)a0; - (void)_handleFailedAuthentication:(id)a0 error:(id)a1 responder:(id)a2; - (void)keybagDidUnlockForTheFirstTime:(id)a0; - (void)processAuthenticationRequest:(id)a0; - (BOOL)_isUserAuthenticated; - (id)initWithAssertionManager:(id)a0 policy:(id)a1; - (BOOL)_boolForAuthenticationResult:(long long)a0; - (double)_timeUntilUnblockedSinceReferenceDate; - (BOOL)_shouldRevokeAuthenticationNow; - (long long)_evaluateBiometricAttempt:(id)a0; - (id)initWithAssertionManager:(id)a0 policy:(id)a1 keybag:(id)a2 model:(id)a3; - (void)_notifyAboutTemporaryBlockStatusChanged; - (id)_cachedLockStateExtended; - (void)_refreshModelCacheIfNeeded; - (void)_invalidateCachedPasscodeLockState; - (void)revokeAuthenticationImmediatelyIfNecessaryForPublicReason:(id)a0; - (void)revokeAuthenticationImmediatelyForPublicReason:(id)a0; - (BOOL)_isInGracePeriodState; @end