#import <React/RCTBridgeModule.h>

@interface RCT_EXTERN_MODULE(ReactNativePlugin, NSObject)

RCT_EXTERN_METHOD(multiply:(float)a
	withB:(float)b
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(transactionDoSale:(NSString *)settings
	withRequest:(NSString *)request
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(transactionDoAuth:(NSString *)settings
	withRequest:(NSString *)request
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(transactionDoCapture:(NSString *)settings
	withRequest:(NSString *)request
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(transactionDoVoid:(NSString *)settings
	withRequest:(NSString *)request
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(transactionGetStatus:(NSString *)settings
	withRequest:(NSString *)request
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(tokenizationVaultCard:(NSString *)settings
	withRequest:(NSString *)request
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(tokenizationUpdateCard:(NSString *)settings
	withToken:(NSString *)token
	withRequest:(NSString *)request
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(tokenizationShowCard:(NSString *)settings
	withToken:(NSString *)token
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(tokenizationShowCards:(NSString *)settings
	withTokens:(NSString *)tokens
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(tokenizationDeleteCard:(NSString *)settings
	withToken:(NSString *)token
	withResolver:(RCTPromiseResolveBlock)resolve
	withRejecter:(RCTPromiseRejectBlock)reject)

+ (BOOL)requiresMainQueueSetup
{
  return NO;
}

@end
