/*
 * This is one of the header files of Dynamsoft Capture Vision SDK - Barcode Reader module.
 *
 * Copyright © Dynamsoft Corporation. All rights reserved.
 */

#import <Foundation/Foundation.h>
#import <DynamsoftCaptureVisionBundle/DSBarcodeDetails.h>

typedef NS_ENUM(NSInteger, DSQRCodeErrorCorrectionLevel) {
    
    DSQRCodeErrorCorrectionLevelErrorCorrectionH,
    
    DSQRCodeErrorCorrectionLevelErrorCorrectionL,
    
    DSQRCodeErrorCorrectionLevelErrorCorrectionM,
    
    DSQRCodeErrorCorrectionLevelErrorCorrectionQ
} NS_SWIFT_NAME(QRCodeErrorCorrectionLevel);

NS_ASSUME_NONNULL_BEGIN

NS_SWIFT_NAME(QRCodeDetails)
@interface DSQRCodeDetails : DSBarcodeDetails

@property (nonatomic, readonly, assign) NSInteger rows;

@property (nonatomic, readonly, assign) NSInteger columns;

@property (nonatomic, readonly, assign) DSQRCodeErrorCorrectionLevel errorCorrectionLevel;

@property (nonatomic, readonly, assign) NSInteger version;

@property (nonatomic, readonly, assign) NSInteger model;

@property (nonatomic, readonly, assign) NSInteger mode;

@property (nonatomic, readonly, assign) NSInteger page;

@property (nonatomic, readonly, assign) NSInteger totalPage;

@property (nonatomic, readonly, assign) Byte parityData;

@property (nonatomic, readonly, assign) NSInteger dataMaskPattern;

@property (nonatomic, readonly, nullable) NSData *codewords;

+ (instancetype)new NS_UNAVAILABLE;
- (instancetype)init NS_UNAVAILABLE;

@end

NS_ASSUME_NONNULL_END
