//
//  SIIPrinterManagerWrapper.h
//  SiiLibSample
//

#import <SIIPrinterManager/SIIPrinterManager.h>
#import <SIIPrinterManager/SIISmartLabelManager.h>

@class SIIPrinterManagerWrapper;

@interface SIIPrinterManagerWrapper : NSObject

- (BOOL)connect:(int)printerModel address:(NSString *_Nullable)address portType:(int)portType :(NSError *_Nullable*_Nullable)error;
- (BOOL)disconnect:(NSError *_Nullable*_Nullable)error;
- (BOOL)sendText:(NSString *_Nullable)text :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendTextEx:(NSString *_Nullable)text bold:(CharacterBold)bold underline:(CharacterUnderline)underline reverse:(CharacterReverse)reverse font:(CharacterFont)font scale:(CharacterScale)scale alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendTextEx:(NSString *_Nullable)text bold:(CharacterBold)bold underline:(CharacterUnderline)underline font:(CharacterFont)font scale:(CharacterScale)scale :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendTextEx:(NSString *_Nullable)text bold:(CharacterBold)bold underline:(CharacterUnderline)underline reverse:(CharacterReverse)reverse inversion:(CharacterInversion)inversion font:(CharacterFont)font scale:(CharacterScale)scale alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printBarcode:(BarcodeSymbol)barcodeSymbol text:(NSString *_Nullable)text moduleSize:(ModuleSize)moduleSize alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printBarcode:(BarcodeSymbol)barcodeSymbol text:(NSString *_Nullable)text moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight hriPosition:(HriPosition)hriPosition hriFont:(CharacterFont)hriFont alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printBarcode:(BarcodeSymbol)barcodeSymbol text:(NSString *_Nullable)text moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight hriPosition:(HriPosition)hriPosition hriFont:(CharacterFont)hriFont alignment:(PrintAlignment)alignment nwRatio:(NwRatio)nwRatio :(NSError *_Nullable*_Nullable)error;
- (BOOL)printBarcode:(BarcodeSymbol)barcodeSymbol data:(NSData *_Nullable)data moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight hriPosition:(HriPosition)hriPosition hriFont:(CharacterFont)hriFont alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPDF417:(NSString *_Nullable)text errorCorrection:(ErrorCorrection)errorCorrection row:(NSInteger)row column:(NSInteger)column moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPDF417:(NSString *_Nullable)text errorCorrection:(ErrorCorrection)errorCorrection row:(NSInteger)row column:(NSInteger)column moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight alignment:(PrintAlignment)alignment pdf417Symbol:(Pdf417Symbol)pdf417Symbol :(NSError *_Nullable*_Nullable)error;
- (BOOL)printQRcode:(NSString *_Nullable)text errorCorrection:(ErrorCorrection)errorCorrection moduleSize:(ModuleSize)moduleSize alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printQRcode:(NSString *_Nullable)text errorCorrection:(ErrorCorrection)errorCorrection moduleSize:(ModuleSize)moduleSize alignment:(PrintAlignment)alignment model:(QrModel)model :(NSError *_Nullable*_Nullable)error;
- (BOOL)printDataMatrix:(NSString *_Nullable)text dataMatrixModule:(DataMatrixModule)dataMatrixModule moduleSize:(ModuleSize)moduleSize alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printMaxiCode:(NSString *_Nullable)text maxiCodeMode:(MaxiCodeMode)maxiCodeMode alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printGS1DataBarStacked:(NSString *_Nullable)text moduleSize:(ModuleSize)moduleSize alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printGS1DataBarStackedOmnidirectional:(NSString *_Nullable)text moduleHeight:(NSInteger)moduleHeight moduleSize:(ModuleSize)moduleSize alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printGS1DataBarExpandedStacked:(NSString *_Nullable)text column:(NSInteger)column moduleSize:(ModuleSize)moduleSize alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printAztecCode:(NSString *_Nullable)text layer:(NSInteger)layer errorCorrection:(NSInteger)errorCorrection moduleSize:(ModuleSize)moduleSize aztecSymbol:(AztecSymbol)aztecSymbol alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)cutPaper:(CuttingMethod)cuttingMethod :(NSError *_Nullable*_Nullable)error;
- (BOOL)feedPosition:(FeedPosition)feedPosition :(NSError *_Nullable*_Nullable)error;
- (BOOL)openDrawer:(DrawerNum)drawerNum onOffTime:(PulseWidth)onOffTime :(NSError *_Nullable*_Nullable)error;
- (BOOL)buzzer:(NSInteger)onTime offTime:(NSInteger)offTime :(NSError *_Nullable*_Nullable)error;
- (BOOL)externalBuzzer:(BuzzerPattern)buzzerPattern buzzerCount:(NSInteger)buzzerCount :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendBinary:(NSData *_Nullable)data :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendDataFile:(NSString *_Nullable)fileName alignment:(PrintAlignment)alignment dithering:(Dithering)dithering :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendDataFile:(NSString *_Nullable)fileName alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendDataFile:(NSString *_Nullable)fileName :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendImage:(UIImage *_Nullable)image alignment:(PrintAlignment)alignment dithering:(Dithering)dithering :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendImage:(UIImage *_Nullable)image alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendImage:(UIImage *_Nullable)image :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPDF:(NSString *_Nullable)fileName startIndex:(NSInteger)startIndex endIndex:(NSInteger)endIndex rotate:(Rotate)rotate imageScale:(ImageScale)imageScale bottomMargin:(NSInteger)bottomMargin dithering:(Dithering)dithering alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)getStatus:(NSInteger[_Nullable])buf :(NSError *_Nullable*_Nullable)error;
- (BOOL)abort:(NSError *_Nullable*_Nullable)error;
- (BOOL)registerLogo:(NSString *_Nullable)fileName logoId:(NSString *_Nullable)logoId dithering:(Dithering)dithering :(NSError *_Nullable*_Nullable)error;
- (BOOL)registerLogo:(NSString *_Nullable)fileName logoId:(NSString *_Nullable)logoId :(NSError *_Nullable*_Nullable)error;
- (BOOL)printLogo:(NSString *_Nullable)logoId alignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)printLogo:(NSString *_Nullable)logoId :(NSError *_Nullable*_Nullable)error;
- (BOOL)unregisterLogo:(NSString *_Nullable)logoId :(NSError *_Nullable*_Nullable)error;
- (BOOL)registerStyleSheet:(NSString *_Nullable)fileName cssId:(NSInteger)cssId :(NSError *_Nullable*_Nullable)error;
- (BOOL)unregisterStyleSheet:(NSInteger)cssId :(NSError *_Nullable*_Nullable)error;
- (BOOL)resetPrinter:(NSError *_Nullable*_Nullable)error;
- (BOOL)getPrinterResponse:(int)responseId param:(int)param response:(NSInteger[_Nullable])response :(NSError *_Nullable*_Nullable)error;
- (BOOL)getPrinterResponse:(int)responseId response:(NSInteger[_Nullable])response :(NSError *_Nullable*_Nullable)error;
- (BOOL)getPrinterResponse:(int)responseId responseArray:(NSMutableArray *_Nullable)responseArray :(NSError *_Nullable*_Nullable)error;
- (void)startDiscoveryPrinter:(NSPredicate *_Nullable)predicate completion:(EABluetoothAccessoryPickerCompletion _Nullable )completion;
- (void)startDiscoveryPrinter:(NSInteger)retryCount timeout:(NSInteger)timeout completion:(SIIDiscoveryPrinterCompletion _Nullable )completion;
- (void)cancelDiscoveryPrinter;
- (NSArray *_Nullable)getFoundPrinter;
- (NSString *_Nullable)getVersion;
- (BOOL)controlTransaction:(TransactionFunction)control :(NSError *_Nullable*_Nullable)error;
- (BOOL)enterPageMode :(NSError *_Nullable*_Nullable)error;
- (BOOL)exitPageMode :(NSError *_Nullable*_Nullable)error;
- (BOOL)setPageModeArea:(NSInteger)x y:(NSInteger)y width:(NSInteger)width height:(NSInteger)height :(NSError *_Nullable*_Nullable)error;
- (BOOL)setPageModeDirection:(Direction)direction :(NSError *_Nullable*_Nullable)error;
- (BOOL)setPageModeLineSpacing:(NSInteger)lineSpacing :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageMode:(CuttingMethod)cuttingMethod :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeText:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeTextEx:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text bold:(CharacterBold)bold underline:(CharacterUnderline)underline reverse:(CharacterReverse)reverse font:(CharacterFont)font scale:(CharacterScale)scale :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeBarcode:(NSInteger)startX startY:(NSInteger)startY barcodeSymbol:(BarcodeSymbol)barcodeSymbol text:(NSString *_Nullable)text moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight hriPosition:(HriPosition)hriPosition hriFont:(CharacterFont)hriFont :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeBarcode:(NSInteger)startX startY:(NSInteger)startY barcodeSymbol:(BarcodeSymbol)barcodeSymbol text:(NSString *_Nullable)text moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight hriPosition:(HriPosition)hriPosition hriFont:(CharacterFont)hriFont nwRatio:(NwRatio)nwRatio :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeBarcode:(NSInteger)startX startY:(NSInteger)startY barcodeSymbol:(BarcodeSymbol)barcodeSymbol data:(NSData *_Nullable)data moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight hriPosition:(HriPosition)hriPosition hriFont:(CharacterFont)hriFont :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModePDF417:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text errorCorrection:(ErrorCorrection)errorCorrection row:(NSInteger)row column:(NSInteger)column moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModePDF417:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text errorCorrection:(ErrorCorrection)errorCorrection row:(NSInteger)row column:(NSInteger)column moduleSize:(ModuleSize)moduleSize moduleHeight:(NSInteger)moduleHeight pdf417Symbol:(Pdf417Symbol)pdf417Symbol :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeQRcode:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text errorCorrection:(ErrorCorrection)errorCorrection moduleSize:(ModuleSize)moduleSize :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeQRcode:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text errorCorrection:(ErrorCorrection)errorCorrection moduleSize:(ModuleSize)moduleSize model:(QrModel)model :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeDataMatrix:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text dataMatrixModule:(DataMatrixModule)dataMatrixModule moduleSize:(ModuleSize)moduleSize :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeMaxiCode:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text maxiCodeMode:(MaxiCodeMode)maxiCodeMode :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeGS1DataBarStacked:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text moduleSize:(ModuleSize)moduleSize :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeGS1DataBarStackedOmnidirectional:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text moduleHeight:(NSInteger)moduleHeight moduleSize:(ModuleSize)moduleSize :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeGS1DataBarExpandedStacked:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text column:(NSInteger)column moduleSize:(ModuleSize)moduleSize :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeAztecCode:(NSInteger)startX startY:(NSInteger)startY text:(NSString *_Nullable)text layer:(NSInteger)layer errorCorrection:(NSInteger)errorCorrection moduleSize:(ModuleSize)moduleSize aztecSymbol:(AztecSymbol)aztecSymbol :(NSError *_Nullable*_Nullable)error;
- (BOOL)sendPageModeBinary:(NSData *_Nullable)data :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeImageFile:(NSInteger)startX startY:(NSInteger)startY fileName:(NSString *_Nullable)fileName dithering:(Dithering)dithering :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeLogo:(NSInteger)startX startY:(NSInteger)startY logoId:(NSString *_Nullable)logoId :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeRectangle:(NSInteger)startX startY:(NSInteger)startY endX:(NSInteger)endX endY:(NSInteger)endY lineStyle:(LineStyle)lineStyle :(NSError *_Nullable*_Nullable)error;
- (BOOL)printPageModeLine:(NSInteger)startX startY:(NSInteger)startY endX:(NSInteger)endX endY:(NSInteger)endY lineStyle:(LineStyle)lineStyle :(NSError *_Nullable*_Nullable)error;
- (BOOL)defragment:(NSError *_Nullable*_Nullable)error;
- (BOOL)initializeMemoryArea:(NSError *_Nullable*_Nullable)error;
- (BOOL)showTemplate:(int)time_ms :(NSError *_Nullable*_Nullable)error;
- (BOOL)showSlide:(int)slideID time_ms:(int)time_ms :(NSError *_Nullable*_Nullable)error;
- (BOOL)enterStandbyMode:(NSError *_Nullable*_Nullable)error;
- (BOOL)executeMacro:(int)macroID repeatCount:(int)repeatCount :(NSError *_Nullable*_Nullable)error;
- (BOOL)turnOnScreen:(BOOL)isOn :(NSError *_Nullable*_Nullable)error;
- (BOOL)selectTemplate:(int)templateID slideID:(int)slideID :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateImageData:(int)mapID imageID:(int)imageID :(NSError *_Nullable*_Nullable)error;
- (BOOL)selectTemplateTextObject:(int)mapID :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextAlignment:(PrintAlignment)alignment :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextLeftMargin:(int)margin :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextLineSpacing:(int)spacing :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextBold:(CharacterBold)bold :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextUnderline:(CharacterUnderline)underline :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextSize:(CharacterScale)scale :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextFont:(CharacterFont)font :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextRegisteredFont:(RegisteredFont)font :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextRightSpacing:(int)spacing :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextColor:(int)color :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateTextData:(NSString *_Nullable)text :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateQrCodeData:(int)mapID moduleSize:(ModuleSize)moduleSize errorCorrection:(ErrorCorrection)errorCorrection mode:(QrDataMode)mode qrQuietZone:(QrQuietZone)qrQuietZone text:(NSString *_Nullable)text :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateQrCodeData:(int)mapID text:(NSString *_Nullable)text :(NSError *_Nullable*_Nullable)error;
- (BOOL)setTemplateBarcodeData:(int)mapID text:(NSString *_Nullable)text :(NSError *_Nullable*_Nullable)error;
- (BOOL)registerTemplate:(int)templateID label:(NSString *_Nullable)label fileName:(NSString *_Nullable)fileName :(NSError *_Nullable*_Nullable)error;
- (BOOL)unregisterTemplate:(int)templateID :(NSError *_Nullable*_Nullable)error;
- (BOOL)registerImageData:(int)imageID label:(NSString *_Nullable)label fileName:(NSString *_Nullable)fileName :(NSError *_Nullable*_Nullable)error;
- (BOOL)unregisterImageData:(int)imageID :(NSError *_Nullable*_Nullable)error;
- (BOOL)registerSlideData:(int)slideID label:(NSString *_Nullable)label fileName:(NSString *_Nullable)fileName :(NSError *_Nullable*_Nullable)error;
- (BOOL)unregisterSlideData:(int)slideID :(NSError *_Nullable*_Nullable)error;
- (BOOL)registerUserDefinedCharacter:(NSString *_Nullable)fileName :(NSError *_Nullable*_Nullable)error;
- (BOOL)unregisterUserDefinedCharacter:(NSError *_Nullable*_Nullable)error;
- (BOOL)registerOptionFont:(int)startCode endCode:(int)endCode width:(int)width height:(int)height fileName:(NSString *_Nullable)fileName :(NSError *_Nullable*_Nullable)error;
- (BOOL)unregisterOptionFont:(NSError *_Nullable*_Nullable)error;
- (BOOL)controlMacroRegistration:(int)macroID control:(MacroRegistrationFunction)control :(NSError *_Nullable*_Nullable)error;
- (BOOL)getDisplayResponse:(int)responseId param:(int)param response:(NSInteger[_Nullable])response :(NSError *_Nullable*_Nullable)error;
- (BOOL)getDisplayResponse:(int)responseId response:(NSInteger[_Nullable])response :(NSError *_Nullable*_Nullable)error;
- (BOOL)getDisplayResponse:(int)responseId param:(int)param responseArray:(NSMutableArray *_Nullable)responseArray :(NSError *_Nullable*_Nullable)error;
- (BOOL)getDisplayResponse:(int)responseId responseArray:(NSMutableArray *_Nullable)responseArray :(NSError *_Nullable*_Nullable)error;
- (BOOL)printSmartLabelImageData:(SIISmartLabelManager *_Nullable)labelManager :(NSError *_Nullable*_Nullable)error;

@property int sendTimeout;
@property int receiveTimeout;
@property int internationalCharacter;
@property int codePage;
@property(readonly) int printerModel;
@property(readonly) int portType;
@property(readonly) BOOL isConnect;
@property int socketKeepingTime;
@property(weak, nonatomic) id <SIIPrinterManagerDelegate> _Nullable delegate;
@property int printSmartLabelMode;

@end

@class SIISmartLabelManagerWrapper;

@interface SIISmartLabelManagerWrapper : NSObject

- (BOOL)selectSmartLabelFile:(NSString *_Nullable)fileName :(NSError *_Nullable*_Nullable)error;
- (BOOL)replaceSmartLabelTextData:(int)mapID text:(NSString *_Nullable)text :(NSError *_Nullable*_Nullable)error;
- (BOOL)replaceSmartLabelBarcodeData:(int)mapID text:(NSString *_Nullable)text :(NSError *_Nullable*_Nullable)error;
- (BOOL)replaceSmartLabelImageData:(int)mapID image:(UIImage *_Nullable)image :(NSError *_Nullable*_Nullable)error;

@property (readonly, nullable, nonatomic) SIISmartLabelManager *labelManager;

@end
