#import <React/RCTBridgeModule.h>
#import "React/RCTViewManager.h"

@interface RCT_EXTERN_MODULE(SMKitUIManager, RCTViewManager)
RCT_EXTERN_METHOD(configure:(NSString*)key onSuccess:(RCTPromiseResolveBlock)onSuccess onFailure:(RCTPromiseRejectBlock)onFailure)
RCT_EXTERN_METHOD(startAssessment:(NSString*)type showSummary:(BOOL)showSummary userData:(NSString*)userData forceShowUserDataScreen:(BOOL)forceShowUserDataScreen customAssessmentID:(NSString*)customAssessmentID onWorkoutDidFinish:(RCTPromiseResolveBlock)onWorkoutDidFinish onWorkoutFailed:(RCTPromiseRejectBlock)onWorkoutFailed)
RCT_EXTERN_METHOD(startCustomWorkout:(NSString*)rawJson onWorkoutDidFinish:(RCTPromiseResolveBlock)onWorkoutDidFinish onWorkoutFailed:(RCTPromiseRejectBlock)onWorkoutFailed)
RCT_EXTERN_METHOD(startCustomAssessment:(NSString*)rawJson userData:(NSString*)userData forceShowUserDataScreen:(BOOL)forceShowUserDataScreen showSummary:(BOOL)showSummary onWorkoutDidFinish:(RCTPromiseResolveBlock)onWorkoutDidFinish onWorkoutFailed:(RCTPromiseRejectBlock)onWorkoutFailed)
RCT_EXTERN_METHOD(startWorkoutProgram:(NSString*)dic onWorkoutDidFinish:(RCTPromiseResolveBlock)onWorkoutDidFinish onWorkoutFailed:(RCTPromiseRejectBlock)onWorkoutFailed)

RCT_EXTERN_METHOD(setSessionLanguage:(NSString*)language)
RCT_EXTERN_METHOD(setEndExercisePreferences:(NSString*)preferencesString)
RCT_EXTERN_METHOD(setCounterPreferences:(NSString*)preferencesString)

@end
