//
//  PaymentsReactNativePlugin.m
//  PaymentsReactNativePlugin
//
//  Module export for Swift TurboModule
//

#import <React/RCTBridgeModule.h>

// Export the Swift module to React Native
@interface RCT_EXTERN_MODULE(PaymentsReactNativePlugin, NSObject)

// Export all the methods from Swift
RCT_EXTERN_METHOD(initializeSDK:(NSString *)apiKey
                  config:(NSDictionary *)config
                  resolve:(RCTPromiseResolveBlock)resolve
                  reject:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(initiatePayment:(NSString *)jsonPaymentRequest
                  resolve:(RCTPromiseResolveBlock)resolve
                  reject:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(canMakePayment:(NSString *)paymentType
                  resolve:(RCTPromiseResolveBlock)resolve
                  reject:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(getSupportedPaymentMethods:(RCTPromiseResolveBlock)resolve
                  reject:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(getModuleInfo:(RCTPromiseResolveBlock)resolve
                  reject:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(runDiagnostics:(RCTPromiseResolveBlock)resolve
                  reject:(RCTPromiseRejectBlock)reject)

@end