/*
 * ============================================================================
 * = COPYRIGHT
 *          PAX Computer Technology(Shenzhen) Co., Ltd. PROPRIETARY INFORMATION
 *   This software is supplied under the terms of a license agreement or nondisclosure
 *   agreement with PAX Computer Technology(Shenzhen) Co., Ltd. and may not be copied or
 *   disclosed except in accordance with the terms in that agreement.
 *     Copyright (C) 2023 PAX Computer Technology(Shenzhen) Co., Ltd. All rights reserved.
 * ============================================================================
 */

#import <Foundation/Foundation.h>
#if __has_include(<POSLinkAdmin/PLExecutionResult.h>)
   #import <POSLinkAdmin/PLExecutionResult.h>
#elif __has_include("PLExecutionResult.h")
   #import "PLExecutionResult.h"
#endif



#if __has_include(<POSLinkAdmin/PLBaseTerminal.h>)
   #import <POSLinkAdmin/PLBaseTerminal.h>
#elif __has_include("PLBaseTerminal.h")
   #import "PLBaseTerminal.h"
#endif



#if __has_include(<POSLinkAdmin/PLDeleteImageRequest.h>)
   #import <POSLinkAdmin/PLDeleteImageRequest.h>
#elif __has_include("PLDeleteImageRequest.h")
   #import "PLDeleteImageRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLUploadLogsRequest.h>)
   #import <POSLinkAdmin/PLUploadLogsRequest.h>
#elif __has_include("PLUploadLogsRequest.h")
   #import "PLUploadLogsRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLDoSignatureRequest.h>)
   #import <POSLinkAdmin/PLDoSignatureRequest.h>
#elif __has_include("PLDoSignatureRequest.h")
   #import "PLDoSignatureRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLVasPushDataRequest.h>)
   #import <POSLinkAdmin/PLVasPushDataRequest.h>
#elif __has_include("PLVasPushDataRequest.h")
   #import "PLVasPushDataRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLConfigurePinRequest.h>)
   #import <POSLinkAdmin/PLConfigurePinRequest.h>
#elif __has_include("PLConfigurePinRequest.h")
   #import "PLConfigurePinRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLTokenAdministrativeRequest.h>)
   #import <POSLinkAdmin/PLTokenAdministrativeRequest.h>
#elif __has_include("PLTokenAdministrativeRequest.h")
   #import "PLTokenAdministrativeRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLPrintBatchReportRequest.h>)
   #import <POSLinkAdmin/PLPrintBatchReportRequest.h>
#elif __has_include("PLPrintBatchReportRequest.h")
   #import "PLPrintBatchReportRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLInitRequest.h>)
   #import <POSLinkAdmin/PLInitRequest.h>
#elif __has_include("PLInitRequest.h")
   #import "PLInitRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLSetGoogleSmartTapParametersRequest.h>)
   #import <POSLinkAdmin/PLSetGoogleSmartTapParametersRequest.h>
#elif __has_include("PLSetGoogleSmartTapParametersRequest.h")
   #import "PLSetGoogleSmartTapParametersRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLCheckFileRequest.h>)
   #import <POSLinkAdmin/PLCheckFileRequest.h>
#elif __has_include("PLCheckFileRequest.h")
   #import "PLCheckFileRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLClearCardBufferRequest.h>)
   #import <POSLinkAdmin/PLClearCardBufferRequest.h>
#elif __has_include("PLClearCardBufferRequest.h")
   #import "PLClearCardBufferRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLSetSafParametersRequest.h>)
   #import <POSLinkAdmin/PLSetSafParametersRequest.h>
#elif __has_include("PLSetSafParametersRequest.h")
   #import "PLSetSafParametersRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLSetApplePayVasParametersRequest.h>)
   #import <POSLinkAdmin/PLSetApplePayVasParametersRequest.h>
#elif __has_include("PLSetApplePayVasParametersRequest.h")
   #import "PLSetApplePayVasParametersRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLGetSafParametersRequest.h>)
   #import <POSLinkAdmin/PLGetSafParametersRequest.h>
#elif __has_include("PLGetSafParametersRequest.h")
   #import "PLGetSafParametersRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLGetSignatureRequest.h>)
   #import <POSLinkAdmin/PLGetSignatureRequest.h>
#elif __has_include("PLGetSignatureRequest.h")
   #import "PLGetSignatureRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLResetScreenRequest.h>)
   #import <POSLinkAdmin/PLResetScreenRequest.h>
#elif __has_include("PLResetScreenRequest.h")
   #import "PLResetScreenRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLGetVariableRequest.h>)
   #import <POSLinkAdmin/PLGetVariableRequest.h>
#elif __has_include("PLGetVariableRequest.h")
   #import "PLGetVariableRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLReprintRequest.h>)
   #import <POSLinkAdmin/PLReprintRequest.h>
#elif __has_include("PLReprintRequest.h")
   #import "PLReprintRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLUpdateResourceFileRequest.h>)
   #import <POSLinkAdmin/PLUpdateResourceFileRequest.h>
#elif __has_include("PLUpdateResourceFileRequest.h")
   #import "PLUpdateResourceFileRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLInputAccountRequest.h>)
   #import <POSLinkAdmin/PLInputAccountRequest.h>
#elif __has_include("PLInputAccountRequest.h")
   #import "PLInputAccountRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLUpdatePaymentParametersRequest.h>)
   #import <POSLinkAdmin/PLUpdatePaymentParametersRequest.h>
#elif __has_include("PLUpdatePaymentParametersRequest.h")
   #import "PLUpdatePaymentParametersRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLRebootRequest.h>)
   #import <POSLinkAdmin/PLRebootRequest.h>
#elif __has_include("PLRebootRequest.h")
   #import "PLRebootRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLSetVariableRequest.h>)
   #import <POSLinkAdmin/PLSetVariableRequest.h>
#elif __has_include("PLSetVariableRequest.h")
   #import "PLSetVariableRequest.h"
#endif



#if __has_include(<POSLinkAdmin/PLSetVariableResponse.h>)
   #import <POSLinkAdmin/PLSetVariableResponse.h>
#elif __has_include("PLSetVariableResponse.h")
   #import "PLSetVariableResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLUpdatePaymentParametersResponse.h>)
   #import <POSLinkAdmin/PLUpdatePaymentParametersResponse.h>
#elif __has_include("PLUpdatePaymentParametersResponse.h")
   #import "PLUpdatePaymentParametersResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLInputAccountResponse.h>)
   #import <POSLinkAdmin/PLInputAccountResponse.h>
#elif __has_include("PLInputAccountResponse.h")
   #import "PLInputAccountResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLSetSafParametersResponse.h>)
   #import <POSLinkAdmin/PLSetSafParametersResponse.h>
#elif __has_include("PLSetSafParametersResponse.h")
   #import "PLSetSafParametersResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLSetApplePayVasParametersResponse.h>)
   #import <POSLinkAdmin/PLSetApplePayVasParametersResponse.h>
#elif __has_include("PLSetApplePayVasParametersResponse.h")
   #import "PLSetApplePayVasParametersResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLUpdateResourceFileResponse.h>)
   #import <POSLinkAdmin/PLUpdateResourceFileResponse.h>
#elif __has_include("PLUpdateResourceFileResponse.h")
   #import "PLUpdateResourceFileResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLReprintResponse.h>)
   #import <POSLinkAdmin/PLReprintResponse.h>
#elif __has_include("PLReprintResponse.h")
   #import "PLReprintResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLGetSignatureResponse.h>)
   #import <POSLinkAdmin/PLGetSignatureResponse.h>
#elif __has_include("PLGetSignatureResponse.h")
   #import "PLGetSignatureResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLGetSafParametersResponse.h>)
   #import <POSLinkAdmin/PLGetSafParametersResponse.h>
#elif __has_include("PLGetSafParametersResponse.h")
   #import "PLGetSafParametersResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLInitResponse.h>)
   #import <POSLinkAdmin/PLInitResponse.h>
#elif __has_include("PLInitResponse.h")
   #import "PLInitResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLCheckFileResponse.h>)
   #import <POSLinkAdmin/PLCheckFileResponse.h>
#elif __has_include("PLCheckFileResponse.h")
   #import "PLCheckFileResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLTokenAdministrativeResponse.h>)
   #import <POSLinkAdmin/PLTokenAdministrativeResponse.h>
#elif __has_include("PLTokenAdministrativeResponse.h")
   #import "PLTokenAdministrativeResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLClearCardBufferResponse.h>)
   #import <POSLinkAdmin/PLClearCardBufferResponse.h>
#elif __has_include("PLClearCardBufferResponse.h")
   #import "PLClearCardBufferResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLDoSignatureResponse.h>)
   #import <POSLinkAdmin/PLDoSignatureResponse.h>
#elif __has_include("PLDoSignatureResponse.h")
   #import "PLDoSignatureResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLVasPushDataResponse.h>)
   #import <POSLinkAdmin/PLVasPushDataResponse.h>
#elif __has_include("PLVasPushDataResponse.h")
   #import "PLVasPushDataResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLResetScreenResponse.h>)
   #import <POSLinkAdmin/PLResetScreenResponse.h>
#elif __has_include("PLResetScreenResponse.h")
   #import "PLResetScreenResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLDeleteImageResponse.h>)
   #import <POSLinkAdmin/PLDeleteImageResponse.h>
#elif __has_include("PLDeleteImageResponse.h")
   #import "PLDeleteImageResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLUploadLogsResponse.h>)
   #import <POSLinkAdmin/PLUploadLogsResponse.h>
#elif __has_include("PLUploadLogsResponse.h")
   #import "PLUploadLogsResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLRebootResponse.h>)
   #import <POSLinkAdmin/PLRebootResponse.h>
#elif __has_include("PLRebootResponse.h")
   #import "PLRebootResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLConfigurePinResponse.h>)
   #import <POSLinkAdmin/PLConfigurePinResponse.h>
#elif __has_include("PLConfigurePinResponse.h")
   #import "PLConfigurePinResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLGetVariableResponse.h>)
   #import <POSLinkAdmin/PLGetVariableResponse.h>
#elif __has_include("PLGetVariableResponse.h")
   #import "PLGetVariableResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLPrintBatchReportResponse.h>)
   #import <POSLinkAdmin/PLPrintBatchReportResponse.h>
#elif __has_include("PLPrintBatchReportResponse.h")
   #import "PLPrintBatchReportResponse.h"
#endif



#if __has_include(<POSLinkAdmin/PLSetGoogleSmartTapParametersResponse.h>)
   #import <POSLinkAdmin/PLSetGoogleSmartTapParametersResponse.h>
#elif __has_include("PLSetGoogleSmartTapParametersResponse.h")
   #import "PLSetGoogleSmartTapParametersResponse.h"
#endif




NS_ASSUME_NONNULL_BEGIN

@interface PLManage : NSObject

/**
 * Constructor
 *
 * @param terminal terminal.
*/
- (instancetype)initWithTerminal:(PLBaseTerminal *)terminal;

/**
 * Delete Image Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)deleteImageWithRequest:(PLDeleteImageRequest *)request completion:(void(^)(PLDeleteImageResponse *response,PLExecutionResult *result))completion;

/**
 * Upload Logs Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)uploadLogsWithRequest:(PLUploadLogsRequest *)request completion:(void(^)(PLUploadLogsResponse *response,PLExecutionResult *result))completion;

/**
 * Do Signature Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)doSignatureWithRequest:(PLDoSignatureRequest *)request completion:(void(^)(PLDoSignatureResponse *response,PLExecutionResult *result))completion;

/**
 * Vas Push Data Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)vasPushDataWithRequest:(PLVasPushDataRequest *)request completion:(void(^)(PLVasPushDataResponse *response,PLExecutionResult *result))completion;

/**
 * Configure Pin Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)configurePinWithRequest:(PLConfigurePinRequest *)request completion:(void(^)(PLConfigurePinResponse *response,PLExecutionResult *result))completion;

/**
 * Token Administrative Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)tokenAdministrativeWithRequest:(PLTokenAdministrativeRequest *)request completion:(void(^)(PLTokenAdministrativeResponse *response,PLExecutionResult *result))completion;

/**
 * Print Batch Report Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)printBatchReportWithRequest:(PLPrintBatchReportRequest *)request completion:(void(^)(PLPrintBatchReportResponse *response,PLExecutionResult *result))completion;

/**
 * Init Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)initWithRequest:(PLInitRequest *)request completion:(void(^)(PLInitResponse *response,PLExecutionResult *result))completion;

/**
 * Set Google Smart Tap Parameters Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)setGoogleSmartTapParametersWithRequest:(PLSetGoogleSmartTapParametersRequest *)request completion:(void(^)(PLSetGoogleSmartTapParametersResponse *response,PLExecutionResult *result))completion;

/**
 * Check File Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)checkFileWithRequest:(PLCheckFileRequest *)request completion:(void(^)(PLCheckFileResponse *response,PLExecutionResult *result))completion;

/**
 * Clears card data from all buffers on the card reader.
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)clearCardBufferWithRequest:(PLClearCardBufferRequest *)request completion:(void(^)(PLClearCardBufferResponse *response,PLExecutionResult *result))completion;

/**
 * Set SAF Parameters Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)setSafParametersWithRequest:(PLSetSafParametersRequest *)request completion:(void(^)(PLSetSafParametersResponse *response,PLExecutionResult *result))completion;

/**
 * Set Apple Pay VAS Parameters Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)setApplePayVasParametersWithRequest:(PLSetApplePayVasParametersRequest *)request completion:(void(^)(PLSetApplePayVasParametersResponse *response,PLExecutionResult *result))completion;

/**
 * Get SAF Parameters Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)getSafParametersWithRequest:(PLGetSafParametersRequest *)request completion:(void(^)(PLGetSafParametersResponse *response,PLExecutionResult *result))completion;

/**
 * Get Signature Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)getSignatureWithRequest:(PLGetSignatureRequest *)request completion:(void(^)(PLGetSignatureResponse *response,PLExecutionResult *result))completion;

/**
 * Reset Screen Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)resetScreenWithRequest:(PLResetScreenRequest *)request completion:(void(^)(PLResetScreenResponse *response,PLExecutionResult *result))completion;

/**
 * Get Variable Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)getVariableWithRequest:(PLGetVariableRequest *)request completion:(void(^)(PLGetVariableResponse *response,PLExecutionResult *result))completion;

/**
 * Reprint Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)reprintWithRequest:(PLReprintRequest *)request completion:(void(^)(PLReprintResponse *response,PLExecutionResult *result))completion;

/**
 * Update Resource File Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)updateResourceFileWithRequest:(PLUpdateResourceFileRequest *)request completion:(void(^)(PLUpdateResourceFileResponse *response,PLExecutionResult *result))completion;

/**
 * Input Account Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)inputAccountWithRequest:(PLInputAccountRequest *)request completion:(void(^)(PLInputAccountResponse *response,PLExecutionResult *result))completion;

/**
 * Update Payment Parameters Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)updatePaymentParametersWithRequest:(PLUpdatePaymentParametersRequest *)request completion:(void(^)(PLUpdatePaymentParametersResponse *response,PLExecutionResult *result))completion;

/**
 * Reboot Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)rebootWithRequest:(PLRebootRequest *)request completion:(void(^)(PLRebootResponse *response,PLExecutionResult *result))completion;

/**
 * Set Variable Request
 *
 * @param request Request data.
 * @param completion Callback of response data.
*/
- (void)setVariableWithRequest:(PLSetVariableRequest *)request completion:(void(^)(PLSetVariableResponse *response,PLExecutionResult *result))completion;


@end

NS_ASSUME_NONNULL_END

