#if OCTAGON
#import <Foundation/Foundation.h>
#import "keychain/ckks/CKKSResultOperation.h"
#import "keychain/ot/OctagonStateMachineHelpers.h"
NS_ASSUME_NONNULL_BEGIN
extern OctagonState* const OctagonStateNoAccount;
extern OctagonState* const OctagonStateUntrusted;
extern OctagonState* const OctagonStateWaitForHSA2;
extern OctagonState* const OctagonStateWaitForCDP;
extern OctagonState* const OctagonStateBecomeUntrusted;
extern OctagonState* const OctagonStateWaitForUnlock;
extern OctagonState* const OctagonStateReady;
extern OctagonState* const OctagonStateBecomeReady;
extern OctagonState* const OctagonStateRefetchCKKSPolicy;
extern OctagonState* const OctagonStateEnsureConsistency;
extern OctagonState* const OctagonStateEnsureOctagonKeysAreConsistent;
extern OctagonState* const OctagonStateEnsureUpdatePreapprovals;
extern OctagonState* const OctagonStateInitializing;
extern OctagonState* const OctagonStateWaitingForCloudKitAccount;
extern OctagonState* const OctagonStateCloudKitNewlyAvailable;
extern OctagonState* const OctagonStateDetermineCDPState;
extern OctagonState* const OctagonStateCheckTrustState;
extern OctagonState* const OctagonStateInitiatorAwaitingVoucher;
extern OctagonState* const OctagonStateInitiatorSetCDPBit;
extern OctagonState* const OctagonStateInitiatorUpdateDeviceList;
extern OctagonState* const OctagonStateInitiatorJoin;
extern OctagonState* const OctagonStateInitiatorJoinCKKSReset;
extern OctagonState* const OctagonStateInitiatorJoinAfterCKKSReset;
extern OctagonState* const OctagonStateBottleJoinVouchWithBottle;
extern OctagonState* const OctagonStateIdentityPrepared;
extern OctagonState* const OctagonStateDeviceListUpdated;
extern OctagonState* const OctagonStateBottleJoinCreateIdentity;
extern OctagonState* const OctagonStateCreateIdentityForRecoveryKey;
extern OctagonState* const OctagonStateVouchWithRecoveryKey;
extern OctagonState* const OctagonStateResetBecomeUntrusted;
extern OctagonState* const OctagonStateResetAndEstablish;
extern OctagonState* const OctagonStateResetAnyMissingTLKCKKSViews;
extern OctagonState* const OctagonStateEstablishEnableCDPBit;
extern OctagonState* const OctagonStateReEnactDeviceList;
extern OctagonState* const OctagonStateReEnactPrepare;
extern OctagonState* const OctagonStateReEnactReadyToEstablish;
extern OctagonState* const OctagonStateEstablishCKKSReset;
extern OctagonState* const OctagonStateEstablishAfterCKKSReset;
extern OctagonState* const OctagonStateHSA2HealthCheck;
extern OctagonState* const OctagonStateCDPHealthCheck;
extern OctagonState* const OctagonStateSecurityTrustCheck;
extern OctagonState* const OctagonStateTPHTrustCheck;
extern OctagonState* const OctagonStateCuttlefishTrustCheck;
extern OctagonState* const OctagonStatePostRepairCFU;
extern OctagonState* const OctagonStateHealthCheckReset;
extern OctagonState* const OctagonStateHealthCheckLeaveClique;
extern OctagonState* const OctagonStateNoAccountDoReset;
extern OctagonState* const OctagonStateEscrowTriggerUpdate;
extern OctagonState* const OctagonStateUpdateSOSPreapprovals;
extern OctagonState* const OctagonStateError;
extern OctagonState* const OctagonStateDisabled;
extern OctagonState* const OctagonStateAttemptSOSUpgrade;
extern OctagonState* const OctagonStateSOSUpgradeCKKSReset;
extern OctagonState* const OctagonStateSOSUpgradeAfterCKKSReset;
extern OctagonState* const OctagonStateDetermineiCloudAccountState;
extern OctagonState* const OctagonStateAssistCKKSTLKUpload;
extern OctagonState* const OctagonStateAssistCKKSTLKUploadCKKSReset;
extern OctagonState* const OctagonStateAssistCKKSTLKUploadAfterCKKSReset;
extern OctagonState* const OctagonStateStartCompanionPairing;
extern OctagonState* const OctagonStateWaitForCDPUpdated;
extern OctagonState* const OctagonStateUntrustedUpdated;
extern OctagonState* const OctagonStateReadyUpdated;
extern OctagonState* const OctagonStateUnimplemented;
NSDictionary<OctagonState*, NSNumber*>* OctagonStateMap(void);
NSDictionary<NSNumber*, OctagonState*>* OctagonStateInverseMap(void);
NSSet<OctagonState*>* OctagonInAccountStates(void);
NSSet<OctagonState *>* OctagonHealthSourceStates(void);
NSSet<OctagonFlag *>* AllOctagonFlags(void);
extern OctagonFlag* const OctagonFlagIDMSLevelChanged;
extern OctagonFlag* const OctagonFlagEgoPeerPreapproved;
extern OctagonFlag* const OctagonFlagCKKSRequestsTLKUpload;
extern OctagonFlag* const OctagonFlagCuttlefishNotification NS_SWIFT_NAME(OctagonFlagCuttlefishNotification);
extern OctagonFlag* const OctagonFlagFetchAuthKitMachineIDList;
extern OctagonFlag* const OctagonFlagAccountIsAvailable;
extern OctagonFlag* const OctagonFlagCDPEnabled;
extern OctagonFlag* const OctagonFlagAttemptSOSUpgrade;
extern OctagonFlag* const OctagonFlagUnlocked;
extern OctagonFlag* const OctagonFlagAttemptSOSUpdatePreapprovals;
extern OctagonFlag* const OctagonFlagAttemptSOSConsistency;
extern OctagonFlag* const OctagonFlagEscrowRequestInformCloudServicesOperation;
NS_ASSUME_NONNULL_END
#endif // OCTAGON