#ifndef _OT_FOLLOWUP_H_
#define _OT_FOLLOWUP_H_
#if OCTAGON
#import <Foundation/Foundation.h>
#import <CoreCDP/CDPFollowUpController.h>
#import "keychain/ckks/CKKSAnalytics.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(uint8_t, OTFollowupContextType) {
OTFollowupContextTypeNone,
OTFollowupContextTypeRecoveryKeyRepair,
OTFollowupContextTypeStateRepair,
OTFollowupContextTypeOfflinePasscodeChange,
};
NSString* OTFollowupContextTypeToString(OTFollowupContextType contextType);
@protocol OctagonFollowUpControllerProtocol
- (BOOL)postFollowUpWithContext:(CDPFollowUpContext *)context error:(NSError **)error;
- (BOOL)clearFollowUpWithContext:(CDPFollowUpContext *)context error:(NSError **)error;
@end
@interface CDPFollowUpController (Octagon) <OctagonFollowUpControllerProtocol>
@end
@interface OTFollowup : NSObject
- (id)initWithFollowupController:(id<OctagonFollowUpControllerProtocol>)cdpFollowupController;
- (BOOL)postFollowUp:(OTFollowupContextType)contextType
error:(NSError **)error;
- (BOOL)clearFollowUp:(OTFollowupContextType)contextType
error:(NSError **)error;
- (NSDictionary *_Nullable)sysdiagnoseStatus;
- (NSDictionary<NSString*,NSNumber*> *)sfaStatus;
@end
@interface OTFollowup (Testing)
- (BOOL)hasPosted:(OTFollowupContextType)contextType;
- (void)clearAllPostedFlags;
@end
NS_ASSUME_NONNULL_END
#endif // OCTAGON
#endif // _OT_FOLLOWUP_H_