2 #import <Foundation/Foundation.h>
4 #import "keychain/ot/CuttlefishXPCWrapper.h"
5 #import "keychain/ot/OctagonStateMachine.h"
6 #import "keychain/ot/OTSOSAdapter.h"
7 #import "keychain/ot/OTAuthKitAdapter.h"
8 #import "keychain/ot/OTCuttlefishAccountStateHolder.h"
9 #import "keychain/ot/OTDeviceInformationAdapter.h"
10 #import "keychain/ckks/CKKSViewManager.h"
11 #import "keychain/ckks/CKKSNearFutureScheduler.h"
12 #import "keychain/escrowrequest/Framework/SecEscrowRequest.h"
14 NS_ASSUME_NONNULL_BEGIN
16 // Used for dependency injection into most OctagonStateTransition operations
17 @interface OTOperationDependencies
: NSObject
19 @property NSString
* containerName
;
20 @property NSString
* contextID
;
22 @property OTCuttlefishAccountStateHolder
* stateHolder
;
24 @property id
<OctagonStateFlagHandler
> flagHandler
;
25 @property id
<OTSOSAdapter
> sosAdapter
;
26 @
property (nullable
) id
<CKKSPeerProvider
> octagonAdapter
;
27 @property id
<OTAuthKitAdapter
> authKitAdapter
;
28 @property id
<OTDeviceInformationAdapter
> deviceInformationAdapter
;
29 @
property (readonly
) CuttlefishXPCWrapper
* cuttlefishXPCWrapper
;
30 @
property (readonly
, weak
) CKKSViewManager
* viewManager
;
31 @property CKKSLockStateTracker
* lockStateTracker
;
32 @property Class
<SecEscrowRequestable
> escrowRequestClass
;
34 - (instancetype
)initForContainer
:(NSString
*)containerName
35 contextID
:(NSString
*)contextID
36 stateHolder
:(OTCuttlefishAccountStateHolder
*)stateHolder
37 flagHandler
:(id
<OctagonStateFlagHandler
>)flagHandler
38 sosAdapter
:(id
<OTSOSAdapter
>)sosAdapter
39 octagonAdapter
:(id
<CKKSPeerProvider
> _Nullable
)octagonAdapter
40 authKitAdapter
:(id
<OTAuthKitAdapter
>)authKitAdapter
41 deviceInfoAdapter
:(id
<OTDeviceInformationAdapter
>)deviceInfoAdapter
42 viewManager
:(CKKSViewManager
*)viewManager
43 lockStateTracker
:(CKKSLockStateTracker
*)lockStateTracker
44 cuttlefishXPCWrapper
:(CuttlefishXPCWrapper
*)cuttlefishXPCWrapper
45 escrowRequestClass
:(Class
<SecEscrowRequestable
>)escrowRequestClass
;