/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.6
 * 
 * This file is not intended to be easily readable and contains a number of 
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG 
 * interface file instead. 
 * ----------------------------------------------------------------------------- */

#import <CoreGraphics/CoreGraphics.h>

@class FSNote;
@class FSBitmap;
@class FSPDFPage;
@class FSReflowPage;
@class FSPDFDoc;
@class FSAnnot;
@class FSMenuList;
@class FSMenuItemEx;
@class FSLayerContext;
@class FSFileSpec;
@class FSMarkup;
@class FSRedact;
@class FSPopup;
@class FSField;
@class FSControl;
@class FSPDFDictionary;
@class FSStdEncryptData;
@class FSDRMEncryptData;
@class FSCustomEncryptData;
@class FSCertificateEncryptData;
@class FSRMSEncryptData;
@class FSPDFObject;
@class FSPDFNameTree;
@class FSPDFNumberTree;
@class StructTreeEntity;
@class StructElement;
@class StructMarkedContent;
@class StructObjectContent;
@class PDFStructTree;
@class FSReadingBookmark;
@class FSSignature;
@class FSSecurityHandler;
@class FSLayerNode;
@class FSLayerPrintData;
@class FSGraphicsObject;
@class FSPDFArray;
@class FSPDFStream;
@class FSWatermarkSettings;
@class FSWatermarkTextProperties;
@class FSTextObject;
@class FSXFAWidget;
@class FSXFAPage;
@class FSForm;
@class FSRectI;
@class FSRectF;
@class FSMatrix2D;
@class FSGraphicsObjects;
@class FSGraphicsObjectArray;
@class FSTextObjectArray;
@class FSFormXObject;
@class FSImageObject;
@class FSPathObject;
@class FSShadingObject;
@class FSTimer;
@class FSScreen;
@class FSMediaPlayer;
@class FSLayerTree;
@class FSLayerNodeArray;
@class FSTimeStampServer;
@class FSTimeStampServerMgr;
@class FSResponse;
@class FSTimeRange;
@class FSCertVerifyResult;
@class FSCertVerifyResultArray;
@class FSCertIssuerPair;
@class FSRevocationArrayInfo;
@class FSLTVVerifier;
@class FSSignatureVerifyResult;
@class FSSignatureVerifyResultArray;
@class FSOptimizerSettings;
@class FSImageSettings;
@class FSOptimizeScannedPDFSettings;
@class FSMonoImageSettings;
@class FSEmbeddedFontData;
@class FSUnembeddedFontSettings;
@class FSHTML2PDFSettingData;
@class FSTXT2PDFSettingData;
@class FSConvert;
@class FSPageNumberRange;
@class FSColor;
@class FSHeaderFooterContent;
@class FSHeaderFooter;
@class FSHeaderFooterContentGenerator;
@class FSFillSign;
@class FSFillSignObject;
@class FSTextFillSignObject;
@class FSTextFillSignObjectData;
@class FSSignatureFillSignObject;
@class FSCombineDocumentInfo;
@class FSCombineDocumentInfoArray;
@class FSCombination;
@class FSLRElement;
@class FSLRStructureElement;
@class FSLRGraphicsObjectElement;
@class FSLRContentElement;
@class FSLRContext;
@class FSOutputPreview;
@class FSAnnotationSummarySettings;
@class FSAnnotationSummary;
@class FSTaggedPDF;
@class FSPortfolio;
@class FSSchemaField;
@class FSSchemaFieldArray;
@class FSPortfolioNode;
@class FSPortfolioNodeArray;
@class FSPortfolioFileNode;
@class FSPortfolioFolderNode;
@class FSPagingSealSignature;
@class FSTableCellData;
@class FSTableCellDataColArray;
@class FSTableCellDataArray;
@class FSTableData;
@class FSButtonItem;
@class FSDialogDescriptionConfig;
@class FSDialogDescriptionElement;
@class FSMenuItemConfig;
@class FSRectFArray;
@class FSTransition;
@class FSTransitionArray;
@class FSSplitDocumentInfo;
@class FSSplitFileResult;
@class FSSplitDocumentInfoArray;
@class FSSplitFileResultArray;
@class FSSplitOutputSettingData;
@class FSJavascriptModifyItemInfo;
@class FSNotifyWidgetChangeInfo;

@protocol FSDWG2PDFProgressCallback;
@protocol FSSplitPDFDocCallback;
@protocol FSPauseCallback;
@protocol FSFileReaderCallback;
@protocol FSFileWriterCallback;
@protocol FSFileStreamCallback;
@protocol FSActionCallback;
@protocol FSIconProviderCallback;
@protocol FSNotifierCallback;
@protocol FSDocEventCallback;
@protocol FSAsyncReaderCallback;
@protocol FSFillerAssistCallback;
@protocol FSSearchCallback;
@protocol FSSearchCancelCallback;
@protocol FSPSICallback;
@protocol FSSecurityCallback;
@protocol FSCertificateSecurityCallback;
@protocol FSDRMSecurityCallback;
@protocol FSCustomSecurityCallback;
@protocol FSRMSSecurityCallback;
@protocol FSSignatureCallback;
@protocol FSAppProviderCallback;
@protocol FSDocProviderCallback;
@protocol FSComplianceProgressCallback;
@protocol FSRevocationCallback;
@protocol FSCertChainResolverCallback;
@protocol FSTrustedCertStoreCallback;
@protocol FSCertChainResolverCallback;
@protocol FSFontMapperCallback;
@protocol FSAnnotationSummaryCallback;
@protocol FSTaggedPDFCallback;
@protocol FSTimeStampCallback;
@protocol FSReplaceCallback;
@protocol FSTableGeneratorCallback;
@protocol FSParagraphEditingProviderCallback;
@protocol FSImageCompressionCallback;
@protocol FSApplyRedactionCallback;

#import <Foundation/Foundation.h>


#ifdef __cplusplus
extern "C" {
#endif

@interface SWIGTYPE_p_void : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;

@end

@interface FSBasicArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;

-(void)dealloc;

@end



@interface FSPoint : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getX) int x;
@property (nonatomic, getter=getY) int y;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPoint*)other;
-(void)set: (int)x y: (int)y;
-(void)add: (int)x y: (int)y;
-(void)subtract: (int)x y: (int)y;
-(void)reset;
-(void)dealloc;

@end

@interface FSPointF : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getX) float x;
@property (nonatomic, getter=getY) float y;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPointF*)other;
-(void)set: (float)x y: (float)y;
-(void)add: (float)x y: (float)y;
-(void)subtract: (float)x y: (float)y;
-(void)reset;
-(void)dealloc;

@end

@interface FSRectFArray : FSBasicArray
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSRectFArray*)other;
-(int)getSize;
-(int)getUpperBound;
-(BOOL)setSize: (int)nNewSize nGrowBy: (int)nGrowBy;
-(void)removeAll;
-(FSRectF*)getAt: (int)nIndex;
-(BOOL)setAt: (int)nIndex newElement: (FSRectF*)newElement;
-(BOOL)setAtGrow: (int)nIndex newElement: (FSRectF*)newElement;
-(BOOL)add: (FSRectF*)newElement;
-(BOOL)insertAt: (int)nIndex newElement: (FSRectF*)newElement nCount: (int)nCount;
-(BOOL)removeAt: (int)nIndex nCount: (int)nCount;
-(int)find: (FSRectF*)data iStart: (int)iStart;

-(void)dealloc;

@end

@interface FSPointFArray : FSBasicArray
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPointFArray*)other;
-(int)getSize;
-(int)getUpperBound;
-(BOOL)setSize: (int)nNewSize nGrowBy: (int)nGrowBy;
-(void)removeAll;
-(FSPointF*)getAt: (int)nIndex;
-(BOOL)setAt: (int)nIndex newElement: (FSPointF*)newElement;
-(BOOL)setAtGrow: (int)nIndex newElement: (FSPointF*)newElement;
-(BOOL)add: (FSPointF*)newElement;
-(BOOL)insertAt: (int)nIndex newElement: (FSPointF*)newElement nCount: (int)nCount;
-(BOOL)removeAt: (int)nIndex nCount: (int)nCount;
-(int)find: (FSPointF*)data iStart: (int)iStart;

-(void)dealloc;

@end

@interface FSFloatArray : FSBasicArray
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSFloatArray*)other;
-(int)getSize;
-(int)getUpperBound;
-(BOOL)setSize: (int)nNewSize nGrowBy: (int)nGrowBy;
-(void)removeAll;
-(float)getAt: (int)nIndex;
-(BOOL)setAt: (int)nIndex newElement: (float)newElement;
-(BOOL)setAtGrow: (int)nIndex newElement: (float)newElement;
-(BOOL)add: (float)newElement;
-(BOOL)insertAt: (int)nIndex newElement: (float)newElement nCount: (int)nCount;
-(BOOL)removeAt: (int)nIndex nCount: (int)nCount;
-(int)find: (float)data iStart: (int)iStart;

-(void)dealloc;

@end

@interface FSInt32Array : FSBasicArray
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSInt32Array*)other;
-(int)getSize;
-(int)getUpperBound;
-(BOOL)setSize: (int)nNewSize nGrowBy: (int)nGrowBy;
-(void)removeAll;
-(int)getAt: (int)nIndex;
-(BOOL)setAt: (int)nIndex newElement: (int)newElement;
-(BOOL)setAtGrow: (int)nIndex newElement: (int)newElement;
-(BOOL)add: (int)newElement;
-(BOOL)insertAt: (int)nIndex newElement: (int)newElement nCount: (int)nCount;
-(BOOL)removeAt: (int)nIndex nCount: (int)nCount;
-(int)find: (int)data iStart: (int)iStart;

-(void)dealloc;

@end

@interface FSUInt32Array : FSBasicArray
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSUInt32Array*)other;
-(int)getSize;
-(int)getUpperBound;
-(BOOL)setSize: (int)nNewSize nGrowBy: (int)nGrowBy;
-(void)removeAll;
-(unsigned int)getAt: (int)nIndex;
-(BOOL)setAt: (int)nIndex newElement: (unsigned int)newElement;
-(BOOL)setAtGrow: (int)nIndex newElement: (unsigned int)newElement;
-(BOOL)add: (unsigned int)newElement;
-(BOOL)insertAt: (int)nIndex newElement: (unsigned int)newElement nCount: (int)nCount;
-(BOOL)removeAt: (int)nIndex nCount: (int)nCount;
-(int)find: (unsigned int)data iStart: (int)iStart;

-(void)dealloc;

@end

@interface FSRectI : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getLeft) int left;
@property (nonatomic, getter=getTop) int top;
@property (nonatomic, getter=getRight) int right;
@property (nonatomic, getter=getBottom) int bottom;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithLeft1: (int)left1 top1: (int)top1 right1: (int)right1 bottom1: (int)bottom1;
-(int)width;
-(int)height;
-(BOOL)isEmpty;
-(void)normalize;
-(void)intersect: (FSRectI*)src;
-(void)union: (FSRectI*)other_rect;
-(void)offset: (int)dx dy: (int)dy;
-(BOOL)contains: (FSRectI*)other_rect;
-(BOOL)containsPoint: (int)x y: (int)y;
-(BOOL)valid;

-(void)dealloc;

@end

@interface FSRectF : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getLeft) float left;
@property (nonatomic, getter=getRight) float right;
@property (nonatomic, getter=getBottom) float bottom;
@property (nonatomic, getter=getTop) float top;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithLeft1: (float)left1 bottom1: (float)bottom1 right1: (float)right1 top1: (float)top1;
-(id)initWithRect: (FSRectI*)rect;
-(BOOL)isEmpty;
-(void)normalize;
-(void)reset;
-(BOOL)contains: (FSRectF*)other_rect;
-(void)transform: (FSMatrix2D*)pMatrix;
-(void)intersect: (FSRectF*)other_rect;
-(void)union: (FSRectF*)other_rect;
-(FSRectI*)getInnerRect;
-(FSRectI*)getOuterRect;
-(FSRectI*)getClosestRect;
-(void)initRect: (float)x y: (float)y;
-(void)updateRect: (float)x y: (float)y;
-(float)width;
-(float)height;
-(void)inflateWithValues: (float)x y: (float)y;
-(void)inflate: (FSRectF*)rt;
-(void)defalteWithValues: (float)x y: (float)y;
-(void)deflate: (FSRectF*)rt;
-(void)translate: (float)e f: (float)f;
+(FSRectF*)getBBox: (FSPointF*)pPoints nPoints: (int)nPoints;
-(BOOL)containsPointF: (FSPointF*)point;
+(BOOL)IsRectAdjacent: (FSRectF*)rect1 rect2: (FSRectF*)rect2 alignmentTolerance: (float)alignmentTolerance distanceTolerance: (float)distanceTolerance direction: (int)direction;

-(void)dealloc;

@end

@interface FSMatrix2D : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getA) float a;
@property (nonatomic, getter=getB) float b;
@property (nonatomic, getter=getC) float c;
@property (nonatomic, getter=getD) float d;
@property (nonatomic, getter=getE) float e;
@property (nonatomic, getter=getF) float f;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithA1: (float)a1 b1: (float)b1 c1: (float)c1 d1: (float)d1 e1: (float)e1 f1: (float)f1;
-(void)set: (float)a b: (float)b c: (float)c d: (float)d e: (float)e f: (float)f;
-(void)setIdentity;
-(void)setReverse: (FSMatrix2D*)m;
-(void)concat: (float)a b: (float)b c: (float)c d: (float)d e: (float)e f: (float)f bPrepended: (BOOL)bPrepended;
-(void)concatWithMatrix: (FSMatrix2D*)m bPrepended: (BOOL)bPrepended;
-(void)concatInverse: (FSMatrix2D*)m bPrepended: (BOOL)bPrepended;
-(void)reset;
-(void)copy: (FSMatrix2D*)m;
-(BOOL)isIdentity;
-(BOOL)isInvertible;
-(BOOL)is90Rotated;
-(BOOL)isScaled;
-(void)translate: (float)x y: (float)y bPrepended: (BOOL)bPrepended;
-(void)translateI: (int)x y: (int)y bPrepended: (BOOL)bPrepended;
-(void)scale: (float)sx sy: (float)sy bPrepended: (BOOL)bPrepended;
-(void)rotate: (float)fRadian bPrepended: (BOOL)bPrepended;
-(void)rotateAt: (float)fRadian x: (float)x y: (float)y bPrepended: (BOOL)bPrepended;
-(void)shear: (float)fAlphaRadian fBetaRadian: (float)fBetaRadian bPrepended: (BOOL)bPrepended;
-(void)matchRect: (FSRectF*)dest src: (FSRectF*)src;
-(float)getXUnit;
-(float)getYUnit;
-(FSRectF*)getUnitRect;
-(float)getUnitArea;
-(float)transformXDistanceInFloat: (float)dx;
-(int)transformXDistance: (int)dx;
-(float)transformYDistanceInFloat: (float)dy;
-(int)transformYDistance: (int)dy;
-(float)transformDistanceInFloat: (float)dx dy: (float)dy;
-(int)transformDistanceInInteger: (int)dx dy: (int)dy;
-(float)transformDistance: (float)distance;
-(void)transformPoint: (int *)x y: (int *)y;
-(void)transformRectF: (FSRectF*)rect;
-(void)transformRect: (FSRectI*)rect;
-(void)transformPointF: (FSPointF*)point;

-(void)dealloc;

@end







typedef NS_ENUM(NSInteger, FSErrorCode) {
  FSErrSuccess = 0,
  FSErrFile = 1,
  FSErrFormat = 2,
  FSErrPassword = 3,
  FSErrHandle = 4,
  FSErrCertificate = 5,
  FSErrUnknown = 6,
  FSErrInvalidLicense = 7,
  FSErrParam = 8,
  FSErrUnsupported = 9,
  FSErrOutOfMemory = 10,
  FSErrSecurityHandler = 11,
  FSErrNotParsed = 12,
  FSErrNotFound = 13,
  FSErrInvalidType = 14,
  FSErrConflict = 15,
  FSErrUnknownState = 16,
  FSErrDataNotReady = 17,
  FSErrInvalidData = 18,
  FSErrXFALoadError = 19,
  FSErrNotLoaded = 20,
  FSErrInvalidState = 21,
  FSErrNotCDRM = 22,
  FSErrCanNotConnectToServer = 23,
  FSErrInvalidUserToken = 24,
  FSErrNoRights = 25,
  FSErrRightsExpired = 26,
  FSErrDeviceLimitation = 27,
  FSErrCanNotRemoveSecurityFromServer = 28,
  FSErrCanNotGetACL = 29,
  FSErrCanNotSetACL = 30,
  FSErrIsAlreadyCPDF = 31,
  FSErrIsAlreadyCDRM = 32,
  FSErrCanNotUploadDocInfo = 33,
  FSErrCanNotUploadCDRMInfo = 34,
  FSErrInvalidWrapper = 35,
  FSErrCanNotGetClientID = 36,
  FSErrCanNotGetUserToken = 37,
  FSErrInvalidACL = 38,
  FSErrInvalidClientID = 39,
  FSErrOCREngineNotInit = 40,
  FSErrDiskFull = 41,
  FSErrOCRTrialIsEnd = 42,
  FSErrFilePathNotExist = 43,
  FSErrComplianceEngineNotInit = 44,
  FSErrComplianceEngineInvalidUnlockCode = 45,
  FSErrComplianceEngineInitFailed = 46,
  FSErrTimeStampServerMgrNotInit = 47,
  FSErrLTVVerifyModeNotSet = 48,
  FSErrLTVRevocationCallbackNotSet = 49,
  FSErrLTVCannotSwitchVersion = 50,
  FSErrLTVCannotCheckDTS = 51,
  FSErrLTVCannotLoadDSS = 52,
  FSErrLTVCannotLoadDTS = 53,
  FSErrNeedSigned = 54,
  FSErrComplianceResourceFile = 55,
  FSErrTimeStampServerMgrNoDefaltServer = 56,
  FSErrDefaultTimeStampServer = 57,
  FSErrNoConnectedPDFModuleRight = 58,
  FSErrNoXFAModuleRight = 59,
  FSErrNoRedactionModuleRight = 60,
  FSErrNoRMSModuleRight = 61,
  FSErrNoOCRModuleRight = 62,
  FSErrNoComparisonModuleRight = 63,
  FSErrNoComplianceModuleRight = 64,
  FSErrNoOptimizerModuleRight = 65,
  FSErrNoConversionModuleRight = 66,
  FSErrOfficeComNotInit = 67,
  FSErrNoMicroOfficeInstalled = 68,
  FSErrExcelHasNoContent = 69,
  FSErrNoLayoutRecognitionModuleRight = 70,
  FSErrWPSEngineNotFound = 71,
  FSErrLibreofficeEngineNotFound = 72,
  FSErrNoAccessibilityModuleRight = 73,
  FSErrODAEngineNotFound = 74,
  FSErrNoTableMakerModuleRight = 75,
  FSErrNoDWG2PDFModuleRight = 76,
  FSErrNoAdvEditModuleRight = 77,
  FSErrNoPDF2OfficeModuleRight = 78,
  FSErrURLInBlackList = 79,
  FSErrOFDEngineNotInit = 80,
  FSErrNoOFDModuleRight = 81,
  FSErrNo3DModuleRight = 82,
  FSErrInvalidRegex = 83,
  FSErrNoDocumentPermission = 84,
  FSErrNoOffice2PDFModuleRight = 85,
  FSErrMIPUPEEngineInitFailed = 86,
  FSErrMIPProtectionEngineInitFailed = 87,
  FSErrMIPCreateProtectionHandlerFailed = 88,
  FSErrMIPGetExtendedLabelInfoByIdFailed = 89,
  FSErrNoPrint2PDFModuleRight = 90,
  FSErrResponseDataError = 91,
  FSErrTimeout = 92,
  FSErrNoImageObject = 93,
  FSErrFXOCREngineNotInit = 94
};

@interface FSBase : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;

-(void)dealloc;

@end

@interface FSDateTime : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getYear) unsigned short year;
@property (nonatomic, getter=getMonth) unsigned short month;
@property (nonatomic, getter=getDay) unsigned short day;
@property (nonatomic, getter=getHour) unsigned short hour;
@property (nonatomic, getter=getMinute) unsigned short minute;
@property (nonatomic, getter=getSecond) unsigned short second;
@property (nonatomic, getter=getMilliseconds) unsigned short milliseconds;
@property (nonatomic, getter=getUtc_hour_offset) short utc_hour_offset;
@property (nonatomic, getter=getUtc_minute_offset) unsigned short utc_minute_offset;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSDateTime*)getUTCTime;
+(FSDateTime*)getLocalTime;
-(id)initWithYear: (unsigned short)year month: (unsigned short)month day: (unsigned short)day hour: (unsigned short)hour minute: (unsigned short)minute second: (unsigned short)second milliseconds: (unsigned short)milliseconds utc_hour_offset: (short)utc_hour_offset utc_minute_offset: (unsigned short)utc_minute_offset;
-(id)init;
-(id)initWithDt: (FSDateTime*)dt;
-(void)set: (unsigned short)year month: (unsigned short)month day: (unsigned short)day hour: (unsigned short)hour minute: (unsigned short)minute second: (unsigned short)second milliseconds: (unsigned short)milliseconds utc_hour_offset: (short)utc_hour_offset utc_minute_offset: (unsigned short)utc_minute_offset;
-(BOOL)isValid;
-(FSDateTime*)toLocalTime;
-(FSDateTime*)toUTCTime;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSRotation) {
  FSRotation0 = 0,
  FSRotation90 = 1,
  FSRotation180 = 2,
  FSRotation270 = 3,
  FSRotationUnknown = 4
};

typedef NS_ENUM(NSInteger, FSRotationPointOptions) {
  FSRotationPointCenter = 0,
  FSRotationPointLeftTop = 1,
  FSRotationPointRightTop = 2,
  FSRotationPointLeftBottom = 3,
  FSRotationPointRightBottom = 4
};

typedef NS_ENUM(NSInteger, FSAlignment) {
  FSAlignmentLeft = 0,
  FSAlignmentCenter = 1,
  FSAlignmentRight = 2
};

typedef NS_ENUM(NSInteger, FSFillMode) {
  FSFillModeNone = 0,
  FSFillModeAlternate = 1,
  FSFillModeWinding = 2
};

typedef NS_ENUM(NSInteger, FSPosition) {
  FSPosTopLeft = 0,
  FSPosTopCenter = 1,
  FSPosTopRight = 2,
  FSPosCenterLeft = 3,
  FSPosCenter = 4,
  FSPosCenterRight = 5,
  FSPosBottomLeft = 6,
  FSPosBottomCenter = 7,
  FSPosBottomRight = 8
};

typedef NS_ENUM(NSInteger, FSModuleName) {
  FSModuleNameConnectedPDF = 1,
  FSModuleNameXFA = 2,
  FSModuleNameRedaction = 3,
  FSModuleNameRMS = 4,
  FSModuleNameOCR = 5,
  FSModuleNameComparison = 6,
  FSModuleNameCompliance = 7,
  FSModuleNameOptimizer = 8,
  FSModuleNameConversion = 9,
  FSModuleNameLayoutRecognition = 10,
  FSModuleNameAccessibility = 11,
  FSModuleNameTableMaker = 12,
  FSModuleNameDWG2PDF = 13,
  FSModuleNameAdvEdit = 14,
  FSModuleNamePDF2Office = 15,
  FSModuleName3D = 16,
  FSModuleNameOFD = 17,
  FSModuleNameOffice2PDF = 18,
  FSModuleNamePrint2PDF = 19
};

typedef NS_ENUM(NSInteger, FSColorSpaceType) {
  FSColorSpaceInvalid = 0,
  FSColorSpaceDeviceGray = 1,
  FSColorSpaceDeviceRGB = 2,
  FSColorSpaceDeviceCMYK = 3,
  FSColorSpaceCalGray = 4,
  FSColorSpaceCalRGB = 5,
  FSColorSpaceLab = 6,
  FSColorSpaceICCBased = 7,
  FSColorSpaceSeparation = 8,
  FSColorSpaceDeviceN = 9,
  FSColorSpaceIndexed = 10,
  FSColorSpacePattern = 11,
  FSColorSpaceICCBasedDeviceGray = 12,
  FSColorSpaceICCBasedDeviceRGB = 13,
  FSColorSpaceICCBasedDeviceCMYK = 14
};

typedef NS_ENUM(NSInteger, FSLocaleID) {
  FSLocaleIDUnspecified = 0,
  FSLocaleIDHongKong = 1,
  FSLocaleIDTaiwan = 2,
  FSLocaleIDNetherlands = 3,
  FSLocaleIDFrance = 4,
  FSLocaleIDGermany = 5,
  FSLocaleIDItaly = 6,
  FSLocaleIDKorea = 7,
  FSLocaleIDJapan = 8
};

typedef NS_ENUM(NSInteger, FSFileFormatType) {
  FSFileFormatTypeFDF = 0,
  FSFileFormatTypeXFDF = 1,
  FSFileFormatTypeHTML = 2,
  FSFileFormatTypeXDP = 3,
  FSFileFormatTypeXML = 4,
  FSFileFormatTypeXFD = 5,
  FSFileFormatTypePDF = 6,
  FSFileFormatTypeTXT = 7
};

@interface FSCodec : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(NSData *)base64Encode: (NSData *)buffer;
+(NSData *)base64Decode: (NSData *)buffer;
+(NSData *)flateCompress: (NSData *)buffer;
+(NSData *)flateDecompress: (NSData *)buffer;
-(id)init;

-(void)dealloc;

@end



typedef NS_ENUM(NSInteger, FSProgressiveState) {
  FSProgressiveError = 0,
  FSProgressiveToBeContinued = 1,
  FSProgressiveFinished = 2
};

@interface FSProgressive : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSProgressive*)other;
-(FSProgressiveState)resume;
-(int)getRateOfProgress;

-(void)dealloc;

@end

@interface FSRenderConfig : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getGraphics_objs_count_in_one_step) int graphics_objs_count_in_one_step;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithGraphics_objs_count_in_one_step: (int)graphics_objs_count_in_one_step;
-(id)init;
-(void)set: (int)graphics_objs_count_in_one_step;
-(void)dealloc;

@end

@interface FSLibrary : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSErrorCode)initialize: (NSString *)sn key: (NSString *)key;
+(FSErrorCode)initializeWithJSXFAThreadsafety: (NSString *)sn key: (NSString *)key is_optimize_memory: (BOOL)is_optimize_memory enable_js_xfa_threadsafety: (BOOL)enable_js_xfa_threadsafety;
+(FSErrorCode)reinitialize;
+(void)destroy;
+(BOOL)hasModuleLicenseRight: (FSModuleName)module_name;
+(NSString *)getVersion;
+(BOOL)setCacheSize: (unsigned int)size;
+(BOOL)enableJavaScript: (BOOL)enable_javascript;
+(BOOL)setAnnotIconProviderCallback: (id<FSIconProviderCallback>)annot_icon_provider;
+(BOOL)setNotifierCallback: (id<FSNotifierCallback>)notifier;
+(BOOL)setActionCallback: (id<FSActionCallback>)action_callback;
+(BOOL)setDocEventCallback: (id<FSDocEventCallback>)callback;
+(BOOL)registerSignatureCallback: (NSString *)filter sub_filter: (NSString *)sub_filter signature_callback: (id<FSSignatureCallback>)signature_callback;
+(void)unregisterSignatureCallback: (NSString *)filter sub_filter: (NSString *)sub_filter;
+(BOOL)registerSecurityCallback: (NSString *)filter callback: (id<FSSecurityCallback>)callback;
+(BOOL)unregisterSecurityCallback: (NSString *)filter;
+(BOOL)setTimeStampCallback: (id<FSTimeStampCallback>)timestamp_callback;
+(void)registerXFAAppProviderCallback: (id<FSAppProviderCallback>)callback;
+(void)setRenderTextGamma: (float)gamma;
+(void)setLogFile: (NSString *)log_file_path;
+(void)setLogFileWithStreamCallback: (id<FSFileStreamCallback>)log_file;
+(FSErrorCode)flushLog;
+(BOOL)setFontMapperCallback: (id<FSFontMapperCallback>)callback;
+(void)setDefaultICCProfilesPath: (NSString *)icc_profile_folder_path;
+(FSRenderConfig*)getRenderConfig;
+(void)setRenderConfig: (FSRenderConfig*)render_config;
+(void)enableThreadSafety: (BOOL)is_enable_thread_safety;
+(NSString *)executeJavaScript: (NSString *)java_script;
+(BOOL)addExternalFontPath: (NSString *)font_path;
+(void)matchExternalFontsOnly: (BOOL)only_match;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSGraphStateLineCapStyle) {
  FSGraphStateLineCapButt = 0,
  FSGraphStateLineCapRound = 1,
  FSGraphStateLineCapSquare = 2
};

typedef NS_ENUM(NSInteger, FSGraphStateLineJoinStyle) {
  FSGraphStateLineJoinMiter = 0,
  FSGraphStateLineJoinRound = 1,
  FSGraphStateLineJoinBevel = 2
};

@interface FSGraphState : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getLine_width) float line_width;
@property (nonatomic, getter=getLine_join) FSGraphStateLineJoinStyle line_join;
@property (nonatomic, getter=getMiter_limit) float miter_limit;
@property (nonatomic, getter=getLine_cap) FSGraphStateLineCapStyle line_cap;
@property (nonatomic, getter=getDash_phase) float dash_phase;
@property (nonatomic, weak, getter=getDashes) FSFloatArray* dashes;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithLine_width: (float)line_width line_join: (FSGraphStateLineJoinStyle)line_join miter_limit: (float)miter_limit line_cap: (FSGraphStateLineCapStyle)line_cap dash_phase: (float)dash_phase dashes: (FSFloatArray*)dashes;
-(id)init;
-(id)initWithState: (FSGraphState*)state;
-(void)set: (float)line_width line_join: (FSGraphStateLineJoinStyle)line_join miter_limit: (float)miter_limit line_cap: (FSGraphStateLineCapStyle)line_cap dash_phase: (float)dash_phase dashes: (FSFloatArray*)dashes;
-(void)dealloc;

@end



typedef NS_ENUM(NSInteger, FSRangeFilter) {
  FSRangeAll = 0,
  FSRangeEven = 1,
  FSRangeOdd = 2
};

@interface FSRange : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithIndex: (int)index;
-(id)initWithStart_index: (int)start_index end_index: (int)end_index filter: (FSRangeFilter)filter;
-(id)initWithOther: (FSRange*)other;
-(BOOL)isEmpty;
-(void)addSingle: (int)index;
-(void)addSegment: (int)start_index end_index: (int)end_index filter: (FSRangeFilter)filter;
-(int)getSegmentCount;
-(int)getSegmentStart: (int)segment_index;
-(int)getSegmentEnd: (int)segment_index;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSFontStyles) {
  FSFontStyleFixedPitch = 0x0001,
  FSFontStyleSerif = 0x0002,
  FSFontStyleSymbolic = 0x0004,
  FSFontStyleScript = 0x0008,
  FSFontStyleNonSymbolic = 0x0020,
  FSFontStyleItalic = 0x0040,
  FSFontStyleAllCap = 0x10000,
  FSFontStylesSmallCap = 0x20000,
  FSFontStylesBold = 0x40000
};

typedef NS_ENUM(NSInteger, FSFontCharset) {
  FSFontCharsetANSI = 0,
  FSFontCharsetDefault = 1,
  FSFontCharsetSymbol = 2,
  FSFontCharsetShift_JIS = 128,
  FSFontCharsetHangeul = 129,
  FSFontCharsetGB2312 = 134,
  FSFontCharsetChineseBig5 = 136,
  FSFontCharsetThai = 222,
  FSFontCharsetEastEurope = 238,
  FSFontCharsetRussian = 204,
  FSFontCharsetGreek = 161,
  FSFontCharsetTurkish = 162,
  FSFontCharsetHebrew = 177,
  FSFontCharsetArabic = 178,
  FSFontCharsetBaltic = 186
};

typedef NS_ENUM(NSInteger, FSFontCIDCharset) {
  FSFontCIDCharsetUnknown = 0,
  FSFontCIDCharsetGB1 = 1,
  FSFontCIDCharsetCNS1 = 2,
  FSFontCIDCharsetJAPAN1 = 3,
  FSFontCIDCharsetKOREA1 = 4,
  FSFontCIDCharsetUNICODE = 5
};

typedef NS_ENUM(NSInteger, FSFontStandardID) {
  FSFontStdIDCourier = 0,
  FSFontStdIDCourierB = 1,
  FSFontStdIDCourierBI = 2,
  FSFontStdIDCourierI = 3,
  FSFontStdIDHelvetica = 4,
  FSFontStdIDHelveticaB = 5,
  FSFontStdIDHelveticaBI = 6,
  FSFontStdIDHelveticaI = 7,
  FSFontStdIDTimes = 8,
  FSFontStdIDTimesB = 9,
  FSFontStdIDTimesBI = 10,
  FSFontStdIDTimesI = 11,
  FSFontStdIDSymbol = 12,
  FSFontStdIDZapfDingbats = 13
};

typedef NS_ENUM(NSInteger, FSFontFontTypes) {
  FSFontFontTypeType1 = 1,
  FSFontFontTypeTrueType = 2,
  FSFontFontTypeType3 = 3,
  FSFontFontTypeCIDFont = 4
};

@interface FSFont : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithName: (NSString *)name styles: (unsigned int)styles charset: (FSFontCharset)charset weight: (int)weight;
-(id)initWithFont_id: (FSFontStandardID)font_id;
-(id)initWithFont_file_path: (NSString *)font_file_path face_index: (int)face_index charset: (FSFontCharset)charset;
-(id)initWithOther: (FSFont*)other;
-(BOOL)isEmpty;
-(NSString *)getName;
-(NSString *)getFamilyName;
-(BOOL)isBold;
-(BOOL)isItalic;
-(BOOL)isEmbedded: (FSPDFDoc*)document;
-(BOOL)isSupportEmbedded: (FSPDFDoc*)document;
-(FSFont*)embed: (FSPDFDoc*)document is_add_all_unicodes: (BOOL)is_add_all_unicodes;
-(FSUInt32Array*)addUnicodes: (FSPDFDoc*)document unicode_array: (FSUInt32Array*)unicode_array;
-(int)getAscent;
-(int)getDescent;
-(FSRectI*)getCharBBox: (unsigned int)unicode;
-(float)getCharWidth: (unsigned int)unicode;
-(FSRectI*)getCharBBoxWithPDFDoc: (unsigned int)unicode document: (FSPDFDoc*)document;
-(float)getCharWidthWithPDFDoc: (unsigned int)unicode document: (FSPDFDoc*)document;
-(unsigned int)getStyles: (FSPDFDoc*)document;
-(FSFontCIDCharset)getCIDCharset: (FSPDFDoc*)document;
-(BOOL)isStandardFont: (FSPDFDoc*)document;
-(FSFontStandardID)getStandard14Font: (FSPDFDoc*)document;
-(FSFontFontTypes)getFontType: (FSPDFDoc*)document;
-(NSString *)getBaseFontName: (FSPDFDoc*)document;
-(BOOL)isVertWriting: (FSPDFDoc*)document;
-(NSString *)getEncoding: (FSPDFDoc*)document;
-(BOOL)setEncoding: (FSPDFDoc*)document value: (NSString *)value;
-(BOOL)isCharSupported: (unsigned int)unicode document: (FSPDFDoc*)document;

-(void)dealloc;

@end

@interface FSFontMapResult : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, retain, getter=getFile_read) id<FSFileReaderCallback> file_read;
@property (nonatomic, getter=getFace_index) int face_index;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithFile_read: (id<FSFileReaderCallback>)file_read face_index: (int)face_index;
-(id)initWithOther: (FSFontMapResult*)other;
-(void)set: (id<FSFileReaderCallback>)file_read face_index: (int)face_index;
-(void)dealloc;

@end



typedef NS_ENUM(NSInteger, FSPathPointType) {
  FSPathTypeMoveTo = 1,
  FSPathTypeLineTo = 2,
  FSPathTypeLineToCloseFigure = 3,
  FSPathTypeBezierTo = 4,
  FSPathTypeBezierToCloseFigure = 5
};

@interface FSPath : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPath*)other;
-(BOOL)isEmpty;
-(int)getPointCount;
-(FSPointF*)getPoint: (int)index;
-(FSPathPointType)getPointType: (int)index;
-(BOOL)setPoint: (int)index point: (FSPointF*)point type: (FSPathPointType)type;
-(BOOL)moveTo: (FSPointF*)point;
-(BOOL)lineTo: (FSPointF*)point;
-(BOOL)cubicBezierTo: (FSPointF*)point1 point2: (FSPointF*)point2 point3: (FSPointF*)point3;
-(BOOL)closeFigure;
-(BOOL)removePoint: (int)index;
-(BOOL)appendRect: (FSRectF*)rect;
-(BOOL)appendEllipse: (FSRectF*)rect;
-(void)transform: (FSMatrix2D*)matrix;
-(void)clear;
-(void)increasePointCount: (int)count;

-(void)dealloc;

@end

@interface FSPathArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPathArray*)other;
-(unsigned long)getSize;
-(FSPath*)getAt: (unsigned long)index;
-(void)add: (FSPath*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSPath*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSColorSpaceRenderingIntent) {
  FSColorSpaceRenderIntentPerceptual = 0,
  FSColorSpaceRenderIntentRelColorimetric = 1,
  FSColorSpaceRenderIntentSaturation = 2,
  FSColorSpaceRenderIntentAbsColorimetric = 3
};

@interface FSColorSpace : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithType: (FSColorSpaceType)type;
-(id)initWithOther: (FSColorSpace*)other;
-(BOOL)isEmpty;
-(int)getComponentCount;
-(FSColorSpaceType)getColorSpaceType;
-(BOOL)isSpotColorSpace;
-(NSArray<NSData *> *)getComponentNames;
-(FSColor*)convertColor: (FSColor*)color;
-(FSColor*)convertColorWithRGBColor: (int)r_value g_value: (int)g_value b_value: (int)b_value;
-(FSColor*)convertColorWithCMYKColor: (int)c_value m_value: (int)m_value y_value: (int)y_value k_value: (int)k_value;

-(void)dealloc;

@end

@interface FSColor : FSBase
@property (nonatomic, weak, getter=getValue) FSFloatArray* value;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithColor_space: (FSColorSpace*)color_space;
-(id)initWithOther: (FSColor*)other;
-(BOOL)isEmpty;
-(FSColorSpace*)getColorSpace;
-(FSColor*)convertToRGB: (FSColorSpaceRenderingIntent)intent;
-(FSColor*)convertToCMYK: (FSColorSpaceRenderingIntent)intent;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSBitmapDIBFormat) {
  FSBitmapDIBInvalid = 0,
  FSBitmapDIB1bpp = 0x001,
  FSBitmapDIBRgb = 0x018,
  FSBitmapDIBRgb32 = 0x020,
  FSBitmapDIBArgb = 0x220,
  FSBitmapDIBCmyk = 0x420,
  FSBitmapDIB8bppMask = 0x108,
  FSBitmapDIB8bpp = 0x008,
  FSBitmapDIB8bppGray = 0x1008,
  FSBitmapDIBAbgr = 0x222,
  FSBitmapDIBRgb565 = 0x565
};

typedef NS_ENUM(NSInteger, FSBitmapInterpolationFlag) {
  FSBitmapDownsample = 0x01,
  FSBitmapQuadratic = 0x02,
  FSBitmapBicubic = 0x04
};

@interface FSBitmap : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithWidth: (int)width height: (int)height format: (FSBitmapDIBFormat)format buffer: (NSData *)buffer pitch: (int)pitch;
-(id)initWithOther: (FSBitmap*)other;
-(id)init;
-(BOOL)isEmpty;
-(FSBitmap*)clone: (FSRectI*)clip_rect;
-(int)getWidth;
-(int)getHeight;
-(int)getPitch;
-(int)getBpp;
-(FSBitmapDIBFormat)getFormat;
-(void)fillRect: (unsigned int)color rect: (FSRectI*)rect;
-(FSBitmap*)convertFormat: (FSBitmapDIBFormat)format icc_transform: (NSData *)icc_transform;
-(FSRectI*)calculateBBoxByColor: (unsigned int)backgroud_color;
-(FSRectI*)detectBBoxByColorDiffer: (int)detection_size color_differ: (int)color_differ;
-(FSBitmap*)swapXY: (BOOL)is_flip_horz is_flip_vert: (BOOL)is_flip_vert clip_rect: (FSRectI*)clip_rect;
-(FSBitmap*)flip: (BOOL)is_flip_horz is_flip_vert: (BOOL)is_flip_vert;
-(FSBitmap*)stretchTo: (int)dest_width dest_height: (int)dest_height flag: (FSBitmapInterpolationFlag)flag clip_rect: (FSRectI*)clip_rect;
-(FSBitmap*)transformTo: (FSMatrix2D*)matrix flag: (FSBitmapInterpolationFlag)flag out_left: (int *)out_left out_top: (int *)out_top clip_rect: (FSRectI*)clip_rect;
-(FSBitmap*)getMask: (FSRectI*)clip_rect;
-(FSBitmap*)convertToMono;
-(NSData *)getBuffer;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSImageType) {
  FSImageUnknown = -1,
  FSImageNone = 0,
  FSImageBMP = 1,
  FSImageJPG = 2,
  FSImagePNG = 3,
  FSImageGIF = 4,
  FSImageTIF = 5,
  FSImageJPX = 6,
  FSImageJBIG2 = 8,
  FSImageWEBP = 9
};

typedef NS_ENUM(NSInteger, FSImageOrientation) {
  FSImageOrientationNone = 0,
  FSImageOrientationNormal = 1,
  FSImageOrientationFlipH = 2,
  FSImageOrientationRotate180 = 3,
  FSImageOrientationFlipV = 4,
  FSImageOrientationRotate90FlipH = 5,
  FSImageOrientationRotate90 = 6,
  FSImageOrientationRotate270FlipH = 7,
  FSImageOrientationRotate270 = 8
};

@interface FSImage : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithPath: (NSString *)path;
-(id)initWithFile_read: (id<FSFileReaderCallback>)file_read;
-(id)initWithOther: (FSImage*)other;
-(BOOL)isEmpty;
-(FSImageType)getType;
-(int)getWidth;
-(int)getHeight;
-(int)getFrameCount;
-(FSBitmap*)getFrameBitmap: (int)index;
-(int)getXDPI;
-(int)getYDPI;
-(BOOL)addFrame: (FSBitmap*)bitmap;
-(void)setDPIs: (int)x_dpi y_dpi: (int)y_dpi;
-(BOOL)saveAs: (NSString *)file_path;
-(BOOL)saveAsWithStreamCallback: (id<FSFileStreamCallback>)file file_extension: (NSString *)file_extension;
-(FSImageOrientation)getOrientation;
-(id)initWithBuffer: (NSData *)buffer;

-(void)dealloc;

@end



typedef NS_ENUM(NSInteger, FSBarcodeFormat) {
  FSBarcodeFormatCode39 = 0,
  FSBarcodeFormatCode128 = 1,
  FSBarcodeFormatEAN8 = 2,
  FSBarcodeFormatUPCA = 3,
  FSBarcodeFormatEAN13 = 4,
  FSBarcodeFormatITF = 5,
  FSBarcodeFormatPDF417 = 6,
  FSBarcodeFormatQRCode = 7
};

typedef NS_ENUM(NSInteger, FSBarcodeQRErrorCorrectionLevel) {
  FSBarcodeQRCorrectionLevelLow = 0,
  FSBarcodeQRCorrectionLevelMedium = 1,
  FSBarcodeQRCorrectionLevelQuater = 2,
  FSBarcodeQRCorrectionLevelHigh = 3
};

@interface FSBarcode : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSBarcode*)other;
-(BOOL)isEmpty;
-(FSBitmap*)generateBitmap: (NSString *)info format: (FSBarcodeFormat)format unit_width: (int)unit_width height: (int)height level: (FSBarcodeQRErrorCorrectionLevel)level;

-(void)dealloc;

@end

@interface PDFDictionaryArray : FSBasicArray
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (PDFDictionaryArray*)other;
-(int)getSize;
-(int)getUpperBound;
-(BOOL)setSize: (int)nNewSize nGrowBy: (int)nGrowBy;
-(void)removeAll;
-(FSPDFDictionary*)getAt: (int)nIndex;
-(BOOL)setAt: (int)nIndex newElement: (FSPDFDictionary*)newElement;
-(BOOL)setAtGrow: (int)nIndex newElement: (FSPDFDictionary*)newElement;
-(BOOL)add: (FSPDFDictionary*)newElement;
-(BOOL)insertAt: (int)nIndex newElement: (FSPDFDictionary*)newElement nCount: (int)nCount;
-(BOOL)removeAt: (int)nIndex nCount: (int)nCount;
-(int)find: (FSPDFDictionary*)data iStart: (int)iStart;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPDFObjectType) {
  FSPDFObjectInvalidType = 0,
  FSPDFObjectBoolean = 1,
  FSPDFObjectNumber = 2,
  FSPDFObjectString = 3,
  FSPDFObjectName = 4,
  FSPDFObjectArray = 5,
  FSPDFObjectDictionary = 6,
  FSPDFObjectStream = 7,
  FSPDFObjectNull = 8,
  FSPDFObjectReference = 9
};

@interface FSPDFObject : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSPDFObject*)createFromBoolean: (BOOL)boolean_value;
+(FSPDFObject*)createFromFloat: (float)float_value;
+(FSPDFObject*)createFromInteger: (int)integer_value;
+(FSPDFObject*)createFromString: (NSString *)string_value;
+(FSPDFObject*)createFromStringWithLength: (NSString *)string_value length: (int)length;
+(FSPDFObject*)createFromNameW: (NSString *)name;
+(FSPDFObject*)createFromName: (NSString *)name;
+(FSPDFObject*)createFromDateTime: (FSDateTime*)date_time;
+(FSPDFObject*)createReference: (FSPDFDoc*)document object_number: (unsigned int)object_number;
-(void)destroy;
-(FSPDFObject*)cloneObject;
-(FSPDFObject*)deepCloneObject;
-(BOOL)isIdentical: (FSPDFObject*)pdf_obj;
-(FSPDFObjectType)getType;
-(unsigned int)getObjNum;
-(int)getInteger;
-(float)getFloat;
-(BOOL)getBoolean;
-(FSMatrix2D*)getMatrix;
-(FSRectF*)getRect;
-(FSPDFObject*)getDirectObject;
-(FSDateTime*)getDateTime;
-(NSString *)getName;
-(NSString *)getWideString;
-(FSPDFArray*)getArray;
-(FSPDFDictionary*)getDict;
-(FSPDFStream*)getStream;
-(NSData *)getString;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPDFStreamFilter) {
  FSPDFStreamUnknown = -1,
  FSPDFStreamNoneDecode = 0,
  FSPDFStreamASCIIHexDecode = 1,
  FSPDFStreamASCII85Decode = 2,
  FSPDFStreamLZWDecode = 3,
  FSPDFStreamFlateDecode = 4,
  FSPDFStreamRunLengthDecode = 5,
  FSPDFStreamCCITTFaxDecode = 6,
  FSPDFStreamJBIG2Decode = 7,
  FSPDFStreamDCTDecode = 8,
  FSPDFStreamJPXDecode = 9,
  FSPDFStreamCrypt = 10
};

@interface FSPDFStream : FSPDFObject
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSPDFStream*)create: (FSPDFDictionary*)dictionary;
-(FSPDFDictionary*)getDictionary;
-(FSPDFStreamFilter)getStreamFilter;
-(unsigned long long)getDataSize: (BOOL)is_raw_data;
-(void)importData: (id<FSFileReaderCallback>)file_read stream_filter: (FSPDFStreamFilter)stream_filter;
-(id<FSFileReaderCallback>)exportData: (BOOL)is_raw_data;
-(NSData *)getData: (BOOL)is_raw_data;
-(void)setData: (NSData *)buffer;

-(void)dealloc;

@end

@interface FSPDFArray : FSPDFObject
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSPDFArray*)create;
+(FSPDFArray*)createFromMatrix: (FSMatrix2D*)matrix;
+(FSPDFArray*)createFromRect: (FSRectF*)rect;
-(int)getElementCount;
-(FSPDFObject*)getElement: (int)index;
-(void)addElement: (FSPDFObject*)element;
-(void)addBoolean: (BOOL)boolean_value;
-(void)addDateTime: (FSDateTime*)date_time;
-(void)addFloat: (float)float_value;
-(void)addInteger: (int)integer_value;
-(void)addMatrix: (FSMatrix2D*)matrix;
-(void)addRect: (FSRectF*)rect;
-(void)addName: (NSString *)name;
-(void)addString: (NSString *)new_string;
-(void)insertAt: (int)index element: (FSPDFObject*)element;
-(void)setAt: (int)index element: (FSPDFObject*)element;
-(void)removeAt: (int)index;
-(void)addReference: (FSPDFObject*)pdf_object document: (FSPDFDoc*)document;

-(void)dealloc;

@end

@interface FSPDFDictionary : FSPDFObject
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSPDFDictionary*)create;
-(BOOL)hasKey: (NSString *)key;
-(FSPDFObject*)getElement: (NSString *)key;
-(long)moveNext: (long)position;
-(NSString *)getKey: (long)position;
-(FSPDFObject*)getValue: (long)position;
-(void)setAt: (NSString *)key pdf_object: (FSPDFObject*)pdf_object;
-(void)setAtReference: (NSString *)key pdf_object: (FSPDFObject*)pdf_object document: (FSPDFDoc*)document;
-(void)setAtBoolean: (NSString *)key value: (BOOL)value;
-(void)setAtDateTime: (NSString *)key value: (FSDateTime*)value;
-(void)setAtFloat: (NSString *)key value: (float)value;
-(void)setAtInteger: (NSString *)key value: (int)value;
-(void)setAtMatrix: (NSString *)key value: (FSMatrix2D*)value;
-(void)setAtRect: (NSString *)key value: (FSRectF*)value;
-(void)setAtName: (NSString *)key value: (NSString *)value;
-(void)setAtString: (NSString *)key value: (NSString *)value;
-(void)removeAt: (NSString *)key;

-(void)dealloc;

@end

@interface FSGraphicsObjectArray : FSBasicArray
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSGraphicsObjectArray*)other;
-(int)getSize;
-(int)getUpperBound;
-(BOOL)setSize: (int)nNewSize nGrowBy: (int)nGrowBy;
-(void)removeAll;
-(FSGraphicsObject*)getAt: (int)nIndex;
-(BOOL)setAt: (int)nIndex newElement: (FSGraphicsObject*)newElement;
-(BOOL)setAtGrow: (int)nIndex newElement: (FSGraphicsObject*)newElement;
-(BOOL)add: (FSGraphicsObject*)newElement;
-(BOOL)insertAt: (int)nIndex newElement: (FSGraphicsObject*)newElement nCount: (int)nCount;
-(BOOL)removeAt: (int)nIndex nCount: (int)nCount;
-(int)find: (FSGraphicsObject*)data iStart: (int)iStart;

-(void)dealloc;

@end

@interface FSTextObjectArray : FSBasicArray
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSTextObjectArray*)other;
-(int)getSize;
-(int)getUpperBound;
-(BOOL)setSize: (int)nNewSize nGrowBy: (int)nGrowBy;
-(void)removeAll;
-(FSTextObject*)getAt: (int)nIndex;
-(BOOL)setAt: (int)nIndex newElement: (FSTextObject*)newElement;
-(BOOL)setAtGrow: (int)nIndex newElement: (FSTextObject*)newElement;
-(BOOL)add: (FSTextObject*)newElement;
-(BOOL)insertAt: (int)nIndex newElement: (FSTextObject*)newElement nCount: (int)nCount;
-(BOOL)removeAt: (int)nIndex nCount: (int)nCount;
-(int)find: (FSTextObject*)data iStart: (int)iStart;

-(void)dealloc;

@end

@interface FSColorState : FSBase
@property (nonatomic, weak, getter=getFillColor) FSColor* fillColor;
@property (nonatomic, weak, getter=getStrokeColor) FSColor* strokeColor;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSColorState*)other;
-(BOOL)isEmpty;

-(void)dealloc;

@end

@interface FSMarkedContent : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(BOOL)hasTag: (NSString *)tag_name;
-(int)getItemCount;
-(NSString *)getItemTagName: (int)index;
-(int)getItemMCID: (int)index;
-(FSPDFDictionary*)getItemPropertyDict: (int)index;
-(int)addItem: (NSString *)tag_name property_dict: (FSPDFDictionary*)property_dict;
-(BOOL)removeItem: (NSString *)tag_name;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSGraphicsObjectBlendMode) {
  FSGraphicsObjectBlendNormal = 0,
  FSGraphicsObjectBlendMultiply = 1,
  FSGraphicsObjectBlendScreen = 2,
  FSGraphicsObjectBlendOverlay = 3,
  FSGraphicsObjectBlendDarken = 4,
  FSGraphicsObjectBlendLighten = 5,
  FSGraphicsObjectBlendColorDodge = 6,
  FSGraphicsObjectBlendColorBurn = 7,
  FSGraphicsObjectBlendHardlight = 8,
  FSGraphicsObjectBlendSoftlight = 9,
  FSGraphicsObjectBlendDifference = 10,
  FSGraphicsObjectBlendExclusion = 11,
  FSGraphicsObjectBlendHue = 21,
  FSGraphicsObjectBlendSaturation = 22,
  FSGraphicsObjectBlendColor = 23,
  FSGraphicsObjectBlendLuminosity = 24
};

typedef NS_ENUM(NSInteger, FSGraphicsObjectType) {
  FSGraphicsObjectTypeAll = 0,
  FSGraphicsObjectTypeText = 1,
  FSGraphicsObjectTypePath = 2,
  FSGraphicsObjectTypeImage = 3,
  FSGraphicsObjectTypeShading = 4,
  FSGraphicsObjectTypeFormXObject = 5,
  FSGraphicsObjectTypeInlines = 6,
  FSGraphicsObjectTypeEmptyMarkedContent = 7
};

@interface FSGraphicsObject : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getStrokeColor) unsigned int strokeColor;
@property (nonatomic, getter=getFillColor) unsigned int fillColor;
@property (nonatomic, weak, getter=getColorState) FSColorState* colorState;
@property (nonatomic, getter=getFillOpacity) float fillOpacity;
@property (nonatomic, getter=getStrokeOpacity) float strokeOpacity;
@property (nonatomic, weak, getter=getMatrix) FSMatrix2D* matrix;
@property (nonatomic, weak, getter=getGraphState) FSGraphState* graphState;
@property (nonatomic, getter=getBlendMode) FSGraphicsObjectBlendMode blendMode;
@property (nonatomic, weak, getter=getClipRect) FSRectF* clipRect;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(FSGraphicsObjectType)getType;
-(FSRectF*)getRect;
-(BOOL)hasTransparency;
-(BOOL)transform: (FSMatrix2D*)matrix need_transform_clippath: (BOOL)need_transform_clippath;
-(FSGraphicsObject*)clone;
-(FSGraphicsObject*)cloneWithSrcGraphicsobjects: (FSGraphicsObjects*)src_graphicsobjects dest_graphicsobjects: (FSGraphicsObjects*)dest_graphicsobjects;
-(int)getClipPathCount;
-(FSPath*)getClipPath: (int)index;
-(FSFillMode)getClipPathFillMode: (int)index;
-(BOOL)addClipPath: (FSPath*)path fill_mode: (FSFillMode)fill_mode;
-(BOOL)removeClipPath: (int)index;
-(int)getClipTextObjectCount;
-(FSTextObject*)getClipTextObject: (int)index;
-(BOOL)addClipTextObject: (FSTextObject*)textobject;
-(BOOL)removeClipTextObject: (int)index;
-(BOOL)clearClips;
-(FSMarkedContent*)getMarkedContent;
-(FSLayerNodeArray*)getLayers: (FSLayerTree*)layer_tree;
-(FSTextObject*)getTextObject;
-(FSFormXObject*)getFormXObject;
-(FSImageObject*)getImageObject;
-(FSPathObject*)getPathObject;
-(FSShadingObject*)getShadingObject;
-(void)rotate: (int)angle;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSTextStateMode) {
  FSTextStateModeFill = 0,
  FSTextStateModeStroke = 1,
  FSTextStateModeFillStroke = 2,
  FSTextStateModeInvisible = 3,
  FSTextStateModeFillClip = 4,
  FSTextStateModeStrokeClip = 5,
  FSTextStateModeFillStrokeClip = 6,
  FSTextStateModeClip = 7
};

@interface FSTextState : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getVersion) unsigned int version;
@property (nonatomic, getter=getFont_size) float font_size;
@property (nonatomic, getter=getFont_vertical_size) float font_vertical_size;
@property (nonatomic, getter=getFont_horizontal_size) float font_horizontal_size;
@property (nonatomic, getter=getCharspace) float charspace;
@property (nonatomic, getter=getWordspace) float wordspace;
@property (nonatomic, getter=getTextmode) FSTextStateMode textmode;
@property (nonatomic, weak, getter=getTextmatrix) NSArray<NSNumber *> * textmatrix;
@property (nonatomic, weak, getter=getOrigin_position) FSPointF* origin_position;
@property (nonatomic, weak, getter=getFont) FSFont* font;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithVersion: (unsigned int)version font: (FSFont*)font font_size: (float)font_size charspace: (float)charspace wordspace: (float)wordspace textmode: (FSTextStateMode)textmode origin_position: (FSPointF*)origin_position textmatrix: (NSArray<NSNumber *> *)textmatrix;
-(id)init;
-(id)initWithState: (FSTextState*)state;
-(void)set: (unsigned int)version font: (FSFont*)font font_size: (float)font_size charspace: (float)charspace wordspace: (float)wordspace textmode: (FSTextStateMode)textmode origin_position: (FSPointF*)origin_position textmatrix: (NSArray<NSNumber *> *)textmatrix;

-(void)dealloc;

@end

@interface FSImageObject : FSGraphicsObject
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSImageObject*)create: (FSPDFDoc*)document;
-(void)setBitmap: (FSBitmap*)bitmap mask: (FSBitmap*)mask;
-(void)setImage: (FSImage*)image frame_index: (int)frame_index;
-(FSBitmap*)cloneBitmap: (FSGraphicsObjects*)graphics_objects;
-(FSBitmap*)cloneBitmapWithPage: (FSPDFPage*)page graphics_objects: (FSGraphicsObjects*)graphics_objects;
+(FSImageObject*)createFromType3TextObject: (FSPDFPage*)page text_obj: (FSTextObject*)text_obj;
-(FSColorSpaceType)getColorSpace;
-(FSPDFStream*)getStream;
-(BOOL)isImageMask;
-(FSPDFObject*)getMask;

-(void)dealloc;

@end

@interface FSTextObject : FSGraphicsObject
@property (nonatomic, weak, getter=getText) NSString * text;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSTextObject*)create;
-(FSTextState*)getTextState: (FSPDFPage*)page;
-(void)setTextState: (FSPDFPage*)page text_state: (FSTextState*)text_state is_italic: (BOOL)is_italic weight: (int)weight;
-(int)getCharCount;
-(FSPointF*)getCharPos: (int)index;
-(float)getCharWidthByIndex: (int)index;
-(float)getCharHeightByIndex: (int)index;

-(void)dealloc;

@end

@interface FSPathObject : FSGraphicsObject
@property (nonatomic, getter=getFillMode) FSFillMode fillMode;
@property (nonatomic, getter=getStrokeState) BOOL strokeState;
@property (nonatomic, weak, getter=getPathData) FSPath* pathData;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSPathObject*)create;
+(FSPathObject*)createFromTextObject: (FSPDFPage*)page text_obj: (FSTextObject*)text_obj;

-(void)dealloc;

@end

@interface FSFormXObject : FSGraphicsObject
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSFormXObject*)create: (FSPDFDoc*)document;
-(FSPDFStream*)getStream;
-(FSGraphicsObjects*)getGraphicsObjects;
-(BOOL)importPageContent: (FSPDFPage*)source_page is_annots_included: (BOOL)is_annots_included;

-(void)dealloc;

@end

@interface FSShadingObject : FSGraphicsObject
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(FSPDFObject*)getPDFObject;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPDFNameTreeType) {
  FSPDFNameTreeDests = 1,
  FSPDFNameTreeJavaScript = 2,
  FSPDFNameTreeEmbeddedFiles = 3,
  FSPDFNameTreePages = 4,
  FSPDFNameTreeTemplates = 5
};

@interface FSPDFNameTree : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document type: (FSPDFNameTreeType)type;
-(id)init;
-(id)initWithOther: (FSPDFNameTree*)other;
-(BOOL)isEmpty;
-(FSPDFNameTreeType)getType;
-(BOOL)hasName: (NSString *)name;
-(int)getCount;
-(NSString *)getName: (int)index;
-(FSPDFObject*)getObj: (NSString *)name;
-(BOOL)setObj: (NSString *)name pdf_object: (FSPDFObject*)pdf_object;
-(BOOL)rename: (NSString *)old_name new_name: (NSString *)new_name;
-(BOOL)add: (NSString *)name pdf_object: (FSPDFObject*)pdf_object;
-(BOOL)removeObj: (NSString *)name;
-(BOOL)removeAllObjs;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPDFNumberTreeType) {
  FSPDFNumberTreePageLabels = 1
};

@interface FSPDFNumberTree : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document type: (FSPDFNumberTreeType)type;
-(id)init;
-(id)initWithOther: (FSPDFNumberTree*)other;
-(BOOL)isEmpty;
-(FSPDFNumberTreeType)getType;
-(BOOL)hasNumber: (int)number;
-(FSPDFObject*)getObj: (int)number;
-(BOOL)setObj: (int)number pdf_object: (FSPDFObject*)pdf_object;
-(BOOL)removeObj: (int)number;
-(BOOL)removeAllObjs;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSStructTreeEntityStructTreeEntityType) {
  FSStructTreeEntityUnknownType = -1,
  FSStructTreeEntityStructTreeEntityTypeElement = 0,
  FSStructTreeEntityStructTreeEntityTypeMarkedContent = 1,
  FSStructTreeEntityStructTreeEntityTypeObjectContent = 2
};

@interface FSStructTreeEntity : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSStructTreeEntity*)other;
-(BOOL)isEmpty;
-(FSStructTreeEntityStructTreeEntityType)getType;
-(FSPDFPage*)getPage;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSStructElementElementInfoType) {
  FSStructElementElementInfoTypeTitle = 0,
  FSStructElementElementInfoTypeLanguage = 1,
  FSStructElementElementInfoTypeAltDescription = 2,
  FSStructElementElementInfoTypeExpandedForm = 3,
  FSStructElementElementInfoTypeActualText = 4
};

@interface FSStructElement : FSStructTreeEntity
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSStructElement*)other;
-(NSString *)getStructureTypeName;
-(int)getChildCount;
-(FSStructTreeEntity*)getChild: (int)index;
-(void)removeChild: (int)index;
-(BOOL)hasElementInfo: (FSStructElementElementInfoType)type;
-(NSString *)getElementInfo: (FSStructElementElementInfoType)type;
-(FSStructElement*)getParentElement;

-(void)dealloc;

@end

@interface FSStructMarkedContent : FSStructTreeEntity
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSStructMarkedContent*)other;
-(FSStructElement*)getParentElement;
-(unsigned int)getMCID;
-(FSPDFDictionary*)getStmDict;
-(FSPDFDictionary*)getStmOwnerDict;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSStructObjectContentStructObjectType) {
  FSStructObjectContentUnknownType = -1,
  FSStructObjectContentStructObjectTypeInvalid = 0,
  FSStructObjectContentStructObjectTypeImage = 1,
  FSStructObjectContentStructObjectTypeForm = 2,
  FSStructObjectContentStructObjectTypeAnnot = 3
};

@interface FSStructObjectContent : FSStructTreeEntity
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSStructObjectContent*)other;
-(FSStructElement*)getParentElement;
-(FSStructObjectContentStructObjectType)getObjectType;
-(FSPDFDictionary*)getDict;

-(void)dealloc;

@end

@interface FSPDFStructTree : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithOther: (FSPDFStructTree*)other;
-(BOOL)isEmpty;
-(int)getChildCount;
-(FSStructElement*)getChild: (int)index;
-(void)removeChild: (int)index;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSRenditionMediaOptionType) {
  FSRenditionMediaOptionMustBeHonored = 0,
  FSRenditionMediaOptionBestEffort = 1
};

typedef NS_ENUM(NSInteger, FSRenditionMediaPermission) {
  FSRenditionMediaPermTempNever = 0,
  FSRenditionMediaPermTempExtract = 1,
  FSRenditionMediaPermTempAccess = 2,
  FSRenditionMediaPermTempAlways = 3
};

typedef NS_ENUM(NSInteger, FSRenditionMediaPlayerType) {
  FSRenditionMediaPlayerMustUsed = 0,
  FSRenditionMediaPlayerAvailable = 1,
  FSRenditionMediaPlayerNotUsed = 2
};

typedef NS_ENUM(NSInteger, FSRenditionMediaPlayerFitStyle) {
  FSRenditionMediaPlayerFitStyleMeet = 0,
  FSRenditionMediaPlayerFitStyleSlice = 1,
  FSRenditionMediaPlayerFitStyleFill = 2,
  FSRenditionMediaPlayerFitStyleScroll = 3,
  FSRenditionMediaPlayerFitStyleHidden = 4,
  FSRenditionMediaPlayerFitStyleDefault = 5
};

typedef NS_ENUM(NSInteger, FSRenditionWindowType) {
  FSRenditionWindowTypeFloating = 0,
  FSRenditionWindowTypeFullScreen = 1,
  FSRenditionWindowTypeHidden = 2,
  FSRenditionWindowTypeAnnotRect = 3
};

typedef NS_ENUM(NSInteger, FSRenditionMonitorSpecifier) {
  FSRenditionMonitorSpecifierLargest = 0,
  FSRenditionMonitorSpecifierSmallest = 1,
  FSRenditionMonitorSpecifierPrimary = 2,
  FSRenditionMonitorSpecifierGreatestColorDepth = 3,
  FSRenditionMonitorSpecifierGreatestArea = 4,
  FSRenditionMonitorSpecifierGreatestHeight = 5,
  FSRenditionMonitorSpecifierGreatestWidth = 6
};

typedef NS_ENUM(NSInteger, FSRenditionFloatingWindowRelatedWindowType) {
  FSRenditionFloatingWindowRelatedWindowDocument = 0,
  FSRenditionFloatingWindowRelatedWindowApplication = 1,
  FSRenditionFloatingWindowRelatedWindowFullDesktop = 2,
  FSRenditionFloatingWindowRelatedWindowMonitor = 3
};

typedef NS_ENUM(NSInteger, FSRenditionFloatingWindowResizeType) {
  FSRenditionFloatingWindowResizeTypeNo = 0,
  FSRenditionFloatingWindowResizeTypeAspectRatio = 1,
  FSRenditionFloatingWindowResizeTypeAnyway = 2
};

typedef NS_ENUM(NSInteger, FSRenditionFloatingWindowOffscreenEvent) {
  FSRenditionFloatingWindowOffscreenEventNone = 0,
  FSRenditionFloatingWindowOffscreenEventMoveResize = 1,
  FSRenditionFloatingWindowOffscreenEventNonViable = 2
};

@interface FSRendition : FSBase
@property (nonatomic, weak, getter=getRenditionName) NSString * renditionName;
@property (nonatomic, weak, getter=getMediaClipName) NSString * mediaClipName;
@property (nonatomic, weak, getter=getMediaClipFile) FSFileSpec* mediaClipFile;
@property (nonatomic, weak, getter=getMediaClipContentType) NSString * mediaClipContentType;
@property (nonatomic, getter=getPermission) FSRenditionMediaPermission permission;
@property (nonatomic, weak, getter=getMediaDescriptions) NSArray<NSString *> * mediaDescriptions;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPdf_doc: (FSPDFDoc*)pdf_doc rendition_dict: (FSPDFDictionary*)rendition_dict;
-(id)initWithOther: (FSRendition*)other;
-(BOOL)isEmpty;
-(FSPDFDictionary*)getDict;
-(BOOL)hasMediaClip;
-(NSString *)getMediaBaseURL;
-(void)setMediaBaseURL: (NSString *)base_url opt_type: (FSRenditionMediaOptionType)opt_type;
-(int)getMediaPlayerCount: (FSRenditionMediaPlayerType)type;
-(FSMediaPlayer*)getMediaPlayer: (FSRenditionMediaPlayerType)type index: (int)index;
-(int)addMediaPlayer: (FSRenditionMediaPlayerType)type player: (FSMediaPlayer*)player;
-(void)removeMediaPlayer: (FSRenditionMediaPlayerType)type player: (FSMediaPlayer*)player;
-(int)getVolume;
-(void)setVolume: (int)volume opt_type: (FSRenditionMediaOptionType)opt_type;
-(BOOL)isControlBarVisible;
-(void)enableControlBarVisible: (BOOL)is_visible opt_type: (FSRenditionMediaOptionType)opt_type;
-(FSRenditionMediaPlayerFitStyle)getFitStyle;
-(void)setFitStyle: (FSRenditionMediaPlayerFitStyle)fit_style opt_type: (FSRenditionMediaOptionType)opt_type;
-(int)getDuration;
-(void)setDuration: (int)duration opt_type: (FSRenditionMediaOptionType)opt_type;
-(BOOL)isAutoPlay;
-(void)enableAutoPlay: (BOOL)is_auto_play opt_type: (FSRenditionMediaOptionType)opt_type;
-(int)getRepeatCount;
-(void)setRepeatCount: (int)count opt_type: (FSRenditionMediaOptionType)opt_type;
-(FSRenditionWindowType)getWindowType;
-(void)setWindowType: (FSRenditionWindowType)window_type opt_type: (FSRenditionMediaOptionType)opt_type;
-(unsigned int)getBackgroundColor;
-(void)setBackgroundColor: (unsigned int)color opt_type: (FSRenditionMediaOptionType)opt_type;
-(float)getBackgroundOpacity;
-(void)setBackgroundOpacity: (float)opacity opt_type: (FSRenditionMediaOptionType)opt_type;
-(FSRenditionMonitorSpecifier)getMonitorSpecifier;
-(void)setMonitorSpecifier: (FSRenditionMonitorSpecifier)monitor_specifier opt_type: (FSRenditionMediaOptionType)opt_type;
-(int)getFloatingWindowWidth;
-(int)getFloatingWindowHeight;
-(void)setFloatingWindowSize: (int)width height: (int)height opt_type: (FSRenditionMediaOptionType)opt_type;
-(FSRenditionFloatingWindowRelatedWindowType)getFloatingWindowRelatedWindowType;
-(void)setFloatingWindowRelatedWindowType: (FSRenditionFloatingWindowRelatedWindowType)window_type opt_type: (FSRenditionMediaOptionType)opt_type;
-(FSPosition)getFloatingWindowPosition;
-(void)setFloatingWindowPosition: (FSPosition)position opt_type: (FSRenditionMediaOptionType)opt_type;
-(FSRenditionFloatingWindowOffscreenEvent)getFloatingWindowOffscreenEvent;
-(void)setFloatingWindowOffscreenEvent: (FSRenditionFloatingWindowOffscreenEvent)offscreen_event opt_type: (FSRenditionMediaOptionType)opt_type;
-(BOOL)hasFloatingWindowTitleBar;
-(void)enableFloatingWindowTitleBar: (BOOL)is_visible opt_type: (FSRenditionMediaOptionType)opt_type;
-(BOOL)hasFloatingWindowCloseButton;
-(void)enableFloatingWindowCloseButton: (BOOL)is_visible opt_type: (FSRenditionMediaOptionType)opt_type;
-(FSRenditionFloatingWindowResizeType)getFloatingWindowResizeType;
-(void)setFloatingWindowResizeType: (FSRenditionFloatingWindowResizeType)resize_type opt_type: (FSRenditionMediaOptionType)opt_type;
-(NSArray<NSString *> *)getFloatingWindowTitles;
-(void)setFloatingWindowTitles: (NSArray<NSString *> *)titles opt_type: (FSRenditionMediaOptionType)opt_type;

-(void)dealloc;

@end

@interface FSMediaPlayer : FSBase
@property (nonatomic, weak, getter=getSoftwareURI) NSString * softwareURI;
@property (nonatomic, weak, getter=getOSIdentifiers) NSArray<NSData *> * oSIdentifiers;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithMedia_player_dict: (FSPDFDictionary*)media_player_dict;
-(id)initWithOther: (FSMediaPlayer*)other;
-(BOOL)isEmpty;
-(FSPDFDictionary*)getDict;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSDestinationZoomMode) {
  FSDestinationZoomXYZ = 1,
  FSDestinationZoomFitPage = 2,
  FSDestinationZoomFitHorz = 3,
  FSDestinationZoomFitVert = 4,
  FSDestinationZoomFitRect = 5,
  FSDestinationZoomFitBBox = 6,
  FSDestinationZoomFitBHorz = 7,
  FSDestinationZoomFitBVert = 8
};

@interface FSDestination : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSDestination*)createXYZ: (FSPDFDoc*)document page_index: (int)page_index left: (float)left top: (float)top zoom_factor: (float)zoom_factor;
+(FSDestination*)createFitPage: (FSPDFDoc*)document page_index: (int)page_index;
+(FSDestination*)createFitHorz: (FSPDFDoc*)document page_index: (int)page_index top: (float)top;
+(FSDestination*)createFitVert: (FSPDFDoc*)document page_index: (int)page_index left: (float)left;
+(FSDestination*)createFitRect: (FSPDFDoc*)document page_index: (int)page_index left: (float)left bottom: (float)bottom right: (float)right top: (float)top;
+(FSDestination*)createFitBBox: (FSPDFDoc*)document page_index: (int)page_index;
+(FSDestination*)createFitBHorz: (FSPDFDoc*)document page_index: (int)page_index top: (float)top;
+(FSDestination*)createFitBVert: (FSPDFDoc*)document page_index: (int)page_index left: (float)left;
+(FSDestination*)createFromPDFArray: (FSPDFDoc*)document pdf_array: (FSPDFArray*)pdf_array;
-(id)initWithDest_array: (FSPDFArray*)dest_array;
-(id)initWithOther: (FSDestination*)other;
-(BOOL)isEmpty;
-(int)getPageIndex: (FSPDFDoc*)document;
-(FSDestinationZoomMode)getZoomMode;
-(float)getLeft;
-(BOOL)isLeftNull;
-(float)getTop;
-(BOOL)isTopNull;
-(float)getRight;
-(float)getBottom;
-(float)getZoomFactor;
-(FSPDFArray*)getDestArray;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSActionType) {
  FSActionTypeUnknown = 0,
  FSActionTypeGoto = 1,
  FSActionTypeGoToR = 2,
  FSActionTypeGoToE = 3,
  FSActionTypeLaunch = 4,
  FSActionTypeThread = 5,
  FSActionTypeURI = 6,
  FSActionTypeSound = 7,
  FSActionTypeMovie = 8,
  FSActionTypeHide = 9,
  FSActionTypeNamed = 10,
  FSActionTypeSubmitForm = 11,
  FSActionTypeResetForm = 12,
  FSActionTypeImportData = 13,
  FSActionTypeJavaScript = 14,
  FSActionTypeSetOCGState = 15,
  FSActionTypeRendition = 16,
  FSActionTypeTrans = 17,
  FSActionTypeGoTo3DView = 18
};

typedef NS_ENUM(NSInteger, FSActionNewWindowFlag) {
  FSActionNewWindowFlagFalse = 0,
  FSActionNewWindowFlagTrue = 1,
  FSActionNewWindowFlagNone = 2
};

@interface FSAction : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSAction*)create: (FSPDFDoc*)document action_type: (FSActionType)action_type;
-(id)initWithDocument: (FSPDFDoc*)document action_dict: (FSPDFDictionary*)action_dict;
-(id)initWithAction: (FSAction*)action;
-(BOOL)isEmpty;
-(FSActionType)getType;
-(FSPDFDoc*)getDocument;
-(FSPDFDictionary*)getDict;
-(int)getSubActionCount;
-(FSAction*)getSubAction: (int)index;
-(void)setSubAction: (int)index sub_action: (FSAction*)sub_action;
-(void)insertSubAction: (int)index sub_action: (FSAction*)sub_action;
-(void)removeSubAction: (int)index;
-(void)removeAllSubActions;

-(void)dealloc;

@end

@interface FSGotoAction : FSAction
@property (nonatomic, weak, getter=getDestination) FSDestination* destination;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;

-(void)dealloc;

@end

@interface FSURIAction : FSAction
@property (nonatomic, weak, getter=getURI) NSString * uRI;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;
-(BOOL)isTrackPosition;
-(void)setTrackPositionFlag: (BOOL)is_track_position;

-(void)dealloc;

@end

@interface FSJavaScriptAction : FSAction
@property (nonatomic, weak, getter=getScript) NSString * script;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;

-(void)dealloc;

@end

@interface FSNamedAction : FSAction
@property (nonatomic, weak, getter=getName) NSString * name;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;

-(void)dealloc;

@end

@interface FSRemoteGotoAction : FSAction
@property (nonatomic, weak, getter=getDestination) FSDestination* destination;
@property (nonatomic, weak, getter=getDestinationName) NSString * destinationName;
@property (nonatomic, weak, getter=getFileSpec) FSFileSpec* fileSpec;
@property (nonatomic, getter=getNewWindowFlag) FSActionNewWindowFlag newWindowFlag;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;

-(void)dealloc;

@end

@interface FSEmbeddedGotoTarget : FSBase
@property (nonatomic, weak, getter=getRelationship) NSString * relationship;
@property (nonatomic, weak, getter=getAttachedFileName) NSString * attachedFileName;
@property (nonatomic, getter=getPageIndex) int pageIndex;
@property (nonatomic, getter=getFileAttachmentAnnotIndex) int fileAttachmentAnnotIndex;
@property (nonatomic, weak, getter=getTarget) FSEmbeddedGotoTarget* target;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithDocument: (FSPDFDoc*)document target_object: (FSPDFDictionary*)target_object;
-(id)initWithAction: (FSEmbeddedGotoTarget*)action;
-(FSPDFDictionary*)getDict;
-(BOOL)isEmpty;

-(void)dealloc;

@end

@interface FSEmbeddedGotoAction : FSAction
@property (nonatomic, weak, getter=getDestination) FSDestination* destination;
@property (nonatomic, weak, getter=getDestinationName) NSString * destinationName;
@property (nonatomic, weak, getter=getRootFile) FSFileSpec* rootFile;
@property (nonatomic, getter=getNewWindowFlag) FSActionNewWindowFlag newWindowFlag;
@property (nonatomic, weak, getter=getTarget) FSEmbeddedGotoTarget* target;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSubmitFormActionFlags) {
  FSSubmitFormActionFlagExclude = 0x0001,
  FSSubmitFormActionFlagIncludeNoValueFields = 0x0002,
  FSSubmitFormActionFlagExportFormat = 0x0004,
  FSSubmitFormActionFlagGetMethod = 0x0008,
  FSSubmitFormActionFlagWithCoordinates = 0x0010,
  FSSubmitFormActionFlagAsXFDF = 0x0020,
  FSSubmitFormActionFlagIncludeAppendSaves = 0x0040,
  FSSubmitFormActionFlagIncludeAnnotations = 0x0080,
  FSSubmitFormActionFlagSubmitAsPDF = 0x0100,
  FSSubmitFormActionFlagCanonicalFormat = 0x0200,
  FSSubmitFormActionFlagExclNonUserAnnots = 0x0400,
  FSSubmitFormActionFlagExclFKey = 0x0800,
  FSSubmitFormActionFlagEmbedForm = 0x2000
};

@interface FSSubmitFormAction : FSAction
@property (nonatomic, weak, getter=getURL) NSString * uRL;
@property (nonatomic, weak, getter=getFieldNames) NSArray<NSString *> * fieldNames;
@property (nonatomic, getter=getFlags) unsigned int flags;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;

-(void)dealloc;

@end

@interface FSResetFormAction : FSAction
@property (nonatomic, weak, getter=getFieldNames) NSArray<NSString *> * fieldNames;
@property (nonatomic, getter=getFlags) unsigned int flags;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;

-(void)dealloc;

@end

@interface FSImportDataAction : FSAction
@property (nonatomic, weak, getter=getFDFFileSpec) FSFileSpec* fDFFileSpec;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;

-(void)dealloc;

@end

@interface FSHideAction : FSAction
@property (nonatomic, weak, getter=getFieldNames) NSArray<NSString *> * fieldNames;
@property (nonatomic, getter=getHideState) BOOL hideState;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;

-(void)dealloc;

@end

@interface FSLaunchAction : FSAction
@property (nonatomic, weak, getter=getFileSpec) FSFileSpec* fileSpec;
@property (nonatomic, getter=getNewWindowFlag) FSActionNewWindowFlag newWindowFlag;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;
-(NSString *)getWinFileName;
-(NSString *)getWinDefaultDirectory;
-(NSString *)getWinAppOperation;
-(NSString *)getWinAppParameter;
-(void)setWinLaunchParameter: (NSString *)file_name default_directory: (NSString *)default_directory operation: (NSString *)operation app_parameter: (NSString *)app_parameter;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSRenditionActionOperationType) {
  FSRenditionActionOpTypeNone = -1,
  FSRenditionActionOpTypeAssociate = 0,
  FSRenditionActionOpTypeStop = 1,
  FSRenditionActionOpTypePause = 2,
  FSRenditionActionOpTypeResume = 3,
  FSRenditionActionOpTypePlay = 4
};

@interface FSRenditionAction : FSAction
@property (nonatomic, getter=getOperationType) FSRenditionActionOperationType operationType;
@property (nonatomic, weak, getter=getScreenAnnot) FSScreen* screenAnnot;
@property (nonatomic, weak, getter=getJavaScript) NSString * javaScript;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;
-(int)getRenditionCount;
-(FSRendition*)getRendition: (int)index;
-(void)insertRendition: (FSRendition*)rendition index: (int)index;
-(void)removeRendition: (FSRendition*)rendition;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSetOCGStateActionOCGState) {
  FSSetOCGStateActionOCGStateOn = 0,
  FSSetOCGStateActionOCGStateOff = 1,
  FSSetOCGStateActionOCGStateToggle = 2
};

@interface FSSetOCGStateAction : FSAction
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAction: (FSAction*)action;
-(int)getOCGStateCount;
-(FSSetOCGStateActionOCGState)getOCGState: (int)index;
-(PDFDictionaryArray*)getOCGStateArray: (int)index;
-(int)insertOCGStates: (FSPDFDoc*)document index: (int)index state: (FSSetOCGStateActionOCGState)state ocg_dict_array: (PDFDictionaryArray*)ocg_dict_array;
-(BOOL)replaceOCGStates: (FSPDFDoc*)document index: (int)index ocg_dict_array: (PDFDictionaryArray*)ocg_dict_array;
-(void)removeOCGStates: (int)index;
-(BOOL)isRadioButtonStatePreserved;
-(void)setRadioButtonStatePreserved: (BOOL)is_preserved;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSAdditionalActionTriggerEvent) {
  FSAdditionalActionTriggerPageOpened = 0,
  FSAdditionalActionTriggerPageClosed = 1,
  FSAdditionalActionTriggerDocWillClose = 2,
  FSAdditionalActionTriggerDocWillSave = 3,
  FSAdditionalActionTriggerDocSaved = 4,
  FSAdditionalActionTriggerDocWillPrint = 5,
  FSAdditionalActionTriggerDocPrinted = 6,
  FSAdditionalActionTriggerFieldKeyStroke = 7,
  FSAdditionalActionTriggerFieldWillFormat = 8,
  FSAdditionalActionTriggerFieldValueChanged = 9,
  FSAdditionalActionTriggerFieldRecalculateValue = 10,
  FSAdditionalActionTriggerAnnotCursorEnter = 11,
  FSAdditionalActionTriggerAnnotCursorExit = 12,
  FSAdditionalActionTriggerAnnotMouseButtonPressed = 13,
  FSAdditionalActionTriggerAnnotMouseButtonReleased = 14,
  FSAdditionalActionTriggerAnnotReceiveInputFocus = 15,
  FSAdditionalActionTriggerAnnotLoseInputFocus = 16,
  FSAdditionalActionTriggerAnnotPageOpened = 17,
  FSAdditionalActionTriggerAnnotPageClosed = 18,
  FSAdditionalActionTriggerAnnotPageVisible = 19,
  FSAdditionalActionTriggerAnnotPageInvisible = 20
};

@interface FSAdditionalAction : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDoc: (FSPDFDoc*)doc pdf_dict: (FSPDFDictionary*)pdf_dict;
-(id)initWithPage: (FSPDFPage*)page;
-(id)initWithField: (FSField*)field;
-(id)initWithAnnot: (FSAnnot*)annot;
-(id)initWithOther: (FSAdditionalAction*)other;
-(BOOL)isEmpty;
-(FSAction*)getAction: (FSAdditionalActionTriggerEvent)trigger;
-(void)setAction: (FSAdditionalActionTriggerEvent)trigger action: (FSAction*)action;
-(BOOL)removeAction: (FSAdditionalActionTriggerEvent)trigger;
-(BOOL)removeAllActions;
-(BOOL)doJSAction: (FSAdditionalActionTriggerEvent)trigger;
-(FSPDFDictionary*)getDict;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSDefaultAppearanceDefAPFlags) {
  FSDefaultAppearanceFlagFont = 0x0001,
  FSDefaultAppearanceFlagTextColor = 0x0002,
  FSDefaultAppearanceFlagFontSize = 0x0004
};

@interface FSDefaultAppearance : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getFlags) unsigned int flags;
@property (nonatomic, getter=getText_size) float text_size;
@property (nonatomic, getter=getText_color) unsigned int text_color;
@property (nonatomic, weak, getter=getFont) FSFont* font;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFlags: (unsigned int)flags font: (FSFont*)font text_size: (float)text_size text_color: (unsigned int)text_color;
-(id)init;
-(id)initWithDefault_appearance: (FSDefaultAppearance*)default_appearance;
-(void)set: (unsigned int)flags font: (FSFont*)font text_size: (float)text_size text_color: (unsigned int)text_color;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSRichTextStyleCornerMarkStyle) {
  FSRichTextStyleCornerMarkNone = 1,
  FSRichTextStyleCornerMarkSuperscript = 2,
  FSRichTextStyleCornerMarkSubscript = 3
};

@interface FSRichTextStyle : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getFont) FSFont* font;
@property (nonatomic, getter=getText_size) float text_size;
@property (nonatomic, getter=getText_alignment) FSAlignment text_alignment;
@property (nonatomic, getter=getText_color) unsigned int text_color;
@property (nonatomic, getter=getIs_bold) BOOL is_bold;
@property (nonatomic, getter=getIs_italic) BOOL is_italic;
@property (nonatomic, getter=getIs_underline) BOOL is_underline;
@property (nonatomic, getter=getIs_strikethrough) BOOL is_strikethrough;
@property (nonatomic, getter=getMark_style) FSRichTextStyleCornerMarkStyle mark_style;
@property (nonatomic, getter=getChar_space) float char_space;
@property (nonatomic, getter=getWord_space) float word_space;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFont: (FSFont*)font text_size: (float)text_size text_alignment: (FSAlignment)text_alignment text_color: (unsigned int)text_color is_bold: (BOOL)is_bold is_italic: (BOOL)is_italic is_underline: (BOOL)is_underline is_strikethrough: (BOOL)is_strikethrough mark_style: (FSRichTextStyleCornerMarkStyle)mark_style char_space: (float)char_space word_space: (float)word_space;
-(id)init;
-(id)initWithStyle: (FSRichTextStyle*)style;
-(void)set: (FSFont*)font text_size: (float)text_size text_alignment: (FSAlignment)text_alignment text_color: (unsigned int)text_color is_bold: (BOOL)is_bold is_italic: (BOOL)is_italic is_underline: (BOOL)is_underline is_strikethrough: (BOOL)is_strikethrough mark_style: (FSRichTextStyleCornerMarkStyle)mark_style char_space: (float)char_space word_space: (float)word_space;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSBorderInfoStyle) {
  FSBorderInfoSolid = 0,
  FSBorderInfoDashed = 1,
  FSBorderInfoUnderLine = 2,
  FSBorderInfoBeveled = 3,
  FSBorderInfoInset = 4,
  FSBorderInfoCloudy = 5
};

@interface FSBorderInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getWidth) float width;
@property (nonatomic, getter=getStyle) FSBorderInfoStyle style;
@property (nonatomic, getter=getCloud_intensity) float cloud_intensity;
@property (nonatomic, getter=getDash_phase) float dash_phase;
@property (nonatomic, weak, getter=getDashes) FSFloatArray* dashes;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithWidth: (float)width style: (FSBorderInfoStyle)style intensity: (float)intensity dash_phase: (float)dash_phase dashes: (FSFloatArray*)dashes;
-(id)init;
-(id)initWithBorder_info: (FSBorderInfo*)border_info;
-(void)set: (float)width style: (FSBorderInfoStyle)style intensity: (float)intensity dash_phase: (float)dash_phase dashes: (FSFloatArray*)dashes;
-(void)dealloc;

@end

@interface FSQuadPoints : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getFirst) FSPointF* first;
@property (nonatomic, weak, getter=getSecond) FSPointF* second;
@property (nonatomic, weak, getter=getThird) FSPointF* third;
@property (nonatomic, weak, getter=getFourth) FSPointF* fourth;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFirst: (FSPointF*)first second: (FSPointF*)second third: (FSPointF*)third fourth: (FSPointF*)fourth;
-(id)init;
-(id)initWithQuad_points: (FSQuadPoints*)quad_points;
-(void)set: (FSPointF*)first second: (FSPointF*)second third: (FSPointF*)third fourth: (FSPointF*)fourth;

-(void)dealloc;

@end

@interface FSQuadPointsArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSQuadPointsArray*)other;
-(unsigned long)getSize;
-(FSQuadPoints*)getAt: (unsigned long)index;
-(void)add: (FSQuadPoints*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSQuadPoints*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSIconFitScaleWayType) {
  FSIconFitScaleWayNone = 0,
  FSIconFitScaleWayAlways = 1,
  FSIconFitScaleWayBigger = 2,
  FSIconFitScaleWaySmaller = 3,
  FSIconFitScaleWayNever = 4
};

@interface FSIconFit : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getScale_way_type) FSIconFitScaleWayType scale_way_type;
@property (nonatomic, getter=getIs_proportional_scaling) BOOL is_proportional_scaling;
@property (nonatomic, getter=getHorizontal_fraction) float horizontal_fraction;
@property (nonatomic, getter=getVertical_fraction) float vertical_fraction;
@property (nonatomic, getter=getFit_bounds) BOOL fit_bounds;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithType: (FSIconFitScaleWayType)type is_proportional_scaling: (BOOL)is_proportional_scaling horizontal_fraction: (float)horizontal_fraction vertical_fraction: (float)vertical_fraction fit_bounds: (BOOL)fit_bounds;
-(id)initWithIcon_fit: (FSIconFit*)icon_fit;
-(void)set: (FSIconFitScaleWayType)type is_proportional_scaling: (BOOL)is_proportional_scaling horizontal_fraction: (float)horizontal_fraction vertical_fraction: (float)vertical_fraction fit_bounds: (BOOL)fit_bounds;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSAnnotType) {
  FSAnnotUnknownType = 0,
  FSAnnotNote = 1,
  FSAnnotLink = 2,
  FSAnnotFreeText = 3,
  FSAnnotLine = 4,
  FSAnnotSquare = 5,
  FSAnnotCircle = 6,
  FSAnnotPolygon = 7,
  FSAnnotPolyLine = 8,
  FSAnnotHighlight = 9,
  FSAnnotUnderline = 10,
  FSAnnotSquiggly = 11,
  FSAnnotStrikeOut = 12,
  FSAnnotStamp = 13,
  FSAnnotCaret = 14,
  FSAnnotInk = 15,
  FSAnnotPSInk = 16,
  FSAnnotFileAttachment = 17,
  FSAnnotSound = 18,
  FSAnnotMovie = 19,
  FSAnnotWidget = 20,
  FSAnnotScreen = 21,
  FSAnnotPrinterMark = 22,
  FSAnnotTrapNet = 23,
  FSAnnotWatermark = 24,
  FSAnnot3D = 25,
  FSAnnotPopup = 26,
  FSAnnotRedact = 27,
  FSAnnotRichMedia = 28,
  FSAnnotPagingSeal = 29
};

typedef NS_ENUM(NSInteger, FSAnnotFlags) {
  FSAnnotFlagInvisible = 0x0001,
  FSAnnotFlagHidden = 0x0002,
  FSAnnotFlagPrint = 0x0004,
  FSAnnotFlagNoZoom = 0x0008,
  FSAnnotFlagNoRotate = 0x0010,
  FSAnnotFlagNoView = 0x0020,
  FSAnnotFlagReadOnly = 0x0040,
  FSAnnotFlagLocked = 0x0080,
  FSAnnotFlagToggleNoView = 0x0100,
  FSAnnotFlagLockedContents = 0x0200
};

typedef NS_ENUM(NSInteger, FSAnnotHighlightingMode) {
  FSAnnotHighlightingNone = 0,
  FSAnnotHighlightingInvert = 1,
  FSAnnotHighlightingOutline = 2,
  FSAnnotHighlightingPush = 3,
  FSAnnotHighlightingToggle = 4
};

typedef NS_ENUM(NSInteger, FSAnnotProperty) {
  FSAnnotPropertyModifiedDate = 0,
  FSAnnotPropertyCreationDate = 1,
  FSAnnotPropertyBorderColor = 2,
  FSAnnotPropertyFillColor = 3
};

typedef NS_ENUM(NSInteger, FSAnnotMKEntry) {
  FSAnnotMKEntryRotation = 0,
  FSAnnotMKEntryBorderColor = 1,
  FSAnnotMKEntryBackgroundColor = 2,
  FSAnnotMKEntryNormalCaption = 3,
  FSAnnotMKEntryRolloverCaption = 4,
  FSAnnotMKEntryDownCaption = 5,
  FSAnnotMKEntryNormalIcon = 6,
  FSAnnotMKEntryRolloverIcon = 7,
  FSAnnotMKEntryDownIcon = 8,
  FSAnnotMKEntryIconFit = 9,
  FSAnnotMKEntryIconCaptionRelation = 10
};

typedef NS_ENUM(NSInteger, FSAnnotMKIconCaptionRelation) {
  FSAnnotMKRelationNoIcon = 0,
  FSAnnotMKRelationNoCaption = 1,
  FSAnnotMKRelationCaptionBelowIcon = 2,
  FSAnnotMKRelationCaptionAboveIcon = 3,
  FSAnnotMKRelationCaptionRight = 4,
  FSAnnotMKRelationCaptionLeft = 5,
  FSAnnotMKRelationCaptionOvrlayOnIcon = 6
};

typedef NS_ENUM(NSInteger, FSAnnotAppearanceType) {
  FSAnnotAppearanceTypeNormal = 0,
  FSAnnotAppearanceTypeRollover = 1,
  FSAnnotAppearanceTypeDown = 2
};

@interface FSAnnot : FSBase
@property (nonatomic, weak, getter=getContent) NSString * content;
@property (nonatomic, weak, getter=getModifiedDateTime) FSDateTime* modifiedDateTime;
@property (nonatomic, getter=getFlags) unsigned int flags;
@property (nonatomic, weak, getter=getUniqueID) NSString * uniqueID;
@property (nonatomic, weak, getter=getBorderInfo) FSBorderInfo* borderInfo;
@property (nonatomic, getter=getBorderColor) unsigned int borderColor;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPage: (FSPDFPage*)page annot_dict: (FSPDFDictionary*)annot_dict;
-(id)initWithAnnot: (FSAnnot*)annot;
-(BOOL)isEmpty;
-(FSPDFPage*)getPage;
-(BOOL)isMarkup;
-(FSAnnotType)getType;
-(int)getIndex;
-(FSRectF*)getRect;
-(FSMatrix2D*)getDisplayMatrix: (FSMatrix2D*)page_display_matrix;
-(BOOL)move: (FSRectF*)rect;
-(BOOL)FSMoveWithResetAppearance: (FSRectF*)rect is_reset_appearance: (BOOL)is_reset_appearance;
-(BOOL)resetAppearanceStream;
-(BOOL)FSResetApStreamWithIsGenerateNewAppearanceObj: (BOOL)is_generate_new_appearance_obj;
-(FSRectI*)getDeviceRect: (FSMatrix2D*)matrix;
-(FSPDFDictionary*)getDict;
-(BOOL)hasProperty: (FSAnnotProperty)property;
-(BOOL)removeProperty: (FSAnnotProperty)property;
-(FSPDFDictionary*)getOptionalContent;
-(FSPDFStream*)getAppearanceStream: (FSAnnotAppearanceType)type appearance_state: (NSString *)appearance_state;

-(void)dealloc;

@end

@interface FSAnnotArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSAnnotArray*)other;
-(unsigned long)getSize;
-(FSAnnot*)getAt: (unsigned long)index;
-(void)add: (FSAnnot*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSAnnot*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSShadingColor : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getFirst_color) unsigned int first_color;
@property (nonatomic, getter=getSecond_color) unsigned int second_color;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFirstcolor: (unsigned int)firstcolor secondcolor: (unsigned int)secondcolor;
-(id)init;
-(id)initWithShading_color: (FSShadingColor*)shading_color;
-(void)set: (unsigned int)firstcolor secondcolor: (unsigned int)secondcolor;
-(void)dealloc;

@end



@interface FSMarkupArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSMarkupArray*)other;
-(unsigned long)getSize;
-(FSMarkup*)getAt: (unsigned long)index;
-(void)add: (FSMarkup*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSMarkup*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSNoteArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSNoteArray*)other;
-(unsigned long)getSize;
-(FSNote*)getAt: (unsigned long)index;
-(void)add: (FSNote*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSNote*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSMarkupStateModel) {
  FSMarkupStateModelMarked = 1,
  FSMarkupStateModelReview = 2
};

typedef NS_ENUM(NSInteger, FSMarkupState) {
  FSMarkupStateNone = 0,
  FSMarkupStateMarked = 1,
  FSMarkupStateUnmarked = 2,
  FSMarkupStateAccepted = 3,
  FSMarkupStateRejected = 4,
  FSMarkupStateCancelled = 5,
  FSMarkupStateCompleted = 6,
  FSMarkupStateDeferred = 7,
  FSMarkupStateFuture = 8
};

typedef NS_ENUM(NSInteger, FSMarkupEndingStyle) {
  FSMarkupEndingStyleNone = 0,
  FSMarkupEndingStyleSquare = 1,
  FSMarkupEndingStyleCircle = 2,
  FSMarkupEndingStyleDiamond = 3,
  FSMarkupEndingStyleOpenArrow = 4,
  FSMarkupEndingStyleClosedArrow = 5,
  FSMarkupEndingStyleButt = 6,
  FSMarkupEndingStyleROpenArrow = 7,
  FSMarkupEndingStyleRClosedArrow = 8,
  FSMarkupEndingStyleSlash = 9
};

typedef NS_ENUM(NSInteger, FSMarkupMeasureType) {
  FSMarkupMeasureTypeX = 0,
  FSMarkupMeasureTypeY = 1,
  FSMarkupMeasureTypeD = 2,
  FSMarkupMeasureTypeA = 3,
  FSMarkupMeasureTypeT = 4,
  FSMarkupMeasureTypeS = 5
};

@interface FSMarkup : FSAnnot
@property (nonatomic, weak, getter=getPopup) FSPopup* popup;
@property (nonatomic, weak, getter=getTitle) NSString * title;
@property (nonatomic, weak, getter=getSubject) NSString * subject;
@property (nonatomic, getter=getOpacity) float opacity;
@property (nonatomic, weak, getter=getIntent) NSString * intent;
@property (nonatomic, weak, getter=getCreationDateTime) FSDateTime* creationDateTime;
@property (nonatomic, getter=getBorderOpacity) float borderOpacity;
@property (nonatomic, getter=getFillOpacity) float fillOpacity;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAnnot: (FSAnnot*)annot;
-(BOOL)removePopup;
-(int)getReplyCount;
-(FSNote*)getReply: (int)index;
-(FSNote*)addReply;
-(BOOL)removeReply: (int)index;
-(BOOL)removeAllReplies;
-(BOOL)isGrouped;
-(FSMarkup*)getGroupHeader;
-(FSMarkupArray*)getGroupElements;
-(BOOL)ungroup;
-(FSNoteArray*)getStateAnnots: (FSMarkupStateModel)model;
-(FSNote*)addStateAnnot: (NSString *)title model: (FSMarkupStateModel)model state: (FSMarkupState)state;
-(BOOL)removeAllStateAnnots;
-(int)getRichTextCount;
-(NSString *)getRichTextContent: (int)index;
-(void)setRichTextContent: (int)index content: (NSString *)content;
-(FSRichTextStyle*)getRichTextStyle: (int)index;
-(void)setRichTextStyle: (int)index style: (FSRichTextStyle*)style;
-(void)addRichText: (NSString *)content style: (FSRichTextStyle*)style;
-(void)insertRichText: (int)index content: (NSString *)content style: (FSRichTextStyle*)style;
-(void)removeRichText: (int)index;
-(void)dealloc;

@end

@interface FSNote : FSMarkup
@property (nonatomic, getter=getOpenStatus) BOOL openStatus;
@property (nonatomic, weak, getter=getIconName) NSString * iconName;
@property (nonatomic, getter=getState) FSMarkupState state;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(FSMarkup*)getReplyTo;
-(BOOL)isStateAnnot;
-(FSMarkupStateModel)getStateModel;

-(void)dealloc;

@end

@interface FSTextMarkup : FSMarkup
@property (nonatomic, weak, getter=getQuadPoints) FSQuadPointsArray* quadPoints;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAnnot: (FSAnnot*)annot;

-(void)dealloc;

@end

@interface FSHighlight : FSTextMarkup
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;

-(void)dealloc;

@end

@interface FSUnderline : FSTextMarkup
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;

-(void)dealloc;

@end

@interface FSStrikeOut : FSTextMarkup
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;

-(void)dealloc;

@end

@interface FSSquiggly : FSTextMarkup
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;

-(void)dealloc;

@end

@interface FSLink : FSAnnot
@property (nonatomic, weak, getter=getQuadPoints) FSQuadPointsArray* quadPoints;
@property (nonatomic, getter=getHighlightingMode) FSAnnotHighlightingMode highlightingMode;
@property (nonatomic, weak, getter=getAction) FSAction* action;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(BOOL)removeAction;
-(BOOL)executeJavaScriptAction: (FSJavaScriptAction*)javascript_action;

-(void)dealloc;

@end

@interface FSSquare : FSMarkup
@property (nonatomic, getter=getFillColor) unsigned int fillColor;
@property (nonatomic, weak, getter=getInnerRect) FSRectF* innerRect;
@property (nonatomic, weak, getter=getMeasureRatio) NSString * measureRatio;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(NSString *)getMeasureRatioW;
-(void)setMeasureUnit: (FSMarkupMeasureType)measure_type unit: (NSString *)unit;
-(NSString *)getMeasureUnit: (FSMarkupMeasureType)measure_type;
-(NSString *)getMeasureUnitW: (FSMarkupMeasureType)measure_type;
-(void)setMeasureConversionFactor: (FSMarkupMeasureType)measure_type factor: (float)factor;
-(float)getMeasureConversionFactor: (FSMarkupMeasureType)measure_type;

-(void)dealloc;

@end

@interface FSCircle : FSMarkup
@property (nonatomic, getter=getFillColor) unsigned int fillColor;
@property (nonatomic, weak, getter=getInnerRect) FSRectF* innerRect;
@property (nonatomic, weak, getter=getMeasureRatio) NSString * measureRatio;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(NSString *)getMeasureRatioW;
-(void)setMeasureUnit: (FSMarkupMeasureType)measure_type unit: (NSString *)unit;
-(NSString *)getMeasureUnit: (FSMarkupMeasureType)measure_type;
-(NSString *)getMeasureUnitW: (FSMarkupMeasureType)measure_type;
-(void)setMeasureConversionFactor: (FSMarkupMeasureType)measure_type factor: (float)factor;
-(float)getMeasureConversionFactor: (FSMarkupMeasureType)measure_type;

-(void)dealloc;

@end

@interface FSFreeText : FSMarkup
@property (nonatomic, getter=getFillColor) unsigned int fillColor;
@property (nonatomic, getter=getAlignment) FSAlignment alignment;
@property (nonatomic, weak, getter=getInnerRect) FSRectF* innerRect;
@property (nonatomic, getter=getCalloutLineEndingStyle) FSMarkupEndingStyle calloutLineEndingStyle;
@property (nonatomic, weak, getter=getCalloutLinePoints) FSPointFArray* calloutLinePoints;
@property (nonatomic, weak, getter=getTextMatrix) FSMatrix2D* textMatrix;
@property (nonatomic, getter=getRotation) FSRotation rotation;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(FSDefaultAppearance*)getDefaultAppearance;
-(BOOL)setDefaultAppearance: (FSDefaultAppearance*)default_ap;
-(void)rotate: (FSRotation)rotation;
-(void)allowTextOverflow: (BOOL)is_text_overflow;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSLineCapPos) {
  FSLineCapPosInline = 0,
  FSLineCapPosTop = 1
};

@interface FSLine : FSMarkup
@property (nonatomic, getter=getLineStartStyle) FSMarkupEndingStyle lineStartStyle;
@property (nonatomic, getter=getLineEndStyle) FSMarkupEndingStyle lineEndStyle;
@property (nonatomic, getter=getStyleFillColor) unsigned int styleFillColor;
@property (nonatomic, weak, getter=getStartPoint) FSPointF* startPoint;
@property (nonatomic, weak, getter=getEndPoint) FSPointF* endPoint;
@property (nonatomic, getter=getCaptionPositionType) FSLineCapPos captionPositionType;
@property (nonatomic, weak, getter=getCaptionOffset) FSPointF* captionOffset;
@property (nonatomic, getter=getLeaderLineLength) float leaderLineLength;
@property (nonatomic, getter=getLeaderLineExtensionLength) float leaderLineExtensionLength;
@property (nonatomic, getter=getLeaderLineOffset) float leaderLineOffset;
@property (nonatomic, weak, getter=getMeasureRatio) NSString * measureRatio;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(BOOL)hasCaption;
-(void)enableCaption: (BOOL)cap;
-(NSString *)getMeasureRatioW;
-(void)setMeasureUnit: (FSMarkupMeasureType)measure_type unit: (NSString *)unit;
-(NSString *)getMeasureUnit: (FSMarkupMeasureType)measure_type;
-(NSString *)getMeasureUnitW: (FSMarkupMeasureType)measure_type;
-(void)setMeasureConversionFactor: (FSMarkupMeasureType)measure_type factor: (float)factor;
-(float)getMeasureConversionFactor: (FSMarkupMeasureType)measure_type;

-(void)dealloc;

@end

@interface FSInk : FSMarkup
@property (nonatomic, weak, getter=getInkList) FSPath* inkList;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(void)enableUseBezier: (BOOL)use_bezier;

-(void)dealloc;

@end

@interface FSStamp : FSMarkup
@property (nonatomic, weak, getter=getIconName) NSString * iconName;
@property (nonatomic, getter=getRotation) int rotation;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(void)setBitmap: (FSBitmap*)bitmap;
-(void)setImage: (FSImage*)image frame_index: (int)frame_index compress: (int)compress;
-(void)rotate: (int)angle;

-(void)dealloc;

@end

@interface FSScreen : FSAnnot
@property (nonatomic, weak, getter=getMKDict) FSPDFDictionary* mKDict;
@property (nonatomic, getter=getRotation) FSRotation rotation;
@property (nonatomic, getter=getOpacity) float opacity;
@property (nonatomic, weak, getter=getTitle) NSString * title;
@property (nonatomic, weak, getter=getAction) FSAction* action;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(void)setImage: (FSImage*)image frame_index: (int)frame_index compress: (int)compress;
-(FSBitmap*)getBitmap;
-(void)removeAction;

-(void)dealloc;

@end

@interface FSPolygon : FSMarkup
@property (nonatomic, getter=getFillColor) unsigned int fillColor;
@property (nonatomic, weak, getter=getVertexes) FSPointFArray* vertexes;
@property (nonatomic, weak, getter=getMeasureRatio) NSString * measureRatio;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(NSString *)getMeasureRatioW;
-(void)setMeasureUnit: (FSMarkupMeasureType)measure_type unit: (NSString *)unit;
-(NSString *)getMeasureUnit: (FSMarkupMeasureType)measure_type;
-(NSString *)getMeasureUnitW: (FSMarkupMeasureType)measure_type;
-(void)setMeasureConversionFactor: (FSMarkupMeasureType)measure_type factor: (float)factor;
-(float)getMeasureConversionFactor: (FSMarkupMeasureType)measure_type;

-(void)dealloc;

@end

@interface FSPolyLine : FSMarkup
@property (nonatomic, getter=getStyleFillColor) unsigned int styleFillColor;
@property (nonatomic, weak, getter=getVertexes) FSPointFArray* vertexes;
@property (nonatomic, getter=getLineStartStyle) FSMarkupEndingStyle lineStartStyle;
@property (nonatomic, getter=getLineEndStyle) FSMarkupEndingStyle lineEndStyle;
@property (nonatomic, weak, getter=getMeasureRatio) NSString * measureRatio;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(NSString *)getMeasureRatioW;
-(void)setMeasureUnit: (FSMarkupMeasureType)measure_type unit: (NSString *)unit;
-(NSString *)getMeasureUnit: (FSMarkupMeasureType)measure_type;
-(NSString *)getMeasureUnitW: (FSMarkupMeasureType)measure_type;
-(void)setMeasureConversionFactor: (FSMarkupMeasureType)measure_type factor: (float)factor;
-(float)getMeasureConversionFactor: (FSMarkupMeasureType)measure_type;

-(void)dealloc;

@end

@interface FSCaret : FSMarkup
@property (nonatomic, weak, getter=getInnerRect) FSRectF* innerRect;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;

-(void)dealloc;

@end

@interface FSFileAttachment : FSMarkup
@property (nonatomic, weak, getter=getIconName) NSString * iconName;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(BOOL)setFileSpec: (FSFileSpec*)file_spec;
-(FSFileSpec*)getFileSpec;

-(void)dealloc;

@end

@interface FSPopup : FSAnnot
@property (nonatomic, getter=getOpenStatus) BOOL openStatus;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(FSMarkup*)getParent;

-(void)dealloc;

@end

@interface FSPSInk : FSAnnot
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSWidgetLineSpacingStyle) {
  FSWidgetLineSpacingSingle = 0,
  FSWidgetLineSpacingOneAndHalf = 1,
  FSWidgetLineSpacingDouble = 2,
  FSWidgetLineSpacingExactValue = 3,
  FSWidgetLineSpacingAuto = 4
};

@interface FSWidget : FSAnnot
@property (nonatomic, getter=getHighlightingMode) FSAnnotHighlightingMode highlightingMode;
@property (nonatomic, weak, getter=getAction) FSAction* action;
@property (nonatomic, getter=getMKRotation) FSRotation mKRotation;
@property (nonatomic, getter=getMKBorderColor) unsigned int mKBorderColor;
@property (nonatomic, getter=getMKBackgroundColor) unsigned int mKBackgroundColor;
@property (nonatomic, weak, getter=getMKNormalCaption) NSString * mKNormalCaption;
@property (nonatomic, weak, getter=getMKRolloverCaption) NSString * mKRolloverCaption;
@property (nonatomic, weak, getter=getMKDownCaption) NSString * mKDownCaption;
@property (nonatomic, weak, getter=getMKNormalIconBitmap) FSBitmap* mKNormalIconBitmap;
@property (nonatomic, weak, getter=getMKRolloverIconBitmap) FSBitmap* mKRolloverIconBitmap;
@property (nonatomic, weak, getter=getMKDownIconBitmap) FSBitmap* mKDownIconBitmap;
@property (nonatomic, weak, getter=getMKIconFit) FSIconFit* mKIconFit;
@property (nonatomic, getter=getMKIconCaptionRelation) FSAnnotMKIconCaptionRelation mKIconCaptionRelation;
@property (nonatomic, weak, getter=getAppearanceState) NSString * appearanceState;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(FSField*)getField;
-(FSControl*)getControl;
-(void)removeAction;
-(BOOL)hasMKEntry: (FSAnnotMKEntry)mk_entry;
-(void)removeMKEntry: (FSAnnotMKEntry)mk_entry;
-(void)setMKNormalIconImage: (FSImage*)image frame_index: (int)frame_index;
-(void)setMKRolloverIconImage: (FSImage*)image frame_index: (int)frame_index;
-(void)setMKDownIconImage: (FSImage*)image frame_index: (int)frame_index;
-(NSString *)getAppearanceOnStateName;
-(FSWidgetLineSpacingStyle)getLineSpacing: (float *)line_spacing_value;
-(void)setLineSpacing: (FSWidgetLineSpacingStyle)line_spacing_style line_spacing_value: (float)line_spacing_value;

-(void)dealloc;

@end

@interface FSRedact : FSMarkup
@property (nonatomic, weak, getter=getQuadPoints) FSQuadPointsArray* quadPoints;
@property (nonatomic, getter=getFillColor) unsigned int fillColor;
@property (nonatomic, getter=getApplyFillColor) unsigned int applyFillColor;
@property (nonatomic, weak, getter=getOverlayText) NSString * overlayText;
@property (nonatomic, getter=getOverlayTextAlignment) FSAlignment overlayTextAlignment;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(BOOL)isOverlayTextRepeated;
-(void)enableRepeatOverlayText: (BOOL)is_to_repeat_overlay_text;
-(void)enableAutoFontSize;
-(FSDefaultAppearance*)getDefaultAppearance;
-(BOOL)setDefaultAppearance: (FSDefaultAppearance*)default_ap;
-(BOOL)apply;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSoundSampleEncodingFormat) {
  FSSoundSampleEncodingFormatRaw = 0,
  FSSoundSampleEncodingFormatSigned = 1,
  FSSoundSampleEncodingFormatMuLaw = 2,
  FSSoundSampleEncodingFormatALaw = 3
};

@interface FSSound : FSMarkup
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithAnnot: (FSAnnot*)annot;
-(FSPDFStream*)getSoundStream;
-(float)getSamplingRate;
-(int)getChannelCount;
-(int)getBits;
-(FSSoundSampleEncodingFormat)getSampleEncodingFormat;
-(NSString *)getCompressionFormat;
-(FSFileSpec*)getFileSpec;

-(void)dealloc;

@end

@interface FSPagingSeal : FSAnnot
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithAnnot: (FSAnnot*)annot;
-(FSPagingSealSignature*)getPagingSealSignature;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPrintDeviceSettingDataOrientationFlag) {
  FSPrintDeviceSettingDataPortrait = 0,
  FSPrintDeviceSettingDataLandscape = 1
};

@interface FSPrintDeviceSettingData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getDevice_width) int device_width;
@property (nonatomic, getter=getDevice_height) int device_height;
@property (nonatomic, weak, getter=getDevice_margin) FSRectF* device_margin;
@property (nonatomic, getter=getOrientation) FSPrintDeviceSettingDataOrientationFlag orientation;
@property (nonatomic, getter=getResolution) int resolution;
@property (nonatomic, getter=getCopies) unsigned int copies;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDevice_width: (int)device_width device_height: (int)device_height device_margin: (FSRectF*)device_margin orientation: (FSPrintDeviceSettingDataOrientationFlag)orientation resolution: (int)resolution copies: (unsigned int)copies;
-(id)initWithSettings: (FSPrintDeviceSettingData*)settings;
-(void)set: (int)device_width device_height: (int)device_height device_margin: (FSRectF*)device_margin orientation: (FSPrintDeviceSettingDataOrientationFlag)orientation resolution: (int)resolution copies: (unsigned int)copies;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSRendererColorMode) {
  FSRendererColorModeNormal = 0,
  FSRendererColorModeMappingGray = 1,
  FSRendererColorModeMapping = 2,
  FSRendererColorModeAlpha = 3,
  FSRendererColorModeForeground = 4
};

typedef NS_ENUM(NSInteger, FSRendererContentFlag) {
  FSRendererRenderPage = 0x01,
  FSRendererRenderAnnot = 0x02,
  FSRendererRenderHighlight = 0x04,
  FSRendererRenderExceptHighlight = 0x08,
  FSRendererRenderScreen = 0x10
};

typedef NS_ENUM(NSInteger, FSRendererColorModeForegroundMode) {
  FSRendererColorModeForegroundText = 0x01,
  FSRendererColorModeForegroundPath = 0x02,
  FSRendererColorModeForegroundBlackText = 0x04,
  FSRendererColorModeForegroundBlackPath = 0x08
};

typedef NS_ENUM(NSInteger, FSRendererDeviceType) {
  FSRendererDeviceDisplay = 1,
  FSRendererDevicePrinter = 2
};

@interface FSRenderer : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithBitmap: (FSBitmap*)bitmap is_rgb_order: (BOOL)is_rgb_order;
-(id)initWithContext: (CGContextRef)context device_type: (FSRendererDeviceType)device_type;
-(id)initWithOther: (FSRenderer*)other;
-(BOOL)isEmpty;
-(FSProgressive*)startQuickRender: (FSPDFPage*)page matrix: (FSMatrix2D*)matrix pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startRender: (FSPDFPage*)page matrix: (FSMatrix2D*)matrix pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startRenderReflowPage: (FSReflowPage*)reflow_page matrix: (FSMatrix2D*)matrix pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startRenderXFAPage: (FSXFAPage*)xfa_page_view matrix: (FSMatrix2D*)matrix is_highlight: (BOOL)is_highlight pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startRenderBitmap: (FSBitmap*)bitmap matrix: (FSMatrix2D*)matrix clip_rect: (FSRectI*)clip_rect interpolation: (unsigned int)interpolation pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startRenderBitmapWithAlpha: (FSBitmap*)bitmap matrix: (FSMatrix2D*)matrix clip_rect: (FSRectI*)clip_rect interpolation: (unsigned int)interpolation alpha: (unsigned int)alpha pause: (id<FSPauseCallback>)pause;
-(void)setRenderAnnotAppearanceType: (FSAnnotAppearanceType)ap_type;
-(BOOL)renderAnnot: (FSAnnot*)annot matrix: (FSMatrix2D*)matrix;
-(BOOL)renderFormControls: (FSPDFPage*)page matrix: (FSMatrix2D*)matrix;
-(BOOL)renderGraphicsObject: (FSGraphicsObject*)graphics_object page: (FSPDFPage*)page matrix: (FSMatrix2D*)matrix;
-(void)setClipRect: (FSRectI*)clip_rect;
-(void)clearClips;
-(void)setClipPathFill: (FSPath*)clip_path matrix: (FSMatrix2D*)matrix fill_mode: (FSFillMode)fill_mode;
-(void)setClipPathStroke: (FSPath*)clip_path matrix: (FSMatrix2D*)matrix graph_state: (FSGraphState*)graph_state;
-(void)setRenderContentFlags: (unsigned int)render_content_flags;
-(void)setRenderAnnotsForThumbnail: (BOOL)is_render_annots_for_thumbnail;
-(void)setRenderFormField: (BOOL)is_render_formfield;
-(void)setRenderSignature: (BOOL)is_render_signature;
-(void)setLayerContext: (FSLayerContext*)layer_context;
-(void)setRenderLayer: (BOOL)is_render_one_layer;
-(void)setColorMode: (FSRendererColorMode)color_mode;
-(void)setMappingModeColors: (unsigned int)background_color foreground_color: (unsigned int)foreground_color;
-(void)setForegroundColorMode: (unsigned int)foreground_color_mode;
-(void)setForegroundColor: (unsigned int)foreground_color;
-(void)setClearType: (BOOL)is_clear_type;
-(void)setPrintTextAsGraphic: (BOOL)is_to_print_text_graphic;
-(void)setPrintTextAsImage: (BOOL)is_to_print_text_image;
-(void)setForceDownSample: (BOOL)is_to_force_down_sample;
-(void)setOverprint: (BOOL)is_to_enable_overprint;
-(void)setJPEGDownSample: (BOOL)is_jepg_down_sample;
-(void)setJPXDownSample: (BOOL)is_jpx_down_sample;
-(void)enableForPrint: (BOOL)is_render_for_print;
-(void)setForceHalftone: (BOOL)is_to_force_halftone;
-(void)setRenderPathThinLine: (BOOL)is_render_path_thin_line;
-(void)setRenderTextAntiAliasing: (BOOL)is_render_text_antialiasing;
-(void)setRenderPathAntiAliasing: (BOOL)is_render_path_antialiasing;
-(void)setRenderPathFullCovered: (BOOL)is_render_path_full_covered;
-(void)setRenderImageAntiAliasing: (BOOL)is_render_image_antialiasing;
-(void)setRenderEnhanceThinLines: (BOOL)is_render_enhance_thin_lines;
-(void)setRenderSignatureState: (BOOL)is_render_signature_state;
-(void)setScreenDPIScale: (float)scale;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSAssociatedFilesRelationship) {
  FSAssociatedFilesRelationshipUnspecified = 0,
  FSAssociatedFilesRelationshipSource = 1,
  FSAssociatedFilesRelationshipData = 2,
  FSAssociatedFilesRelationshipAlternative = 3,
  FSAssociatedFilesRelationshipSupplement = 4,
  FSAssociatedFilesRelationshipEncryptedPayload = 5,
  FSAssociatedFilesRelationshipFormData = 6,
  FSAssociatedFilesRelationshipSchema = 7
};

@interface FSAssociatedFiles : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSAssociatedFiles*)other;
-(id)initWithPdf_doc: (FSPDFDoc*)pdf_doc;
-(BOOL)isEmpty;
-(int)getAssociatedFilesCount: (FSPDFObject*)pdf_object;
-(int)getAssociatedFilesCountWithGraphicsObject: (FSGraphicsObject*)graphics_object;
-(FSFileSpec*)getAssociatedFile: (FSPDFObject*)pdf_object index: (int)index;
-(FSFileSpec*)getAssociatedFileWithGraphicsObject: (FSGraphicsObject*)graphics_object index: (int)index;
-(void)associateFile: (FSPDFObject*)pdf_object file_spec: (FSFileSpec*)file_spec;
-(void)associateFileWithGraphicsObject: (FSGraphicsObject*)graphics_object mark_content_item_index: (int)mark_content_item_index current_resource: (FSPDFObject*)current_resource property_name: (NSString *)property_name file_spec: (FSFileSpec*)file_spec;
-(void)associateFileWithPDFPage: (FSPDFPage*)page file_spec: (FSFileSpec*)file_spec;
-(void)associateFileWithImageObject: (FSImageObject*)image file_spec: (FSFileSpec*)file_spec;
-(void)associateFileWithFormXObject: (FSFormXObject*)form_xobject file_spec: (FSFileSpec*)file_spec;
-(void)associateFileWithAnnot: (FSAnnot*)annot file_spec: (FSFileSpec*)file_spec;
-(void)removeAssociatedFile: (FSPDFObject*)pdf_object index: (int)index;
-(void)removeAssociatedFileWithGraphicsObject: (FSGraphicsObject*)graphics_object index: (int)index;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSFDFDocType) {
  FSFDFDocFDF = 0,
  FSFDFDocXFDF = 1
};

@interface FSFDFDoc : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFile_read: (id<FSFileReaderCallback>)file_read;
-(id)initWithType: (FSFDFDocType)type;
-(id)initWithPath: (NSString *)path;
-(id)initWithOther: (FSFDFDoc*)other;
-(BOOL)isEmpty;
-(FSFDFDocType)getType;
-(NSString *)getPDFPath;
-(BOOL)setPDFPath: (NSString *)pdf_path;
-(BOOL)saveAs: (NSString *)file_path;
-(BOOL)saveAsWithWriterCallback: (id<FSFileWriterCallback>)file;
-(FSPDFDictionary*)getCatalog;
-(FSPDFDictionary*)getFDFDict;
-(id)initWithBuffer: (NSData *)buffer;

-(void)dealloc;

@end

@interface FSMenuListArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSMenuListArray*)other;
-(unsigned long)getSize;
-(FSMenuList*)getAt: (unsigned long)index;
-(void)add: (FSMenuList*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSMenuList*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSMenuItemExArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSMenuItemExArray*)other;
-(unsigned long)getSize;
-(FSMenuItemEx*)getAt: (unsigned long)index;
-(void)add: (FSMenuItemEx*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSMenuItemEx*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSMenuList : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getLevel) int level;
@property (nonatomic, weak, getter=getName) NSString * name;
@property (nonatomic, weak, getter=getSub_menu_list_array) FSMenuListArray* sub_menu_list_array;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithMenu_list: (FSMenuList*)menu_list;
-(void)set: (int)level name: (NSString *)name sub_menu_list_array: (FSMenuListArray*)sub_menu_list_array;
-(void)dealloc;

@end

@interface FSMenuItemEx : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getItem_name) NSString * item_name;
@property (nonatomic, weak, getter=getReturn_name) NSString * return_name;
@property (nonatomic, getter=getIs_checked) BOOL is_checked;
@property (nonatomic, getter=getIs_enabled) BOOL is_enabled;
@property (nonatomic, weak, getter=getSub_menu_item_array) FSMenuItemExArray* sub_menu_item_array;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithMenu_item: (FSMenuItemEx*)menu_item;
-(void)set: (NSString *)item_name return_name: (NSString *)return_name is_checked: (BOOL)is_checked is_enabled: (BOOL)is_enabled sub_menu_item_array: (FSMenuItemExArray*)sub_menu_item_array;
-(void)dealloc;

@end

@interface FSIdentityProperties : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getCorporation) NSString * corporation;
@property (nonatomic, weak, getter=getEmail) NSString * email;
@property (nonatomic, weak, getter=getLogin_name) NSString * login_name;
@property (nonatomic, weak, getter=getName) NSString * name;
@property (nonatomic, weak, getter=getFirst_name) NSString * first_name;
@property (nonatomic, weak, getter=getLast_name) NSString * last_name;
@property (nonatomic, weak, getter=getTitle) NSString * title;
@property (nonatomic, weak, getter=getDepartment) NSString * department;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithCorporation: (NSString *)corporation email: (NSString *)email login_name: (NSString *)login_name name: (NSString *)name first_name: (NSString *)first_name last_name: (NSString *)last_name title: (NSString *)title department: (NSString *)department;
-(id)initWithId_properities: (FSIdentityProperties*)id_properities;
-(void)set: (NSString *)corporation email: (NSString *)email login_name: (NSString *)login_name name: (NSString *)name first_name: (NSString *)first_name last_name: (NSString *)last_name title: (NSString *)title department: (NSString *)department;
-(void)dealloc;

@end

@interface FSButtonItem : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getName) NSString * name;
@property (nonatomic, getter=getPos) int pos;
@property (nonatomic, weak, getter=getExec) NSString * exec;
@property (nonatomic, weak, getter=getEnable) NSString * enable;
@property (nonatomic, weak, getter=getMarked) NSString * marked;
@property (nonatomic, weak, getter=getTooltip) NSString * tooltip;
@property (nonatomic, weak, getter=getLabel) NSString * label;
@property (nonatomic, weak, getter=getBitmap) FSBitmap* bitmap;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithButton_item: (FSButtonItem*)button_item;
-(void)set: (NSString *)name pos: (int)pos exec: (NSString *)exec enable: (NSString *)enable marked: (NSString *)marked tooltip: (NSString *)tooltip label: (NSString *)label bitmap: (FSBitmap*)bitmap;
-(void)dealloc;

@end

@interface FSMenuItemConfig : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getName) NSString * name;
@property (nonatomic, weak, getter=getUser) NSString * user;
@property (nonatomic, weak, getter=getParent) NSString * parent;
@property (nonatomic, getter=getPos) int pos;
@property (nonatomic, weak, getter=getPos_str) NSString * pos_str;
@property (nonatomic, weak, getter=getExec) NSString * exec;
@property (nonatomic, weak, getter=getEnable) NSString * enable;
@property (nonatomic, weak, getter=getMarked) NSString * marked;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithMenu_item_config: (FSMenuItemConfig*)menu_item_config;
-(void)set: (NSString *)name user: (NSString *)user parent: (NSString *)parent pos: (int)pos pos_str: (NSString *)pos_str exec: (NSString *)exec enable: (NSString *)enable marked: (NSString *)marked;
-(void)dealloc;

@end

@interface FSDialogDescriptionElementArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSDialogDescriptionElementArray*)other;
-(unsigned long)getSize;
-(FSDialogDescriptionElement*)getAt: (unsigned long)index;
-(void)add: (FSDialogDescriptionElement*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSDialogDescriptionElement*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSDialogDescriptionElement : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getName) NSString * name;
@property (nonatomic, weak, getter=getItem_id) NSString * item_id;
@property (nonatomic, weak, getter=getType) NSString * type;
@property (nonatomic, weak, getter=getNext_tab) NSString * next_tab;
@property (nonatomic, getter=getWidth) int width;
@property (nonatomic, getter=getHeight) int height;
@property (nonatomic, getter=getChar_width) int char_width;
@property (nonatomic, getter=getChar_height) int char_height;
@property (nonatomic, weak, getter=getFont) NSString * font;
@property (nonatomic, getter=getBold) BOOL bold;
@property (nonatomic, getter=getItalic) BOOL italic;
@property (nonatomic, weak, getter=getAlignment) NSString * alignment;
@property (nonatomic, weak, getter=getAlign_children) NSString * align_children;
@property (nonatomic, weak, getter=getElement_array) FSDialogDescriptionElementArray* element_array;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithDlg_des_element: (FSDialogDescriptionElement*)dlg_des_element;
-(void)set: (NSString *)name item_id: (NSString *)item_id type: (NSString *)type next_tab: (NSString *)next_tab width: (int)width height: (int)height char_width: (int)char_width char_height: (int)char_height font: (NSString *)font bold: (BOOL)bold italic: (BOOL)italic alignment: (NSString *)alignment align_children: (NSString *)align_children element_array: (FSDialogDescriptionElementArray*)element_array;
-(void)dealloc;

@end

@interface FSDialogDescriptionConfig : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getName) NSString * name;
@property (nonatomic, weak, getter=getFirst_tab) NSString * first_tab;
@property (nonatomic, getter=getWidth) int width;
@property (nonatomic, getter=getHeight) int height;
@property (nonatomic, getter=getChar_width) int char_width;
@property (nonatomic, getter=getChar_height) int char_height;
@property (nonatomic, weak, getter=getAlign_children) NSString * align_children;
@property (nonatomic, weak, getter=getElement_array) FSDialogDescriptionElementArray* element_array;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithDlg_des_config: (FSDialogDescriptionConfig*)dlg_des_config;
-(void)set: (NSString *)name first_tab: (NSString *)first_tab width: (int)width height: (int)height char_width: (int)char_width char_height: (int)char_height align_children: (NSString *)align_children element_array: (FSDialogDescriptionElementArray*)element_array;
-(void)dealloc;

@end

@interface FSSOAPAuthenticateInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getUsername) NSString * username;
@property (nonatomic, weak, getter=getPassword) NSString * password;
@property (nonatomic, getter=getIs_use_platform_auth) BOOL is_use_platform_auth;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithSoap_authenticate: (FSSOAPAuthenticateInfo*)soap_authenticate;
-(void)set: (NSString *)username password: (NSString *)password is_use_platform_auth: (BOOL)is_use_platform_auth;
-(void)dealloc;

@end

@interface FSSOAPRequestProperties : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getRequest_url) NSString * request_url;
@property (nonatomic, weak, getter=getRequest_content) NSString * request_content;
@property (nonatomic, weak, getter=getSoap_action) NSString * soap_action;
@property (nonatomic, weak, getter=getSoap_namespace) NSString * soap_namespace;
@property (nonatomic, weak, getter=getSoap_version) NSString * soap_version;
@property (nonatomic, weak, getter=getContent_type) NSString * content_type;
@property (nonatomic, getter=getIs_encode) BOOL is_encode;
@property (nonatomic, getter=getIs_wiredump) BOOL is_wiredump;
@property (nonatomic, weak, getter=getRequest_header) NSString * request_header;
@property (nonatomic, weak, getter=getAuthenticate) FSSOAPAuthenticateInfo* authenticate;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithRequest_properties: (FSSOAPRequestProperties*)request_properties;
-(void)set: (NSString *)request_url request_content: (NSString *)request_content soap_action: (NSString *)soap_action soap_namespace: (NSString *)soap_namespace soap_version: (NSString *)soap_version content_type: (NSString *)content_type is_encode: (BOOL)is_encode is_wiredump: (BOOL)is_wiredump request_header: (NSString *)request_header authenticate: (FSSOAPAuthenticateInfo*)authenticate;
-(void)dealloc;

@end

@interface FSSOAPResponseInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getResponse_header) NSString * response_header;
@property (nonatomic, weak, getter=getResponse_body) NSString * response_body;
@property (nonatomic, weak, getter=getNetwork_error) NSString * network_error;
@property (nonatomic, getter=getStatus_code) unsigned int status_code;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithSoap_response: (FSSOAPResponseInfo*)soap_response;
-(void)set: (NSString *)response_header response_body: (NSString *)response_body network_error: (NSString *)network_error status_code: (unsigned int)status_code;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPrintParamsPrintContent) {
  FSPrintParamsPrintContentDocument = 0,
  FSPrintParamsPrintContentDocAndAnnots = 1,
  FSPrintParamsPrintContentFormFieldsOnly = 2
};

typedef NS_ENUM(NSInteger, FSPrintParamsDuplexType) {
  FSPrintParamsDuplexTypeSimplex = 0,
  FSPrintParamsDuplexTypeDuplexFlipLongEdge = 1,
  FSPrintParamsDuplexTypeDuplexFlipShortEdge = 2
};

typedef NS_ENUM(NSInteger, FSPrintParamsBookletDuplexMode) {
  FSPrintParamsBookletDuplexModeBothSides = 0,
  FSPrintParamsBookletDuplexModeFrontSideOnly = 1,
  FSPrintParamsBookletDuplexModeBackSideOnly = 2
};

typedef NS_ENUM(NSInteger, FSPrintParamsBookletBinding) {
  FSPrintParamsBookletBindingRight = 0,
  FSPrintParamsBookletBindingLeft = 1,
  FSPrintParamsBookletBindingLeftTall = 2,
  FSPrintParamsBookletBindingRightTall = 3
};

typedef NS_ENUM(NSInteger, FSPrintParamsPageOrder) {
  FSPrintParamsPageOrderHorizontal = 0,
  FSPrintParamsPageOrderHorizontalReversed = 1,
  FSPrintParamsPageOrderVertical = 2
};

typedef NS_ENUM(NSInteger, FSPrintParamsPrintHandling) {
  FSPrintParamsPrintHandlingNone = 0,
  FSPrintParamsPrintHandlingFitPaper = 1,
  FSPrintParamsPrintHandlingReducePaper = 2,
  FSPrintParamsPrintHandlingMultiplePages = 3,
  FSPrintParamsPrintHandlingTileLargePages = 4,
  FSPrintParamsPrintHandlingBooklet = 5
};

@interface FSPrintParams : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getIs_show_ui) BOOL is_show_ui;
@property (nonatomic, getter=getIs_reverse) BOOL is_reverse;
@property (nonatomic, getter=getIs_print_as_image) BOOL is_print_as_image;
@property (nonatomic, getter=getIs_print_auto_center) BOOL is_print_auto_center;
@property (nonatomic, getter=getIs_print_auto_rotate) BOOL is_print_auto_rotate;
@property (nonatomic, getter=getIs_simulate_overprinting) BOOL is_simulate_overprinting;
@property (nonatomic, getter=getIs_print_page_border) BOOL is_print_page_border;
@property (nonatomic, weak, getter=getPage_range) FSRange* page_range;
@property (nonatomic, getter=getPrint_content) FSPrintParamsPrintContent print_content;
@property (nonatomic, weak, getter=getPrinter_name) NSString * printer_name;
@property (nonatomic, weak, getter=getOutput_file_name) NSString * output_file_name;
@property (nonatomic, getter=getNum_copies) int num_copies;
@property (nonatomic, getter=getDuplex_type) FSPrintParamsDuplexType duplex_type;
@property (nonatomic, getter=getIs_tile_label) BOOL is_tile_label;
@property (nonatomic, getter=getTile_mark) BOOL tile_mark;
@property (nonatomic, getter=getTile_overlap) float tile_overlap;
@property (nonatomic, getter=getTile_scale) float tile_scale;
@property (nonatomic, getter=getHandling) FSPrintParamsPrintHandling handling;
@property (nonatomic, getter=getBinding) FSPrintParamsBookletBinding binding;
@property (nonatomic, getter=getBooklet_duplex_mode) FSPrintParamsBookletDuplexMode booklet_duplex_mode;
@property (nonatomic, getter=getNum_pages_h) int num_pages_h;
@property (nonatomic, getter=getNum_pages_v) int num_pages_v;
@property (nonatomic, getter=getPage_order) FSPrintParamsPageOrder page_order;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithPrint_params: (FSPrintParams*)print_params;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSFloatingInfoWindowPosition) {
  FSFloatingInfoWindowPositionTopLeft = 0,
  FSFloatingInfoWindowPositionTopCenter = 1,
  FSFloatingInfoWindowPositionTopRight = 2,
  FSFloatingInfoWindowPositionCenterLeft = 3,
  FSFloatingInfoWindowPositionCenter = 4,
  FSFloatingInfoWindowPositionCenterRight = 5,
  FSFloatingInfoWindowPositionBottomLeft = 6,
  FSFloatingInfoWindowPositionBottomCenter = 7,
  FSFloatingInfoWindowPositionBottomRight = 8
};

typedef NS_ENUM(NSInteger, FSFloatingInfoRelativeTarget) {
  FSFloatingInfoRelativeTargetPageWindow = 0,
  FSFloatingInfoRelativeTargetAppWindow = 1,
  FSFloatingInfoRelativeTargetDesktop = 2,
  FSFloatingInfoRelativeTargetMonitor = 3
};

typedef NS_ENUM(NSInteger, FSFloatingInfoResizeType) {
  FSFloatingInfoResizeTypeNo = 0,
  FSFloatingInfoResizeTypeKeepRatio = 1,
  FSFloatingInfoResizeTypeYes = 2
};

typedef NS_ENUM(NSInteger, FSFloatingInfoOffScreenAction) {
  FSFloatingInfoOffScreenAllow = 0,
  FSFloatingInfoOffScreenForceOnScreen = 1,
  FSFloatingInfoOffScreenCancel = 2
};

@interface FSFloatingInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getWindow_pos) FSFloatingInfoWindowPosition window_pos;
@property (nonatomic, getter=getRelative_target) FSFloatingInfoRelativeTarget relative_target;
@property (nonatomic, getter=getResize_type) FSFloatingInfoResizeType resize_type;
@property (nonatomic, getter=getHas_close) BOOL has_close;
@property (nonatomic, getter=getHas_title) BOOL has_title;
@property (nonatomic, weak, getter=getTitle) NSString * title;
@property (nonatomic, getter=getOff_screen) FSFloatingInfoOffScreenAction off_screen;
@property (nonatomic, weak, getter=getRect) FSRectF* rect;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithFloating_info: (FSFloatingInfo*)floating_info;
-(void)set: (FSFloatingInfoWindowPosition)window_pos relative_target: (FSFloatingInfoRelativeTarget)relative_target resize_type: (FSFloatingInfoResizeType)resize_type has_close: (BOOL)has_close has_title: (BOOL)has_title title: (NSString *)title off_screen: (FSFloatingInfoOffScreenAction)off_screen rect: (FSRectF*)rect;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSMediaSettingsPlayerWindowType) {
  FSMediaSettingsPlayerWindowTypeDockedPage = 1,
  FSMediaSettingsPlayerWindowTypeFloating = 2,
  FSMediaSettingsPlayerWindowTypeFullScreen = 4
};

@interface FSMediaSettings : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getAuto_play) BOOL auto_play;
@property (nonatomic, weak, getter=getBase_url) NSString * base_url;
@property (nonatomic, getter=getBg_color) unsigned int bg_color;
@property (nonatomic, getter=getBg_opacity) float bg_opacity;
@property (nonatomic, getter=getDuration) int duration;
@property (nonatomic, getter=getPage) int page;
@property (nonatomic, getter=getRepeat) int repeat;
@property (nonatomic, getter=getShow_ui) BOOL show_ui;
@property (nonatomic, getter=getIs_visible) BOOL is_visible;
@property (nonatomic, getter=getVolume) int volume;
@property (nonatomic, getter=getWindow_type) FSMediaSettingsPlayerWindowType window_type;
@property (nonatomic, weak, getter=getFloating_wnd_info) FSFloatingInfo* floating_wnd_info;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithMedia_settings: (FSMediaSettings*)media_settings;
-(void)set: (BOOL)auto_play base_url: (NSString *)base_url bg_color: (unsigned int)bg_color bg_opacity: (float)bg_opacity duration: (int)duration page: (int)page repeat: (int)repeat show_ui: (BOOL)show_ui is_visible: (BOOL)is_visible volume: (int)volume window_type: (FSMediaSettingsPlayerWindowType)window_type floating_wnd_info: (FSFloatingInfo*)floating_wnd_info;
-(void)dealloc;

@end

@interface FSPlayerArgs : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getDoc) FSPDFDoc* doc;
@property (nonatomic, weak, getter=getScreen_annot) FSScreen* screen_annot;
@property (nonatomic, weak, getter=getRendition) FSRendition* rendition;
@property (nonatomic, weak, getter=getURL) NSString * uRL;
@property (nonatomic, weak, getter=getAudio_format) NSString * audio_format;
@property (nonatomic, weak, getter=getPlayer_settings) FSMediaSettings* player_settings;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithPlayer_args: (FSPlayerArgs*)player_args;
-(void)set: (FSPDFDoc*)doc screen_annot: (FSScreen*)screen_annot rendition: (FSRendition*)rendition URL: (NSString *)URL audio_format: (NSString *)audio_format player_settings: (FSMediaSettings*)player_settings;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSearchOptionWordMatching) {
  FSSearchOptionWordMatchingMatchPhrase = 0,
  FSSearchOptionWordMatchingMatchAllWords = 1,
  FSSearchOptionWordMatchingMatchAnyWord = 2
};

@interface FSSearchOption : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getIs_whole_word) BOOL is_whole_word;
@property (nonatomic, getter=getIs_case_sensitive) BOOL is_case_sensitive;
@property (nonatomic, getter=getIs_search_bookmarks) BOOL is_search_bookmarks;
@property (nonatomic, getter=getIs_search_in_markup) BOOL is_search_in_markup;
@property (nonatomic, getter=getIs_search_in_attachments) BOOL is_search_in_attachments;
@property (nonatomic, getter=getIs_ignore_accents) BOOL is_ignore_accents;
@property (nonatomic, getter=getIs_proximity) BOOL is_proximity;
@property (nonatomic, getter=getIs_stemming) BOOL is_stemming;
@property (nonatomic, getter=getIs_ignore_full_width) BOOL is_ignore_full_width;
@property (nonatomic, getter=getMax_docs) int max_docs;
@property (nonatomic, getter=getWord_matching) FSSearchOptionWordMatching word_matching;
@property (nonatomic, getter=getIs_search_doc_text) BOOL is_search_doc_text;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithSearch_option: (FSSearchOption*)search_option;
-(void)set: (BOOL)is_whole_word is_case_sensitive: (BOOL)is_case_sensitive is_search_bookmarks: (BOOL)is_search_bookmarks is_search_in_marup: (BOOL)is_search_in_marup is_search_in_attachments: (BOOL)is_search_in_attachments is_ignore_accents: (BOOL)is_ignore_accents is_proximity: (BOOL)is_proximity is_stemming: (BOOL)is_stemming is_ignore_full_width: (BOOL)is_ignore_full_width max_docs: (int)max_docs word_matching: (FSSearchOptionWordMatching)word_matching is_search_doc_text: (BOOL)is_search_doc_text;
-(void)dealloc;

@end

@interface FSSearchIndexConfig : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getName) NSString * name;
@property (nonatomic, getter=getIs_available) BOOL is_available;
@property (nonatomic, weak, getter=getPath) NSString * path;
@property (nonatomic, getter=getIs_selected) BOOL is_selected;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithSearch_index_config: (FSSearchIndexConfig*)search_index_config;
-(void)set: (NSString *)name is_available: (BOOL)is_available path: (NSString *)path is_selected: (BOOL)is_selected;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSMediaPlayerCallbackJSMediaPlayerState) {
  FSMediaPlayerCallbackJSMediaPlayerStateOpen = 0,
  FSMediaPlayerCallbackJSMediaPlayerStateClose = 1,
  FSMediaPlayerCallbackJSMediaPlayerStatePlaying = 2,
  FSMediaPlayerCallbackJSMediaPlayerStateStop = 3,
  FSMediaPlayerCallbackJSMediaPlayerStateSuspend = 4
};



typedef NS_ENUM(NSInteger, FSJavascriptModifyItemInfoJavascriptEventType) {
  FSJavascriptModifyItemInfoJavascriptEventTypeUnknown = 0,
  FSJavascriptModifyItemInfoJavascriptEventTypeAppInit = 1,
  FSJavascriptModifyItemInfoJavascriptEventTypeHtmlCallback = 2,
  FSJavascriptModifyItemInfoJavascriptEventTypeDocOpen = 3,
  FSJavascriptModifyItemInfoJavascriptEventTypeDocWillPrint = 4,
  FSJavascriptModifyItemInfoJavascriptEventTypeDocDidprint = 5,
  FSJavascriptModifyItemInfoJavascriptEventTypeDocWillSave = 6,
  FSJavascriptModifyItemInfoJavascriptEventTypeDocDidSave = 7,
  FSJavascriptModifyItemInfoJavascriptEventTypeDocWillClose = 8,
  FSJavascriptModifyItemInfoJavascriptEventTypePageOpen = 9,
  FSJavascriptModifyItemInfoJavascriptEventTypePageClose = 10,
  FSJavascriptModifyItemInfoJavascriptEventTypePageInView = 11,
  FSJavascriptModifyItemInfoJavascriptEventTypePageOutView = 12,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldMouseDown = 13,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldMouseUp = 14,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldMouseEnter = 15,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldMouseExit = 16,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldFocus = 17,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldBlur = 18,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldKeyStroke = 19,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldValidate = 21,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldCalculate = 22,
  FSJavascriptModifyItemInfoJavascriptEventTypeFieldFormat = 23,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenFocus = 24,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenBlur = 25,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenOpen = 26,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenClose = 27,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenMouseDown = 28,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenMouseUp = 29,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenMouseEnter = 30,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenMouseExit = 31,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenInview = 32,
  FSJavascriptModifyItemInfoJavascriptEventTypeScreenOutview = 33,
  FSJavascriptModifyItemInfoJavascriptEventTypeBatchExec = 34,
  FSJavascriptModifyItemInfoJavascriptEventTypeMenuExec = 35,
  FSJavascriptModifyItemInfoJavascriptEventTypeConsoleExec = 36,
  FSJavascriptModifyItemInfoJavascriptEventTypeExternalExec = 37,
  FSJavascriptModifyItemInfoJavascriptEventTypeBookmarkMouseUp = 38,
  FSJavascriptModifyItemInfoJavascriptEventTypeLinkMouseUp = 39,
  FSJavascriptModifyItemInfoJavascriptEventTypeMediaBlur = 40,
  FSJavascriptModifyItemInfoJavascriptEventTypeMediaClose = 41,
  FSJavascriptModifyItemInfoJavascriptEventTypeMediaDone = 42,
  FSJavascriptModifyItemInfoJavascriptEventTypeMediaPlay = 43,
  FSJavascriptModifyItemInfoJavascriptEventTypeMediaReady = 44,
  FSJavascriptModifyItemInfoJavascriptEventTypeMediaSeek = 45,
  FSJavascriptModifyItemInfoJavascriptEventTypeMediaStop = 46
};

typedef NS_ENUM(NSInteger, FSJavascriptModifyItemInfoJavascriptModifyItemType) {
  FSJavascriptModifyItemInfoJavascriptModifyItemTypeNone = 0,
  FSJavascriptModifyItemInfoJavascriptModifyItemTypeField = 1,
  FSJavascriptModifyItemInfoJavascriptModifyItemTypeAnnot = 2,
  FSJavascriptModifyItemInfoJavascriptModifyItemTypePage = 3,
  FSJavascriptModifyItemInfoJavascriptModifyItemTypeDoc = 4
};

typedef NS_ENUM(NSInteger, FSJavascriptModifyItemInfoJavascriptModifyPropertyType) {
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeNone = 0,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeBorderColor = 1,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeFillColor = 2,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeTextColor = 3,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeValue = 4,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeCharLimit = 5,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeButtonPosition = 6,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeSelectChange = 7,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeAlignment = 8,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeBorderStyle = 9,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeButtonAlignX = 10,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeButtonAlignY = 11,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeButtonFitBounds = 12,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeButtonScaleHow = 13,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeButtonScaleWhen = 14,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeComb = 15,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDefaultStyle = 16,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDefaultValue = 17,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDoNotScroll = 18,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDelay = 19,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDisplay = 20,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeEditable = 21,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeNotSpellCheck = 22,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeHidden = 23,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeHighlight = 24,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeLineWidth = 25,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeMultiline = 26,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypePassword = 27,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRect = 28,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRequired = 29,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRichText = 30,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRichValue = 31,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRotation = 32,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeNormalCaption = 33,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDownCaption = 34,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRolloverCaption = 35,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeTextFont = 36,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeUserName = 37,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeButtonSetIcon = 38,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeCheckThisBox = 39,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeClearItems = 40,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDefaultIsChecked = 41,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDeleteItemAt = 42,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeInsertItemAt = 43,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeSetItems = 44,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeActivated = 45,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeArrowBegin = 46,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeArrowEnd = 47,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeAttachIcon = 48,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeBorderEffectIntensity = 49,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeBorderEffectStyle = 50,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeCallout = 51,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeCaretSymbol = 52,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeContents = 53,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDash = 54,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDoCaption = 55,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeGestures = 56,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeIntent = 57,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeLeaderExtend = 58,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeLeaderLength = 59,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeLineEnding = 60,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeNoteIcon = 61,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeToggleNoView = 62,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeOpacity = 63,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypePoints = 64,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeQuads = 65,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeTextSize = 66,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRichContents = 67,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRichDefaults = 68,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeSoundIcon = 69,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeSubject = 70,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeVertices = 71,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeImport = 72,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRemoveDataObject = 73,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeImportDataObject = 74,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRemoveTemplate = 75,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeAddPageTemplate = 76,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRsetForms = 77,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRsetAllForms = 78,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeTitle = 79,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeResizePage = 80,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeSpawnPageFromTemplate = 81,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeAddWeblinks = 82,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRemoveWeblinks = 83,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRemoveLinks = 84,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypePageRotations = 85,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeNewPage = 86,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeMovePage = 87,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeInsertPages = 88,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeReplacePages = 89,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeImportAnnotFromXFDF = 90,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeDeleteAnnot = 91,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeAddWatermark = 92,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeFlatDocument = 93,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeAddFileAttachment = 94,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRuntimeHighlight = 95,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeRuntimeHighlightColor = 96,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeInsertFromTemplates = 97,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeAddLink = 98,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeMultipleSelection = 99,
  FSJavascriptModifyItemInfoJavascriptModifyPropertyTypeSetPageTemplateVisible = 100
};

typedef NS_ENUM(NSInteger, FSJavascriptModifyItemInfoJavascriptModifyType) {
  FSJavascriptModifyItemInfoJavascriptModifyTypeNone = 0,
  FSJavascriptModifyItemInfoJavascriptModifyTypeAdd = 1,
  FSJavascriptModifyItemInfoJavascriptModifyTypeModify = 2,
  FSJavascriptModifyItemInfoJavascriptModifyTypeDelete = 3
};

@interface FSJavascriptModifyItemInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getEvent_type) FSJavascriptModifyItemInfoJavascriptEventType event_type;
@property (nonatomic, getter=getPage_index) int page_index;
@property (nonatomic, getter=getField_control_index) int field_control_index;
@property (nonatomic, getter=getModify_item_type) FSJavascriptModifyItemInfoJavascriptModifyItemType modify_item_type;
@property (nonatomic, getter=getModify_type) FSJavascriptModifyItemInfoJavascriptModifyType modify_type;
@property (nonatomic, getter=getModify_property_type) FSJavascriptModifyItemInfoJavascriptModifyPropertyType modify_property_type;
@property (nonatomic, weak, getter=getField_or_annot_name) NSString * field_or_annot_name;
@property (nonatomic, weak, getter=getNew_value) NSString * new_value;
@property (nonatomic, weak, getter=getOld_value) NSString * old_value;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSJavascriptModifyItemInfo*)other;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSActionCallbackLanguage) {
  FSActionCallbackLanguageUnknown = 0,
  FSActionCallbackLanguageCHS = 1,
  FSActionCallbackLanguageCHT = 2,
  FSActionCallbackLanguageDAN = 3,
  FSActionCallbackLanguageDEU = 4,
  FSActionCallbackLanguageENU = 5,
  FSActionCallbackLanguageESP = 6,
  FSActionCallbackLanguageFRA = 7,
  FSActionCallbackLanguageITA = 8,
  FSActionCallbackLanguageKOR = 9,
  FSActionCallbackLanguageJPN = 10,
  FSActionCallbackLanguageNLD = 11,
  FSActionCallbackLanguageNOR = 12,
  FSActionCallbackLanguagePTB = 13,
  FSActionCallbackLanguageSUO = 14,
  FSActionCallbackLanguageSVE = 15
};

typedef NS_ENUM(NSInteger, FSActionCallbackAppInfoType) {
  FSActionCallbackAppInfoTypeFormsVersion = 0x0,
  FSActionCallbackAppInfoTypeViewerType = 0x01,
  FSActionCallbackAppInfoTypeViewerVariation = 0x02,
  FSActionCallbackAppInfoTypeViewerVersion = 0x03,
  FSActionCallbackAppInfoTypeAppVersion = 0x04
};

typedef NS_ENUM(NSInteger, FSActionCallbackMailType) {
  FSActionCallbackMailTypeDoc = 0,
  FSActionCallbackMailTypeForm = 1,
  FSActionCallbackMailTypeMsg = 2
};

typedef NS_ENUM(NSInteger, FSActionCallbackJSFieldValueChangeType) {
  FSActionCallbackJSFieldValueChangedByFormat = 0,
  FSActionCallbackJSFieldValueChangedByCalculation = 1,
  FSActionCallbackJSFieldValueChangedBySetValue = 2,
  FSActionCallbackJSFieldValueChangedBySetReadOnly = 3,
  FSActionCallbackJSFieldValueChangedByFillColor = 4
};

typedef NS_ENUM(NSInteger, FSActionCallbackJSMediaPlayerState) {
  FSActionCallbackJSMediaPlayerStateOpen = 0,
  FSActionCallbackJSMediaPlayerStateClose = 1,
  FSActionCallbackJSMediaPlayerStatePlaying = 2,
  FSActionCallbackJSMediaPlayerStateStop = 3,
  FSActionCallbackJSMediaPlayerStateSuspend = 4
};

typedef NS_ENUM(NSInteger, FSActionCallbackLayoutMode) {
  FSActionCallbackLayoutModeSinglePage = 0,
  FSActionCallbackLayoutModeContinuous = 1,
  FSActionCallbackLayoutModeFacing = 2,
  FSActionCallbackLayoutModeContinuousFacing = 3
};

typedef NS_ENUM(NSInteger, FSActionCallbackJsMailResult) {
  FSActionCallbackJSMailResultFailed = 0,
  FSActionCallbackJSMailResultSuccess = 1,
  FSActionCallbackJSMailResultUserAbort = 2
};

typedef NS_ENUM(NSInteger, FSActionCallbackSearchScope) {
  FSActionCallbackSearchScopeActiveDoc = 0,
  FSActionCallbackSearchScopeFolder = 1,
  FSActionCallbackSearchScopeIndex = 2,
  FSActionCallbackSearchScopeActiveIndexes = 3
};

typedef NS_ENUM(NSInteger, FSActionCallbackModifyItemType) {
  FSActionCallbackModifyItemTypeNone = 0,
  FSActionCallbackModifyItemTypeField = 1,
  FSActionCallbackModifyItemTypeAnnot = 2,
  FSActionCallbackModifyItemTypePage = 3,
  FSActionCallbackModifyItemTypeDoc = 4
};



typedef NS_ENUM(NSInteger, FSBookmarkStyle) {
  FSBookmarkStyleNormal = 0x00,
  FSBookmarkStyleItalic = 0x01,
  FSBookmarkStyleBold = 0x02
};

typedef NS_ENUM(NSInteger, FSBookmarkPosition) {
  FSBookmarkPosFirstChild = 0,
  FSBookmarkPosLastChild = 1,
  FSBookmarkPosPrevSibling = 2,
  FSBookmarkPosNextSibling = 3,
  FSBookmarkPosFirstSibling = 4,
  FSBookmarkPosLastSibling = 5
};

@interface FSBookmark : FSBase
@property (nonatomic, weak, getter=getDestination) FSDestination* destination;
@property (nonatomic, weak, getter=getTitle) NSString * title;
@property (nonatomic, getter=getColor) unsigned int color;
@property (nonatomic, getter=getStyle) unsigned int style;
@property (nonatomic, weak, getter=getAction) FSAction* action;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPdf_doc: (FSPDFDoc*)pdf_doc bookmark_dict: (FSPDFDictionary*)bookmark_dict;
-(id)initWithOther: (FSBookmark*)other;
-(BOOL)isEmpty;
-(FSBookmark*)getParent;
-(BOOL)hasChild;
-(FSBookmark*)getFirstChild;
-(FSBookmark*)getNextSibling;
-(FSBookmark*)insert: (NSString *)title position: (FSBookmarkPosition)position;
-(BOOL)moveTo: (FSBookmark*)dest_bookmark position: (FSBookmarkPosition)position;
-(BOOL)removeAction;
-(BOOL)isRoot;
-(BOOL)isFirstChild;
-(BOOL)isLastChild;
-(FSPDFDictionary*)getDict;

-(void)dealloc;

@end

@interface FSAttachments : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDoc: (FSPDFDoc*)doc nametree: (FSPDFNameTree*)nametree;
-(id)initWithOther: (FSAttachments*)other;
-(BOOL)isEmpty;
-(int)getCount;
-(NSString *)getKey: (int)index;
-(FSFileSpec*)getEmbeddedFile: (NSString *)key;
-(BOOL)setEmbeddedFile: (NSString *)key file_spec: (FSFileSpec*)file_spec;
-(BOOL)addEmbeddedFile: (NSString *)key file_spec: (FSFileSpec*)file_spec;
-(BOOL)addFromFilePath: (NSString *)key file_path: (NSString *)file_path;
-(BOOL)removeEmbeddedFile: (NSString *)key;
-(BOOL)removeAllEmbeddedFiles;
-(BOOL)extractEmbeddedFileTo: (NSString *)key dst_file_path: (NSString *)dst_file_path;
-(FSPDFNameTree*)getNameTree;

-(void)dealloc;

@end

@interface FSFileSpec : FSBase
@property (nonatomic, weak, getter=getFileName) NSString * fileName;
@property (nonatomic, getter=getAssociteFileRelationship) FSAssociatedFilesRelationship associteFileRelationship;
@property (nonatomic, weak, getter=getDescription) NSString * description;
@property (nonatomic, weak, getter=getCreationDateTime) FSDateTime* creationDateTime;
@property (nonatomic, weak, getter=getModifiedDateTime) FSDateTime* modifiedDateTime;
@property (nonatomic, weak, getter=getSubtype) NSString * subtype;
@property (nonatomic, weak, getter=getChecksum) NSData * checksum;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithDocument: (FSPDFDoc*)document pdf_object: (FSPDFObject*)pdf_object;
-(id)initWithOther: (FSFileSpec*)other;
-(BOOL)isEmpty;
-(long long)getFileSize;
-(long long)getCompressedEmbeddedFileSize;
-(id<FSFileReaderCallback>)getFileData;
-(BOOL)embed: (NSString *)file_path;
-(BOOL)embedWithPDFObject: (FSPDFObject*)pdf_object;
-(BOOL)embedWithStreamCallback: (id<FSFileStreamCallback>)stream;
-(BOOL)isEmbedded;
-(FSPDFDictionary*)getDict;
-(BOOL)exportToFile: (NSString *)path;
-(BOOL)exportToFileStream: (id<FSFileStreamCallback>)stream;

-(void)dealloc;

@end

@interface FSLayerNodeArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSLayerNodeArray*)other;
-(unsigned long)getSize;
-(FSLayerNode*)getAt: (unsigned long)index;
-(void)add: (FSLayerNode*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSLayerNode*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSLayerZoomData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getMin_factor) float min_factor;
@property (nonatomic, getter=getMax_factor) float max_factor;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithMin_factor: (float)min_factor max_factor: (float)max_factor;
-(id)initWithData: (FSLayerZoomData*)data;
-(void)set: (float)min_factor max_factor: (float)max_factor;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSLayerTreeUsageState) {
  FSLayerTreeStateON = 0x0000,
  FSLayerTreeStateOFF = 0x0001,
  FSLayerTreeStateUnchanged = 0x0002,
  FSLayerTreeStateUndefined = 0x0003
};

@interface FSLayerTree : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithOther: (FSLayerTree*)other;
-(BOOL)isEmpty;
-(BOOL)setBaseState: (FSLayerTreeUsageState)state;
-(FSLayerNode*)getRootNode;
-(FSPDFDictionary*)getDict;
-(FSPDFArray*)getOCGs;
-(FSLayerNodeArray*)getOCGsByPageIndex: (int)page_index;

-(void)dealloc;

@end

@interface FSLayerPrintData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getSubtype) NSString * subtype;
@property (nonatomic, getter=getPrint_state) FSLayerTreeUsageState print_state;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithSubtype: (NSString *)subtype print_state: (FSLayerTreeUsageState)print_state;
-(id)init;
-(id)initWithData: (FSLayerPrintData*)data;
-(void)set: (NSString *)subtype print_state: (FSLayerTreeUsageState)print_state;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSLayerContextUsageType) {
  FSLayerContextUsageView = 0x0000,
  FSLayerContextUsageDesign = 0x0001,
  FSLayerContextUsagePrint = 0x0002,
  FSLayerContextUsageExport = 0x0003,
  FSLayerContextUsageZoom = 0x0004
};

@interface FSLayerContext : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document usage_type: (FSLayerContextUsageType)usage_type;
-(id)initWithOther: (FSLayerContext*)other;
-(BOOL)isEmpty;
-(FSPDFDoc*)getDocument;
-(FSLayerContextUsageType)getUsageType;
-(BOOL)reset;
-(BOOL)copyStates: (FSLayerContext*)source_context;
-(BOOL)mergeStates: (FSLayerContext*)source_context;
-(BOOL)isVisible: (FSLayerNode*)layer;
-(BOOL)setVisible: (FSLayerNode*)layer is_visible: (BOOL)is_visible;

-(void)dealloc;

@end

@interface FSLayerNode : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSLayerNode*)other;
-(BOOL)isEmpty;
-(int)getChildrenCount;
-(FSLayerNode*)getChild: (int)index;
-(BOOL)removeChild: (int)index;
-(BOOL)moveTo: (FSLayerNode*)parent_layer_node index: (int)index;
-(FSLayerNode*)addChild: (int)index name: (NSString *)name has_Layer: (BOOL)has_Layer;
-(NSString *)getName;
-(BOOL)isLocked;
-(BOOL)hasLayer;
-(BOOL)hasIntent: (NSString *)intent;
-(BOOL)isInPage: (FSPDFPage*)page;
-(FSLayerTreeUsageState)getViewUsage;
-(FSLayerTreeUsageState)getExportUsage;
-(FSLayerPrintData*)getPrintUsage;
-(FSLayerZoomData*)getZoomUsage;
-(BOOL)setName: (NSString *)name;
-(BOOL)setDefaultVisible: (BOOL)is_visible;
-(BOOL)setViewUsage: (FSLayerTreeUsageState)state;
-(BOOL)setExportUsage: (FSLayerTreeUsageState)state;
-(BOOL)setPrintUsage: (FSLayerPrintData*)data;
-(BOOL)setZoomUsage: (FSLayerZoomData*)data;
-(FSGraphicsObjectArray*)getGraphicsObjects: (FSPDFPage*)page;
-(BOOL)addGraphicsObject: (FSPDFPage*)page graphicsobject: (FSGraphicsObject*)graphicsobject;
-(BOOL)removeGraphicsObject: (FSGraphicsObject*)graphics_object;
-(BOOL)removeUsage: (FSLayerContextUsageType)usage_type;
-(FSPDFDictionary*)getDict;
-(FSAnnotArray*)getAnnots;

-(void)dealloc;

@end

@interface FSTimer : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(void)onTimer: (int)timer;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSFillerAssistCallbackPopupMenuItem) {
  FSFillerAssistCallbackPopupMenuItemNone = 0,
  FSFillerAssistCallbackPopupMenuItemCut = 1,
  FSFillerAssistCallbackPopupMenuItemCopy = 2,
  FSFillerAssistCallbackPopupMenuItemPaste = 3,
  FSFillerAssistCallbackPopupMenuItemDelete = 4,
  FSFillerAssistCallbackPopupMenuItemSelectAll = 5
};



typedef NS_ENUM(NSInteger, FSFillerVirtualKeyCode) {
  FSFillerVkeyUnknown = 0x00,
  FSFillerVkeyBack = 0x08,
  FSFillerVkeyTab = 0x09,
  FSFillerVkeyReturn = 0x0D,
  FSFillerVkeyShift = 0x10,
  FSFillerVkeyControl = 0x11,
  FSFillerVkeyMenu = 0x12,
  FSFillerVkeyPause = 0x13,
  FSFillerVkeyEscape = 0x1B,
  FSFillerVkeySpace = 0x20,
  FSFillerVkeyPrior = 0x21,
  FSFillerVkeyNext = 0x22,
  FSFillerVkeyEnd = 0x23,
  FSFillerVkeyHome = 0x24,
  FSFillerVkeyLeft = 0x25,
  FSFillerVkeyUp = 0x26,
  FSFillerVkeyRight = 0x27,
  FSFillerVkeyDown = 0x28,
  FSFillerVkeyPrint = 0x2A,
  FSFillerVkeySnapshot = 0x2C,
  FSFillerVkeyInsert = 0x2D,
  FSFillerVkeyDelete = 0x2E,
  FSFillerVkeyHelp = 0x2F,
  FSFillerVkey0 = 0x30,
  FSFillerVkey1 = 0x31,
  FSFillerVkey2 = 0x32,
  FSFillerVkey3 = 0x33,
  FSFillerVkey4 = 0x34,
  FSFillerVkey5 = 0x35,
  FSFillerVkey6 = 0x36,
  FSFillerVkey7 = 0x37,
  FSFillerVkey8 = 0x38,
  FSFillerVkey9 = 0x39,
  FSFillerVkeyA = 0x41,
  FSFillerVkeyB = 0x42,
  FSFillerVkeyC = 0x43,
  FSFillerVkeyD = 0x44,
  FSFillerVkeyE = 0x45,
  FSFillerVkeyF = 0x46,
  FSFillerVkeyG = 0x47,
  FSFillerVkeyH = 0x48,
  FSFillerVkeyI = 0x49,
  FSFillerVkeyJ = 0x4A,
  FSFillerVkeyK = 0x4B,
  FSFillerVkeyL = 0x4C,
  FSFillerVkeyM = 0x4D,
  FSFillerVkeyN = 0x4E,
  FSFillerVkeyO = 0x4F,
  FSFillerVkeyP = 0x50,
  FSFillerVkeyQ = 0x51,
  FSFillerVkeyR = 0x52,
  FSFillerVkeyS = 0x53,
  FSFillerVkeyT = 0x54,
  FSFillerVkeyU = 0x55,
  FSFillerVkeyV = 0x56,
  FSFillerVkeyW = 0x57,
  FSFillerVkeyX = 0x58,
  FSFillerVkeyY = 0x59,
  FSFillerVkeyZ = 0x5A,
  FSFillerVkeyNumpad0 = 0x60,
  FSFillerVkeyNumpad1 = 0x61,
  FSFillerVkeyNumpad2 = 0x62,
  FSFillerVkeyNumpad3 = 0x63,
  FSFillerVkeyNumpad4 = 0x64,
  FSFillerVkeyNumpad5 = 0x65,
  FSFillerVkeyNumpad6 = 0x66,
  FSFillerVkeyNumpad7 = 0x67,
  FSFillerVkeyNumpad8 = 0x68,
  FSFillerVkeyNumpad9 = 0x69,
  FSFillerVkeyMultiply = 0x6A,
  FSFillerVkeyAdd = 0x6B,
  FSFillerVkeySeparator = 0x6C,
  FSFillerVkeySubtract = 0x6D,
  FSFillerVkeyDecimal = 0x6E,
  FSFillerVkeyDivide = 0x6F,
  FSFillerVkeyF1 = 0x70,
  FSFillerVkeyF2 = 0x71,
  FSFillerVkeyF3 = 0x72,
  FSFillerVkeyF4 = 0x73,
  FSFillerVkeyF5 = 0x74,
  FSFillerVkeyF6 = 0x75,
  FSFillerVkeyF7 = 0x76,
  FSFillerVkeyF8 = 0x77,
  FSFillerVkeyF9 = 0x78,
  FSFillerVkeyF10 = 0x79,
  FSFillerVkeyF11 = 0x7A,
  FSFillerVkeyF12 = 0x7B
};

typedef NS_ENUM(NSInteger, FSFillerEventFlags) {
  FSFillerEventFlagShiftKey = 0x0001,
  FSFillerEventFlagControlKey = 0x0002,
  FSFillerEventFlagAltKey = 0x0004,
  FSFillerEventFlagMetaKey = 0x0008,
  FSFillerEventFlagKeyPad = 0x0010,
  FSFillerEventFlagAutoRepeat = 0x0020,
  FSFillerEventFlagLeftButtonDown = 0x0040,
  FSFillerEventFlagMiddleButtonDown = 0x0080,
  FSFillerEventFlagRightButtonDown = 0x0100,
  FSFillerEventFlagCommand = 0x0200
};

@interface FSFiller : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithForm: (FSForm*)form assist: (id<FSFillerAssistCallback>)assist;
-(id)initWithOther: (FSFiller*)other;
-(BOOL)isEmpty;
-(void)render: (FSPDFPage*)page matrix: (FSMatrix2D*)matrix renderer: (FSRenderer*)renderer;
-(BOOL)onLButtonDown: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onLButtonUp: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onLButtonDoubleClick: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onMouseMove: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onMouseEnter: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onMouseHover: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onMouseLeave: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onMouseWheel: (FSPDFPage*)page point: (FSPointF*)point delta: (int)delta flags: (unsigned int)flags;
-(BOOL)onRButtonDown: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onRButtonUp: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onRButtonDoubleClick: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onWheelButtonDown: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onWheelButtonUp: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onWheelButtonDoubleClick: (FSPDFPage*)page point: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onKeyDown: (unsigned int)key_code flags: (unsigned int)flags;
-(BOOL)onKeyUp: (unsigned int)key_code flags: (unsigned int)flags;
-(BOOL)onChar: (unsigned int)char_code flags: (unsigned int)flags;
-(BOOL)setFocus: (FSControl*)control;
-(BOOL)killFocus;
-(void)highlightFormFields: (BOOL)is_highlight;
-(void)highlightFormFieldsAndSignatures: (BOOL)is_highlight is_sign_highlight: (BOOL)is_sign_highlight;
-(void)setHighlightColor: (unsigned int)color;
-(void)showOverflowIndicator: (BOOL)is_show_overflow_indicator;
-(BOOL)onCut;
-(BOOL)onCopy;
-(BOOL)onPaste;
-(BOOL)onSelectAll;
-(BOOL)onDelete;
-(FSPointF*)getEditingTextCaretPosition: (FSMatrix2D*)matrix;

-(void)dealloc;

@end

@interface FSFieldArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSFieldArray*)other;
-(unsigned long)getSize;
-(FSField*)getAt: (unsigned long)index;
-(void)add: (FSField*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSField*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSChoiceOption : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getOption_value) NSString * option_value;
@property (nonatomic, weak, getter=getOption_label) NSString * option_label;
@property (nonatomic, getter=getSelected) BOOL selected;
@property (nonatomic, getter=getDefault_selected) BOOL default_selected;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOption_value: (NSString *)option_value option_label: (NSString *)option_label selected: (BOOL)selected default_selected: (BOOL)default_selected;
-(id)initWithOption: (FSChoiceOption*)option;
-(void)set: (NSString *)option_value option_label: (NSString *)option_label selected: (BOOL)selected default_selected: (BOOL)default_selected;
-(void)dealloc;

@end

@interface FSChoiceOptionArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSChoiceOptionArray*)other;
-(unsigned long)getSize;
-(FSChoiceOption*)getAt: (unsigned long)index;
-(void)add: (FSChoiceOption*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSChoiceOption*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSFieldType) {
  FSFieldTypeUnknown = 0,
  FSFieldTypePushButton = 1,
  FSFieldTypeCheckBox = 2,
  FSFieldTypeRadioButton = 3,
  FSFieldTypeComboBox = 4,
  FSFieldTypeListBox = 5,
  FSFieldTypeTextField = 6,
  FSFieldTypeSignature = 7
};

typedef NS_ENUM(NSInteger, FSFieldFlags) {
  FSFieldFlagReadOnly = 0x01,
  FSFieldFlagRequired = 0x02,
  FSFieldFlagNoExport = 0x04,
  FSFieldFlagButtonNoToggleToOff = 0x100,
  FSFieldFlagButtonRadiosInUnison = 0x200,
  FSFieldFlagTextMultiline = 0x100,
  FSFieldFlagTextPassword = 0x200,
  FSFieldFlagTextFileSelect = 0x400,
  FSFieldFlagTextNoSpellCheck = 0x800,
  FSFieldFlagTextDoNotScroll = 0x1000,
  FSFieldFlagTextComb = 0x2000,
  FSFieldFlagComboEdit = 0x100,
  FSFieldFlagChoiceMultiSelect = 0x100,
  FSFieldFlagTextRichText = 0x4000,
  FSFieldFlagChoiceSort = 0x200,
  FSFieldFlagChoiceCommitOnSelChange = 0x400
};

@interface FSField : FSBase
@property (nonatomic, getter=getFlags) unsigned int flags;
@property (nonatomic, weak, getter=getDefaultValue) NSString * defaultValue;
@property (nonatomic, weak, getter=getValue) NSString * value;
@property (nonatomic, getter=getAlignment) FSAlignment alignment;
@property (nonatomic, weak, getter=getAlternateName) NSString * alternateName;
@property (nonatomic, weak, getter=getDefaultAppearance) FSDefaultAppearance* defaultAppearance;
@property (nonatomic, weak, getter=getMappingName) NSString * mappingName;
@property (nonatomic, getter=getMaxLength) int maxLength;
@property (nonatomic, weak, getter=getOptions) FSChoiceOptionArray* options;
@property (nonatomic, getter=getTopVisibleIndex) int topVisibleIndex;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document field_dict: (FSPDFDictionary*)field_dict;
-(id)initWithField: (FSField*)field;
-(BOOL)isEmpty;
-(FSFieldType)getType;
-(NSString *)getName;
-(int)getControlCount;
-(FSControl*)getControl: (int)index;
-(int)getControlCountWithPDFPage: (FSPDFPage*)page;
-(FSControl*)getControlWithPDFPage: (FSPDFPage*)page index: (int)index;
-(BOOL)reset;
-(FSPDFDictionary*)getDict;
-(FSPDFObject*)getValueObj;
-(FSPDFObject*)getDefaultValueObj;
-(FSPDFObject*)getInheritedAttribute: (NSString *)attribute_name;

-(void)dealloc;

@end

@interface FSForm : FSBase
@property (nonatomic, getter=getAlignment) FSAlignment alignment;
@property (nonatomic, weak, getter=getDefaultAppearance) FSDefaultAppearance* defaultAppearance;
@property (nonatomic, weak, getter=getFieldsInCalculationOrder) FSFieldArray* fieldsInCalculationOrder;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithOther: (FSForm*)other;
-(BOOL)isEmpty;
-(BOOL)needConstructAppearances;
-(void)setConstructAppearances: (BOOL)need_construct;
-(FSControl*)getControlAtDevicePoint: (FSPDFPage*)page point: (FSPointF*)point tolerance: (float)tolerance type: (FSFieldType)type matrix: (FSMatrix2D*)matrix;
-(FSControl*)getControlAtPoint: (FSPDFPage*)page point: (FSPointF*)point tolerance: (float)tolerance type: (FSFieldType)type;
-(FSPDFDoc*)getDocument;
-(BOOL)validateFieldName: (FSFieldType)type field_name: (NSString *)field_name;
-(BOOL)renameField: (FSField*)field new_field_name: (NSString *)new_field_name;
-(FSControl*)addControl: (FSPDFPage*)page field_name: (NSString *)field_name field_type: (FSFieldType)field_type rect: (FSRectF*)rect;
-(BOOL)moveControl: (FSControl*)control field_name: (NSString *)field_name;
-(void)removeField: (FSField*)field;
-(void)removeControl: (FSControl*)control;
-(int)getFieldCount: (NSString *)filter;
-(FSField*)getField: (int)index filter: (NSString *)filter;
-(int)getControlCount: (FSPDFPage*)page;
-(FSControl*)getControl: (FSPDFPage*)page index: (int)index;
-(FSFiller*)getFormFiller;
-(BOOL)reset;
-(BOOL)exportToXML: (NSString *)file_path;
-(BOOL)exportToXMLWithFieldArray: (NSString *)file_path field_array: (FSFieldArray*)field_array is_include: (BOOL)is_include;
-(BOOL)exportToXMLWithWriterCallback: (id<FSFileWriterCallback>)xml_file field_array: (FSFieldArray*)field_array is_include: (BOOL)is_include;
-(BOOL)importFromXML: (NSString *)file_path;
-(BOOL)exportToCSV: (NSString *)csv_file_path pdf_file_name: (NSString *)pdf_file_name is_append: (BOOL)is_append;
-(BOOL)exportToCSVWithStreamCallback: (id<FSFileStreamCallback>)csv_file pdf_file_name: (NSString *)pdf_file_name is_append: (BOOL)is_append;
-(BOOL)exportToHTML: (NSString *)html_file_path field_array: (FSFieldArray*)field_array is_include: (BOOL)is_include;
-(BOOL)exportToHTMLWithWriterCallback: (id<FSFileWriterCallback>)html_file field_array: (FSFieldArray*)field_array is_include: (BOOL)is_include;
-(BOOL)exportToTXT: (NSString *)txt_file_path field_array: (FSFieldArray*)field_array is_include: (BOOL)is_include;
-(BOOL)exportToTXTWithWriterCallback: (id<FSFileWriterCallback>)txt_file field_array: (FSFieldArray*)field_array is_include: (BOOL)is_include;
-(FSPDFDictionary*)getDict;
-(void)fixPageFields: (int)page_index;

-(void)dealloc;

@end

@interface FSControl : FSBase
@property (nonatomic, weak, getter=getExportValue) NSString * exportValue;
@property (nonatomic, weak, getter=getDefaultAppearance) FSDefaultAppearance* defaultAppearance;
@property (nonatomic, getter=getAlignment) FSAlignment alignment;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSControl*)other;
-(BOOL)isEmpty;
-(FSField*)getField;
-(FSPDFDictionary*)getWidgetDict;
-(FSWidget*)getWidget;
-(int)getIndex;
-(BOOL)isChecked;
-(void)setChecked: (BOOL)checked_status;
-(BOOL)isDefaultChecked;
-(void)setDefaultChecked: (BOOL)checked_status;

-(void)dealloc;

@end

@interface FSSignatureArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSignatureArray*)other;
-(unsigned long)getSize;
-(FSSignature*)getAt: (unsigned long)index;
-(void)add: (FSSignature*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSSignature*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSignatureStates) {
  FSSignatureStateUnknown = 0x80000000,
  FSSignatureStateNoSignData = 0x00000200,
  FSSignatureStateUnsigned = 0x00000001,
  FSSignatureStateSigned = 0x00000002,
  FSSignatureStateVerifyValid = 0x00000004,
  FSSignatureStateVerifyInvalid = 0x00000008,
  FSSignatureStateVerifyErrorData = 0x00000010,
  FSSignatureStateVerifyNoSupportWay = 0x00000020,
  FSSignatureStateVerifyErrorByteRange = 0x00000040,
  FSSignatureStateVerifyChange = 0x00000080,
  FSSignatureStateVerifyIncredible = 0x00000100,
  FSSignatureStateVerifyNoChange = 0x00000400,
  FSSignatureStateVerifyIssueValid = 0x00001000,
  FSSignatureStateVerifyIssueUnknown = 0x00002000,
  FSSignatureStateVerifyIssueRevoke = 0x00004000,
  FSSignatureStateVerifyIssueExpire = 0x00008000,
  FSSignatureStateVerifyIssueUncheck = 0x00010000,
  FSSignatureStateVerifyIssueCurrent = 0x00020000,
  FSSignatureStateVerifyTimestampNone = 0x00040000,
  FSSignatureStateVerifyTimestampDoc = 0x00080000,
  FSSignatureStateVerifyTimestampValid = 0x00100000,
  FSSignatureStateVerifyTimestampInvalid = 0x00200000,
  FSSignatureStateVerifyTimestampExpire = 0x00400000,
  FSSignatureStateVerifyTimestampIssueUnknown = 0x00800000,
  FSSignatureStateVerifyTimestampIssueValid = 0x01000000,
  FSSignatureStateVerifyTimestampTimeBefore = 0x02000000,
  FSSignatureStateCertCannotGetVRI = 0x04000000,
  FSSignatureStateVerifyChangeLegal = 0x08000000,
  FSSignatureStateVerifyChangeIllegal = 0x10000000
};

typedef NS_ENUM(NSInteger, FSSignatureAPFlags) {
  FSSignatureAPFlagFoxitFlag = 0x0001,
  FSSignatureAPFlagLabel = 0x0002,
  FSSignatureAPFlagReason = 0x0004,
  FSSignatureAPFlagSigningTime = 0x0008,
  FSSignatureAPFlagDN = 0x0010,
  FSSignatureAPFlagLocation = 0x0020,
  FSSignatureAPFlagSigner = 0x0040,
  FSSignatureAPFlagBitmap = 0x0080,
  FSSignatureAPFlagText = 0x0100,
  FSSignatureAPFlagFoxitEditorFlag = 0x0200,
  FSSignatureAPFlagProducer = 0x0400
};

typedef NS_ENUM(NSInteger, FSSignatureKeyName) {
  FSSignatureKeyNameSigner = 0,
  FSSignatureKeyNameLocation = 1,
  FSSignatureKeyNameReason = 2,
  FSSignatureKeyNameContactInfo = 3,
  FSSignatureKeyNameDN = 4,
  FSSignatureKeyNameText = 5,
  FSSignatureKeyNameProducer = 6
};

typedef NS_ENUM(NSInteger, FSSignatureDigestAlgorithm) {
  FSSignatureDigestSHA1 = 0,
  FSSignatureDigestSHA256 = 1,
  FSSignatureDigestSHA384 = 2,
  FSSignatureDigestSHA512 = 3
};

typedef NS_ENUM(NSInteger, FSSignatureSignatureType) {
  FSSignatureSignatureTypeOrdinary = 0,
  FSSignatureSignatureTypeTimeStamp = 3,
  FSSignatureSignatureTypePagingSeal = 4
};

typedef NS_ENUM(NSInteger, FSSignaturePAdESLevel) {
  FSSignaturePAdESLevelNotPAdES = 0,
  FSSignaturePAdESLevelNone = 1,
  FSSignaturePAdESLevelBB = 2,
  FSSignaturePAdESLevelBT = 3,
  FSSignaturePAdESLevelBLT = 4,
  FSSignaturePAdESLevelBLTA = 5
};

typedef NS_ENUM(NSInteger, FSSignatureDocPermission) {
  FSSignatureDocPermUnrestricted = 0,
  FSSignatureDocPermNoChangesAllowed = 1,
  FSSignatureDocPermFillingFormAndSigning = 2,
  FSSignatureDocPermFillingFormSigningAndAnnotating = 3
};

typedef NS_ENUM(NSInteger, FSSignatureFieldMDPAction) {
  FSSignatureFieldMDPActionNone = 0,
  FSSignatureFieldMDPActionAll = 1,
  FSSignatureFieldMDPActionInclude = 2,
  FSSignatureFieldMDPActionExclude = 3
};

typedef NS_ENUM(NSInteger, FSSignatureLabelName) {
  FSSignatureLabelNameSigner = 0,
  FSSignatureLabelNameLocation = 1,
  FSSignatureLabelNameReason = 2,
  FSSignatureLabelNameSignTime = 3,
  FSSignatureLabelNameDN = 4,
  FSSignatureLabelNameProducer = 6
};

@interface FSSignature : FSField
@property (nonatomic, getter=getDocPermission) FSSignatureDocPermission docPermission;
@property (nonatomic, getter=getAppearanceFlags) unsigned int appearanceFlags;
@property (nonatomic, weak, getter=getSignTime) FSDateTime* signTime;
@property (nonatomic, weak, getter=getFilter) NSString * filter;
@property (nonatomic, weak, getter=getSubFilter) NSString * subFilter;
@property (nonatomic, weak, getter=getBitmap) FSBitmap* bitmap;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithField: (FSField*)field;
-(id)initWithDocument: (FSPDFDoc*)document sig_field_dict: (FSPDFDictionary*)sig_field_dict;
-(BOOL)isEmpty;
-(BOOL)isSigned;
-(void)setFieldMDPActionFields: (FSSignatureFieldMDPAction)action field_array: (NSArray<NSString *> *)field_array;
-(FSSignatureFieldMDPAction)getFieldMDPAction;
-(NSArray<NSString *> *)getFieldMDPActionFields;
-(void)enableIncrementalSaveForFirstSigning: (BOOL)enable_incremental_save;
-(FSProgressive*)startSign: (NSString *)cert_path cert_password: (NSString *)cert_password digest_algorithm: (FSSignatureDigestAlgorithm)digest_algorithm save_path: (NSString *)save_path client_data: (NSData *)client_data pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startSignWithStreamCallback: (NSString *)cert_path cert_password: (NSString *)cert_password digest_algorithm: (FSSignatureDigestAlgorithm)digest_algorithm stream_callback: (id<FSFileStreamCallback>)stream_callback client_data: (NSData *)client_data pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startSignWithCertFileStreamCallback: (id<FSFileStreamCallback>)cert_file_stream cert_password: (NSString *)cert_password digest_algorithm: (FSSignatureDigestAlgorithm)digest_algorithm stream_callback: (id<FSFileStreamCallback>)stream_callback client_data: (NSData *)client_data pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startVerify: (NSData *)client_data pause: (id<FSPauseCallback>)pause;
-(NSString *)getCertificateInfo: (NSString *)key;
-(unsigned int)getState;
-(BOOL)clearSignedData;
-(FSPDFDoc*)getDocument;
-(FSPDFDoc*)getSignedVersionDocument: (NSString *)file_path;
-(void)setAppearanceContent: (NSString *)appearance_content;
-(NSString *)getKeyValue: (FSSignatureKeyName)key;
-(void)setKeyValue: (FSSignatureKeyName)key value: (NSString *)value;
-(void)setKeyLabel: (FSSignatureLabelName)label_name label_value: (NSString *)label_value;
-(NSString *)getKeyLabel: (FSSignatureLabelName)label_name;
-(void)setImage: (FSImage*)image frame_index: (int)frame_index;
-(void)setImageWithFilePath: (NSString *)file_path frame_index: (int)frame_index;
-(FSPDFDictionary*)getSignatureDict;
-(void)setDefaultContentsLength: (unsigned int)default_length;
-(int)getCertCount;
-(NSString *)getCert: (int)index;
-(void)setCertChain: (NSArray<NSString *> *)cert_chain;
-(FSSignatureSignatureType)getSignatureType;
-(BOOL)isTimeStamp;
-(FSSignaturePAdESLevel)getPAdESLevel;
-(void)setCustomObject: (NSString *)key pdf_object: (FSPDFObject*)pdf_object;
-(FSSignatureArray*)getPagingSealGroupElements;
-(BOOL)generateAppearance;
-(FSPagingSealSignature*)getPagingSealSignature;
-(void)enableEmbedFont: (BOOL)enable_embed_font;
-(FSInt32Array*)getByteRangeArray;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSignatureCallbackCertValidity) {
  FSSignatureCallbackCertValid = 0,
  FSSignatureCallbackCertExpired = 1,
  FSSignatureCallbackCertUnsupportType = 2,
  FSSignatureCallbackCertDataError = 3,
  FSSignatureCallbackCertInvalidPassword = 4,
  FSSignatureCallbackCertInvalidPath = 5,
  FSSignatureCallbackCertNotSet = 6,
  FSSignatureCallbackCertCannotGetPrivateKey = 7
};



@interface FSTimeStampServerMgr : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSErrorCode)initialize;
+(void)destroy;
+(int)getServerCount;
+(FSTimeStampServer*)getServer: (int)index;
+(int)getServerIndex: (FSTimeStampServer*)server;
+(FSTimeStampServer*)getDefaultServer;
+(void)setDefaultServerWithIndex: (int)index;
+(void)setDefaultServer: (FSTimeStampServer*)server;
+(FSTimeStampServer*)addServer: (NSString *)server_name server_url: (NSString *)server_url user_name: (NSString *)user_name password: (NSString *)password;
+(void)removeServerWithIndex: (int)index;
+(void)removeServer: (FSTimeStampServer*)server;
-(id)init;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSTimeStampServerSendRequestResult) {
  FSTimeStampServerSendResultSuccess = 0,
  FSTimeStampServerSendResultFailToCreateSocket = 1,
  FSTimeStampServerSendResultFailToConnect = 2,
  FSTimeStampServerSendResultFailToSendData = 3,
  FSTimeStampServerSendResultFailToReceiveData = 4,
  FSTimeStampServerSendResultFailToRequest = 5,
  FSTimeStampServerSendResultFailToGetData = 6,
  FSTimeStampServerSendResultOutOfMemory = 7
};

@interface FSTimeStampServer : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSTimeStampServer*)other;
-(BOOL)isEmpty;
-(NSData *)getTimeStampMessage;
-(FSTimeStampServerSendRequestResult)sendTimeStampRequest: (NSData *)request;

-(void)dealloc;

@end



typedef NS_ENUM(NSInteger, FSPagingSealConfigPagingSealPosition) {
  FSPagingSealConfigPagingSealPositionLeft = 1,
  FSPagingSealConfigPagingSealPositionRight = 2,
  FSPagingSealConfigPagingSealPositionTop = 3,
  FSPagingSealConfigPagingSealPositionBottom = 4
};

typedef NS_ENUM(NSInteger, FSPagingSealConfigPagingSealStyle) {
  FSPagingSealConfigPagingSealStyleMultipleSignatures = 0,
  FSPagingSealConfigPagingSealStyleOneSignature = 1
};

@interface FSPagingSealConfig : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getPaging_seal_position) FSPagingSealConfigPagingSealPosition paging_seal_position;
@property (nonatomic, getter=getOffset) float offset;
@property (nonatomic, getter=getFirst_page_percent) float first_page_percent;
@property (nonatomic, getter=getIs_on_perforation) BOOL is_on_perforation;
@property (nonatomic, getter=getPaging_seal_style) FSPagingSealConfigPagingSealStyle paging_seal_style;
@property (nonatomic, getter=getIs_display_multiple_seal) BOOL is_display_multiple_seal;
@property (nonatomic, getter=getPage_count_for_each_seal) int page_count_for_each_seal;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPaging_seal_position: (FSPagingSealConfigPagingSealPosition)paging_seal_position offset: (float)offset first_page_percent: (float)first_page_percent is_on_perforation: (BOOL)is_on_perforation paging_seal_style: (FSPagingSealConfigPagingSealStyle)paging_seal_style is_display_multiple_seal: (BOOL)is_display_multiple_seal page_count_for_each_seal: (int)page_count_for_each_seal;
-(void)set: (FSPagingSealConfigPagingSealPosition)paging_seal_position offset: (float)offset first_page_percent: (float)first_page_percent is_on_perforation: (BOOL)is_on_perforation paging_seal_style: (FSPagingSealConfigPagingSealStyle)paging_seal_style is_display_multiple_seal: (BOOL)is_display_multiple_seal page_count_for_each_seal: (int)page_count_for_each_seal;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPagingSealSignaturePagingSealAPState) {
  FSPagingSealSignaturePagingSealAPStateUnknown = 0,
  FSPagingSealSignaturePagingSealAPStateUnsigned = 1,
  FSPagingSealSignaturePagingSealAPStateSigned = 2,
  FSPagingSealSignaturePagingSealAPStateValid = 3,
  FSPagingSealSignaturePagingSealAPStateInvalid = 4
};

@interface FSPagingSealSignature : FSSignature
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(void)setPagingSealConfig: (FSPagingSealConfig*)paging_seal_config;
-(void)setAPStateBitmap: (FSPagingSealSignaturePagingSealAPState)ap_state bitmap: (FSBitmap*)bitmap;
-(BOOL)generateAppearance;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSGraphicsObjectsTextMergeOption) {
  FSGraphicsObjectsTextMergeNone = 0,
  FSGraphicsObjectsTextMergeTJY = 1,
  FSGraphicsObjectsTextMergeBTET = 2
};

@interface FSGraphicsObjects : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSGraphicsObjects*)other;
-(BOOL)isEmpty;
-(long)getFirstGraphicsObjectPosition: (FSGraphicsObjectType)filter;
-(long)getNextGraphicsObjectPosition: (long)position filter: (FSGraphicsObjectType)filter;
-(long)getLastGraphicsObjectPosition: (FSGraphicsObjectType)filter;
-(long)getPrevGraphicsObjectPosition: (long)position filter: (FSGraphicsObjectType)filter;
-(FSGraphicsObject*)getGraphicsObject: (long)position;
-(long)insertGraphicsObject: (long)position_insert_after graphics_object: (FSGraphicsObject*)graphics_object;
-(BOOL)removeGraphicsObject: (FSGraphicsObject*)graphics_object;
-(BOOL)removeGraphicsObjectByPosition: (long)position;
-(long)moveGraphicsObjectByPosition: (long)current_position position_move_after: (long)position_move_after;
-(long)getGraphicsObjectPosition: (FSGraphicsObject*)graphics_object;
-(int)getGraphicsObjectCount;
-(int)getGraphicsObjectIndex: (FSGraphicsObject*)graphics_object;
-(FSGraphicsObject*)getGraphicsObjectByIndex: (int)index;
-(BOOL)generateContent;
-(BOOL)generateContentWithMergeOption: (FSGraphicsObjectsTextMergeOption)text_merge_option;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPDFPageParseFlags) {
  FSPDFPageParsePageNormal = 0x0000,
  FSPDFPageParsePageTextOnly = 0x0001
};

typedef NS_ENUM(NSInteger, FSPDFPageCalcMarginMode) {
  FSPDFPageCalcContentsBox = 0,
  FSPDFPageCalcDetection = 1
};

typedef NS_ENUM(NSInteger, FSPDFPageFlattenOptions) {
  FSPDFPageFlattenAll = 0,
  FSPDFPageFlattenNoAnnot = 0x0001,
  FSPDFPageFlattenNoFormControl = 0x0002
};

typedef NS_ENUM(NSInteger, FSPDFPageBoxType) {
  FSPDFPageMediaBox = 0,
  FSPDFPageCropBox = 1,
  FSPDFPageTrimBox = 2,
  FSPDFPageArtBox = 3,
  FSPDFPageBleedBox = 4
};

typedef NS_ENUM(NSInteger, FSPDFPageSize) {
  FSPDFPageSizeLetter = 1,
  FSPDFPageSizeLegal = 2,
  FSPDFPageSizeA2 = 3,
  FSPDFPageSizeA3 = 4,
  FSPDFPageSizeA4 = 5,
  FSPDFPageSizeA5 = 6,
  FSPDFPageSizeA6 = 7,
  FSPDFPageSizeB2 = 8,
  FSPDFPageSizeB3 = 9,
  FSPDFPageSizeB4 = 10,
  FSPDFPageSizeB5 = 11,
  FSPDFPageSizeB6 = 12
};

@interface FSPDFPage : FSGraphicsObjects
@property (nonatomic, getter=getRotation) FSRotation rotation;
@property (nonatomic, getter=getUserUnitSize) float userUnitSize;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document page_dict: (FSPDFDictionary*)page_dict;
-(id)initWithOther: (FSGraphicsObjects*)other;
-(FSPDFDoc*)getDocument;
-(FSPDFDictionary*)getDict;
-(BOOL)isParsed;
-(FSProgressive*)startParse: (unsigned int)flags pause: (id<FSPauseCallback>)pause is_reparse: (BOOL)is_reparse;
-(int)getIndex;
-(float)getHeight;
-(float)getWidth;
-(FSBitmap*)loadThumbnail;
-(FSMatrix2D*)getDisplayMatrix: (int)left top: (int)top width: (int)width height: (int)height rotate: (FSRotation)rotate;
-(FSRectF*)calcContentBBox: (FSPDFPageCalcMarginMode)mode;
-(int)getAnnotCount;
-(FSAnnot*)getAnnot: (int)index;
-(FSAnnot*)getAnnotAtPoint: (FSPointF*)position tolerance: (float)tolerance;
-(FSAnnot*)getAnnotAtDevicePoint: (FSPointF*)position tolerance: (float)tolerance matrix: (FSMatrix2D*)matrix;
-(FSAnnotArray*)getAnnotsAtPoint: (FSPointF*)position tolerance: (float)tolerance;
-(FSAnnotArray*)getAnnotsAtDevicePoint: (FSPointF*)position tolerance: (float)tolerance matrix: (FSMatrix2D*)matrix;
-(FSAnnot*)addAnnot: (FSAnnotType)type rect: (FSRectF*)rect;
-(FSAnnot*)addAnnotWithDictionary: (FSPDFDictionary*)annot_dict;
-(BOOL)removeAnnot: (FSAnnot*)annot;
-(void)moveAnnotToFirst: (FSAnnot*)annot;
-(void)moveAnnotToLast: (FSAnnot*)annot;
-(void)moveAnnotToPrev: (FSAnnot*)annot;
-(void)moveAnnotToNext: (FSAnnot*)annot;
-(void)updateAnnotList;
-(BOOL)hasTransparency;
-(BOOL)isScanned;
-(BOOL)flatten: (BOOL)for_display options: (unsigned int)options;
-(BOOL)flattenAnnot: (FSAnnot*)annot;
-(BOOL)setAnnotGroup: (FSMarkupArray*)annot_array header_index: (int)header_index;
-(FSSignature*)addSignature: (FSRectF*)rect;
-(FSSignature*)addSignatureWithFieldName: (FSRectF*)rect field_name: (NSString *)field_name;
-(FSSignature*)addSignatureWithSignatureType: (FSRectF*)rect field_name: (NSString *)field_name signature_type: (FSSignatureSignatureType)signature_type to_check_permission: (BOOL)to_check_permission;
-(FSSignature*)addSignatureWithExistedVDict: (FSRectF*)rect field_name: (NSString *)field_name signature_type: (FSSignatureSignatureType)signature_type to_check_permission: (BOOL)to_check_permission existed_signature: (FSSignature*)existed_signature;
-(BOOL)hasWatermark;
-(BOOL)removeAllWatermarks;
-(void)setSize: (float)width height: (float)height;
-(void)setSizeWithType: (FSPDFPageSize)size;
-(void)setBox: (FSPDFPageBoxType)box_type box: (FSRectF*)box;
-(FSRectF*)getBox: (FSPDFPageBoxType)box_type;
-(BOOL)transform: (FSMatrix2D*)matrix need_transform_clip_path: (BOOL)need_transform_clip_path need_transform_annotations: (BOOL)need_transform_annotations;
-(BOOL)normalize;
-(void)setClipRect: (FSRectF*)clip_rect;
-(void)setThumbnail: (FSBitmap*)thumbnail;
-(FSGraphicsObject*)getGraphicsObjectAtPoint: (FSPointF*)point tolerance: (float)tolerance filter: (FSGraphicsObjectType)filter;
-(FSGraphicsObjectArray*)getGraphicsObjectsAtPoint: (FSPointF*)point tolerance: (float)tolerance filter: (FSGraphicsObjectType)filter;
-(FSGraphicsObject*)getGraphicsObjectAtDevicePoint: (FSPointF*)point tolerance: (float)tolerance matrix: (FSMatrix2D*)matrix filter: (FSGraphicsObjectType)filter;
-(FSGraphicsObjectArray*)getGraphicsObjectsAtDevicePoint: (FSPointF*)point tolerance: (float)tolerance matrix: (FSMatrix2D*)matrix filter: (FSGraphicsObjectType)filter;
-(FSGraphicsObject*)getGraphicsObjectAtRectangle: (FSRectF*)rect filter: (FSGraphicsObjectType)filter;
-(FSGraphicsObjectArray*)getGraphicsObjectsAtRectangle: (FSRectF*)rect filter: (FSGraphicsObjectType)filter;
-(BOOL)addImage: (FSImage*)image frame_index: (int)frame_index position: (FSPointF*)position width: (float)width height: (float)height auto_generate_content: (BOOL)auto_generate_content;
-(BOOL)addImageFromFilePath: (NSString *)file_path position: (FSPointF*)position width: (float)width height: (float)height auto_generate_content: (BOOL)auto_generate_content;
-(FSPDFArray*)getAnnots;
-(FSPDFDictionary*)getResources;
-(FSPDFObject*)getContents;
-(FSPDFStream*)getThumb;
-(FSPDFObject*)getInheritedAttribute: (NSString *)attruibute_name;
-(void)clearRenderCache;
-(FSRectF*)getSuggestedRect: (FSBitmap*)render_result render_matrix: (FSMatrix2D*)render_matrix point: (FSPointF*)point;
-(BOOL)addText: (NSString *)text rect: (FSRectF*)rect style: (FSRichTextStyle*)style matrix: (FSMatrix2D*)matrix is_each_text: (BOOL)is_each_text disable_embed_font: (BOOL)disable_embed_font;
-(FSRectF*)addTextWithRotation: (NSString *)text rect: (FSRectF*)rect style: (FSRichTextStyle*)style rotation: (int)rotation rotate_point: (FSRotationPointOptions)rotate_point disable_embed_font: (BOOL)disable_embed_font;
-(FSRectF*)calculateNewRectForText: (NSString *)text rect: (FSRectF*)rect style: (FSRichTextStyle*)style rotation: (int)rotation rotate_point: (FSRotationPointOptions)rotate_point disable_embed_font: (BOOL)disable_embed_font;
-(FSTextObjectArray*)splitTextsInRectangle: (FSRectF*)rect split_step: (int)split_step;

-(void)dealloc;

@end

@interface FSPageNumberRange : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getStart_number) int start_number;
@property (nonatomic, getter=getEnd_number) int end_number;
@property (nonatomic, getter=getFilter) FSRangeFilter filter;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithStart_number: (int)start_number end_number: (int)end_number filter: (FSRangeFilter)filter;
-(id)init;
-(id)initWithPage_range: (FSPageNumberRange*)page_range;
-(void)set: (int)start_number end_number: (int)end_number filter: (FSRangeFilter)filter;
-(void)dealloc;

@end

@interface FSHeaderFooterContent : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getHeader_left_content) NSString * header_left_content;
@property (nonatomic, weak, getter=getHeader_center_content) NSString * header_center_content;
@property (nonatomic, weak, getter=getHeader_right_content) NSString * header_right_content;
@property (nonatomic, weak, getter=getFooter_left_content) NSString * footer_left_content;
@property (nonatomic, weak, getter=getFooter_center_content) NSString * footer_center_content;
@property (nonatomic, weak, getter=getFooter_right_content) NSString * footer_right_content;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithHeader_left_content: (NSString *)header_left_content header_center_content: (NSString *)header_center_content header_right_content: (NSString *)header_right_content footer_left_content: (NSString *)footer_left_content footer_center_content: (NSString *)footer_center_content footer_right_content: (NSString *)footer_right_content;
-(id)init;
-(id)initWithOther: (FSHeaderFooterContent*)other;
-(void)set: (NSString *)header_left_content header_center_content: (NSString *)header_center_content header_right_content: (NSString *)header_right_content footer_left_content: (NSString *)footer_left_content footer_center_content: (NSString *)footer_center_content footer_right_content: (NSString *)footer_right_content;
-(void)dealloc;

@end

@interface FSHeaderFooter : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getFont) FSFont* font;
@property (nonatomic, getter=getText_size) float text_size;
@property (nonatomic, getter=getText_color) unsigned int text_color;
@property (nonatomic, weak, getter=getPage_range) FSPageNumberRange* page_range;
@property (nonatomic, weak, getter=getPage_margin) FSRectF* page_margin;
@property (nonatomic, getter=getHas_text_shrinked) BOOL has_text_shrinked;
@property (nonatomic, getter=getHas_fixedsize_for_print) BOOL has_fixedsize_for_print;
@property (nonatomic, getter=getStart_page_number) int start_page_number;
@property (nonatomic, weak, getter=getContent) FSHeaderFooterContent* content;
@property (nonatomic, getter=getIs_to_embed_font) BOOL is_to_embed_font;
@property (nonatomic, getter=getIs_underline) BOOL is_underline;
@property (nonatomic, getter=getIs_replace_font) BOOL is_replace_font;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFont: (FSFont*)font text_size: (float)text_size text_color: (unsigned int)text_color page_range: (FSPageNumberRange*)page_range page_margin: (FSRectF*)page_margin has_text_shrinked: (BOOL)has_text_shrinked has_fixedsize_for_print: (BOOL)has_fixedsize_for_print start_page_number: (int)start_page_number content: (FSHeaderFooterContent*)content is_to_embed_font: (BOOL)is_to_embed_font is_underline: (BOOL)is_underline;
-(id)init;
-(id)initWithOther: (FSHeaderFooter*)other;
-(void)set: (FSFont*)font text_size: (float)text_size text_color: (unsigned int)text_color page_range: (FSPageNumberRange*)page_range page_margin: (FSRectF*)page_margin has_text_shrinked: (BOOL)has_text_shrinked has_fixedsize_for_print: (BOOL)has_fixedsize_for_print start_page_number: (int)start_page_number content: (FSHeaderFooterContent*)content is_to_embed_font: (BOOL)is_to_embed_font is_underline: (BOOL)is_underline;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSHeaderFooterContentGeneratorDateFormatType) {
  FSHeaderFooterContentGeneratorDateFormatMSlashD = 0,
  FSHeaderFooterContentGeneratorDateFormatMSlashDSlashYY = 1,
  FSHeaderFooterContentGeneratorDateFormatMSlashDSlashYYYY = 2,
  FSHeaderFooterContentGeneratorDateFormatMMSlashDDSlashYY = 3,
  FSHeaderFooterContentGeneratorDateFormatMMSlashDDSlashYYYY = 4,
  FSHeaderFooterContentGeneratorDateFormatDSlashMSlashYY = 5,
  FSHeaderFooterContentGeneratorDateFormatDSlashMSlashYYYY = 6,
  FSHeaderFooterContentGeneratorDateFormatDDSlashMMSlashYY = 7,
  FSHeaderFooterContentGeneratorDateFormatDDSlashMMSlashYYYY = 8,
  FSHeaderFooterContentGeneratorDateFormatMMSlashYY = 9,
  FSHeaderFooterContentGeneratorDateFormatMMSlashYYYY = 10,
  FSHeaderFooterContentGeneratorDateFormatMDotDDotYY = 11,
  FSHeaderFooterContentGeneratorDateFormatMDotDDotYYYY = 12,
  FSHeaderFooterContentGeneratorDateFormatMMDotDDDotYY = 13,
  FSHeaderFooterContentGeneratorDateFormatMMDotDDDotYYYY = 14,
  FSHeaderFooterContentGeneratorDateFormatMMDotYY = 15,
  FSHeaderFooterContentGeneratorDateFormatDDotMDotYYYY = 16,
  FSHeaderFooterContentGeneratorDateFormatDDDotMMDotYY = 17,
  FSHeaderFooterContentGeneratorDateFormatDDDotMMDotYYYY = 18,
  FSHeaderFooterContentGeneratorDateFormatYYHyphenMMHyphenDD = 19,
  FSHeaderFooterContentGeneratorDateFormatYYYYHyphenMMHyphenDD = 20
};

typedef NS_ENUM(NSInteger, FSHeaderFooterContentGeneratorPageNumberFormat) {
  FSHeaderFooterContentGeneratorPageNumberFormatDefault = 0,
  FSHeaderFooterContentGeneratorPageNumberFormatNumberOfCount = 1,
  FSHeaderFooterContentGeneratorPageNumberFormatNumberSlashCount = 2,
  FSHeaderFooterContentGeneratorPageNumberFormatPageNumber = 3,
  FSHeaderFooterContentGeneratorPageNumberFormatPageNumberOfCount = 4
};

@interface FSHeaderFooterContentGenerator : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSHeaderFooterContentGenerator*)other;
-(BOOL)isEmpty;
-(void)addDate: (FSHeaderFooterContentGeneratorDateFormatType)format_type;
-(void)addPageNumber: (FSHeaderFooterContentGeneratorPageNumberFormat)format_type;
-(void)addString: (NSString *)new_string;
-(void)clear;
-(NSString *)generateContent;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSTiledWatermarkSettingsFlags) {
  FSTiledWatermarkSettingsFlagAsPageContents = 0x0000,
  FSTiledWatermarkSettingsFlagAsAnnot = 0x0001,
  FSTiledWatermarkSettingsFlagOnTop = 0x0002,
  FSTiledWatermarkSettingsFlagNoPrint = 0x0004,
  FSTiledWatermarkSettingsFlagInvisible = 0x0008
};

@interface FSTiledWatermarkSettings : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getRow_space) float row_space;
@property (nonatomic, getter=getCol_space) float col_space;
@property (nonatomic, getter=getRotation) float rotation;
@property (nonatomic, getter=getOpacity) int opacity;
@property (nonatomic, getter=getScale) int scale;
@property (nonatomic, getter=getFlags) unsigned int flags;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithRow_space: (float)row_space col_space: (float)col_space rotation: (float)rotation opacity: (int)opacity scale: (int)scale flags: (unsigned int)flags;
-(id)init;
-(id)initWithSettings: (FSTiledWatermarkSettings*)settings;
-(void)set: (float)row_space col_space: (float)col_space rotation: (float)rotation opacity: (int)opacity scale: (int)scale flags: (unsigned int)flags;
-(void)dealloc;

@end

@interface FSWrapperData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getVersion) int version;
@property (nonatomic, weak, getter=getType) NSString * type;
@property (nonatomic, weak, getter=getApp_id) NSString * app_id;
@property (nonatomic, weak, getter=getUri) NSString * uri;
@property (nonatomic, weak, getter=getDescription) NSString * description;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithVersion: (int)version type: (NSString *)type app_id: (NSString *)app_id uri: (NSString *)uri description: (NSString *)description;
-(id)initWithWrapper_data: (FSWrapperData*)wrapper_data;
-(void)set: (int)version type: (NSString *)type app_id: (NSString *)app_id uri: (NSString *)uri description: (NSString *)description;
-(void)dealloc;

@end

@interface FSPayLoadData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getVersion) float version;
@property (nonatomic, weak, getter=getCrypto_filter) NSString * crypto_filter;
@property (nonatomic, weak, getter=getFile_name) NSString * file_name;
@property (nonatomic, getter=getFile_size) long long file_size;
@property (nonatomic, weak, getter=getDescription) NSString * description;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithVersion: (float)version crypto_filter: (NSString *)crypto_filter file_name: (NSString *)file_name file_size: (long long)file_size description: (NSString *)description;
-(id)initWithPayload_data: (FSPayLoadData*)payload_data;
-(void)set: (float)version crypto_filter: (NSString *)crypto_filter file_name: (NSString *)file_name file_size: (long long)file_size description: (NSString *)description;
-(void)dealloc;

@end

@interface FSHiddenInfoSettingData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getEnable_remove_metadata) BOOL enable_remove_metadata;
@property (nonatomic, getter=getEnable_remove_fileattachment) BOOL enable_remove_fileattachment;
@property (nonatomic, getter=getEnable_remove_bookmark) BOOL enable_remove_bookmark;
@property (nonatomic, getter=getEnable_remove_searchIndex) BOOL enable_remove_searchIndex;
@property (nonatomic, getter=getEnable_remove_comment) BOOL enable_remove_comment;
@property (nonatomic, getter=getEnable_remove_form_fields) BOOL enable_remove_form_fields;
@property (nonatomic, getter=getEnable_remove_hidden_text) BOOL enable_remove_hidden_text;
@property (nonatomic, getter=getEnable_remove_hidden_layer) BOOL enable_remove_hidden_layer;
@property (nonatomic, getter=getEnable_remove_content) BOOL enable_remove_content;
@property (nonatomic, getter=getEnable_remove_link) BOOL enable_remove_link;
@property (nonatomic, getter=getEnable_remove_overlaping) BOOL enable_remove_overlaping;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(void)dealloc;

@end

@interface FSPageBasicInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getWidth) float width;
@property (nonatomic, getter=getHeight) float height;
@property (nonatomic, getter=getRotation) FSRotation rotation;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithWidth: (float)width height: (float)height rotation: (FSRotation)rotation;
-(id)init;
-(id)initWithPage_info: (FSPageBasicInfo*)page_info;
-(void)set: (float)width height: (float)height rotation: (FSRotation)rotation;
-(void)dealloc;

@end

@interface FSPageBasicInfoArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPageBasicInfoArray*)other;
-(unsigned long)getSize;
-(FSPageBasicInfo*)getAt: (unsigned long)index;
-(void)add: (FSPageBasicInfo*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSPageBasicInfo*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSEmbeddedFontData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getNonstandard_font_name_array) NSArray<NSString *> * nonstandard_font_name_array;
@property (nonatomic, weak, getter=getStandard_font_name_array) NSArray<NSString *> * standard_font_name_array;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSEmbeddedFontData*)other;
-(void)dealloc;

@end

@interface FSTableOfContentsConfig : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getTitle) NSString * title;
@property (nonatomic, weak, getter=getBookmark_level_array) FSInt32Array* bookmark_level_array;
@property (nonatomic, getter=getIs_show_serial_number) BOOL is_show_serial_number;
@property (nonatomic, getter=getInclude_toc_pages) BOOL include_toc_pages;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithTitle: (NSString *)title bookmark_level_array: (FSInt32Array*)bookmark_level_array is_show_serial_number: (BOOL)is_show_serial_number include_toc_pages: (BOOL)include_toc_pages;
-(id)init;
-(void)set: (NSString *)title bookmark_level_array: (FSInt32Array*)bookmark_level_array is_show_serial_number: (BOOL)is_show_serial_number include_toc_pages: (BOOL)include_toc_pages;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPDFDocPasswordType) {
  FSPDFDocPwdInvalid = 0,
  FSPDFDocPwdNoPassword = 1,
  FSPDFDocPwdUser = 2,
  FSPDFDocPwdOwner = 3
};

typedef NS_ENUM(NSInteger, FSPDFDocEncryptType) {
  FSPDFDocEncryptUnknown = -1,
  FSPDFDocEncryptNone = 0,
  FSPDFDocEncryptPassword = 1,
  FSPDFDocEncryptCertificate = 2,
  FSPDFDocEncryptFoxitDRM = 3,
  FSPDFDocEncryptCustom = 4,
  FSPDFDocEncryptRMS = 5,
  FSPDFDocEncryptCDRM = 6
};

typedef NS_ENUM(NSInteger, FSPDFDocUserPermissions) {
  FSPDFDocPermPrint = 0x0004,
  FSPDFDocPermModify = 0x0008,
  FSPDFDocPermExtract = 0x0010,
  FSPDFDocPermAnnotForm = 0x0020,
  FSPDFDocPermFillForm = 0x0100,
  FSPDFDocPermExtractAccess = 0x0200,
  FSPDFDocPermAssemble = 0x0400,
  FSPDFDocPermPrintHigh = 0x0800
};

typedef NS_ENUM(NSInteger, FSPDFDocSaveFlags) {
  FSPDFDocSaveFlagNormal = 0,
  FSPDFDocSaveFlagIncremental = 0x0001,
  FSPDFDocSaveFlagNoOriginal = 0x0002,
  FSPDFDocSaveFlagXRefStream = 0x0008,
  FSPDFDocSaveFlagLinearized = 0x1000,
  FSPDFDocSaveFlagRemoveRedundantObjects = 0x0010,
  FSPDFDocSaveFlagNoUpdatingMetadataDateTime = 0x0020
};

typedef NS_ENUM(NSInteger, FSPDFDocImportPageFlags) {
  FSPDFDocImportFlagNormal = 0,
  FSPDFDocImportFlagWithLayers = 0x0001,
  FSPDFDocImportFlagShareStream = 0x0002
};

typedef NS_ENUM(NSInteger, FSPDFDocExtractPagesOptions) {
  FSPDFDocExtractPagesOptionAnnotation = 0x0001,
  FSPDFDocExtractPagesOptionStructureTree = 0x0002,
  FSPDFDocExtractPagesOptionJavascript = 0x0004,
  FSPDFDocExtractPagesOptionOCProperties = 0x0008,
  FSPDFDocExtractPagesOptionObjectStream = 0x0010,
  FSPDFDocExtractPagesOptionAttachFiles = 0x0020,
  FSPDFDocExtractPagesOptionBookmark = 0x0040,
  FSPDFDocExtractPagesOptionSignature = 0x0080
};

typedef NS_ENUM(NSInteger, FSPDFDocInsertDocOptions) {
  FSPDFDocInsertDocOptionAttachments = 0x0001,
  FSPDFDocInsertDocOptionBookmark = 0x0002
};

typedef NS_ENUM(NSInteger, FSPDFDocDisplayMode) {
  FSPDFDocDisplayUseNone = 0,
  FSPDFDocDisplayUseOutlines = 1,
  FSPDFDocDisplayUseThumbs = 2,
  FSPDFDocDisplayFullScreen = 3,
  FSPDFDocDisplayUseOC = 4,
  FSPDFDocDisplayUseAttachment = 5
};

typedef NS_ENUM(NSInteger, FSPDFDocDataType) {
  FSPDFDocForms = 0x0001,
  FSPDFDocAnnots = 0x0002,
  FSPDFDocLinks = 0x0004
};

typedef NS_ENUM(NSInteger, FSPDFDocWrapperType) {
  FSPDFDocWrapperNone = 0,
  FSPDFDocWrapperFoxit = 1,
  FSPDFDocWrapperPDFV2 = 2
};

@interface FSPDFDoc : FSBase
@property (nonatomic, getter=getDisplayMode) FSPDFDocDisplayMode displayMode;
@property (nonatomic, getter=getFileVersion) int fileVersion;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithPath: (NSString *)path;
-(id)initWithFile_read: (id<FSFileReaderCallback>)file_read is_async: (BOOL)is_async;
-(id)initWithOther: (FSPDFDoc*)other;
-(BOOL)isEmpty;
-(unsigned long long)getFileSize;
-(BOOL)isLinearized;
-(BOOL)isTaggedPDF;
-(FSErrorCode)load: (NSString *)password;
-(FSErrorCode)loadW: (NSString *)password;
-(FSProgressive*)startLoad: (NSString *)password is_cache_stream: (BOOL)is_cache_stream pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startLoadW: (NSString *)password is_cache_stream: (BOOL)is_cache_stream pause: (id<FSPauseCallback>)pause;
-(int)getFirstAvailPageIndex;
-(BOOL)isXFA;
-(BOOL)isEncrypted;
-(void)clearRenderCache;
-(FSPDFDocPasswordType)getPasswordType;
-(FSPDFDocEncryptType)getEncryptionType;
-(FSPDFDocPasswordType)checkPassword: (NSString *)password;
-(BOOL)isUserPassword: (NSString *)password;
-(BOOL)isOwnerPassword: (NSString *)password;
-(NSString *)getUserPassword: (NSString *)owner_password;
-(FSStdEncryptData*)getStdEncryptData;
-(FSCertificateEncryptData*)getCertificateEncryptData;
-(FSDRMEncryptData*)getDRMEncryptData;
-(FSCustomEncryptData*)getCustomEncryptData;
-(FSRMSEncryptData*)getRMSEncryptData;
-(BOOL)saveAs: (NSString *)file_path save_flags: (unsigned int)save_flags;
-(FSProgressive*)startSaveAs: (NSString *)file_path save_flags: (unsigned int)save_flags pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startSaveAsWithWriterCallback: (id<FSFileWriterCallback>)file save_flags: (unsigned int)save_flags pause: (id<FSPauseCallback>)pause;
-(FSBookmark*)getRootBookmark;
-(FSBookmark*)createRootBookmark;
-(int)getBookmarkLevelDepth;
-(BOOL)removeBookmark: (FSBookmark*)bookmark;
-(BOOL)hasLayer;
-(BOOL)hasHeaderFooter;
-(FSHeaderFooter*)getEditableHeaderFooter;
-(void)addHeaderFooter: (FSHeaderFooter*)headerfooter;
-(void)updateHeaderFooter: (FSHeaderFooter*)headerfooter;
-(BOOL)removeAllHeaderFooters;
-(int)getPageCount;
-(FSPDFPage*)getPage: (int)index;
-(FSPDFDictionary*)getCatalog;
-(FSPDFDictionary*)getTrailer;
-(FSPDFDictionary*)getInfo;
-(FSPDFDictionary*)getEncryptDict;
-(FSPDFDictionary*)getPagesDict;
-(FSPDFObject*)getIndirectObject: (unsigned int)object_number;
-(unsigned int)addIndirectObject: (FSPDFObject*)pdf_object;
-(void)deleteIndirectObject: (unsigned int)object_number;
-(unsigned int)getUserPermissions;
-(BOOL)isWrapper;
-(FSPDFDocWrapperType)getWrapperType;
-(FSWrapperData*)getWrapperData;
-(long long)getWrapperOffset;
-(FSPayLoadData*)getPayLoadData;
-(FSProgressive*)startGetPayloadFile: (id<FSFileWriterCallback>)payload_file pause: (id<FSPauseCallback>)pause;
-(BOOL)saveAsWrapperFile: (NSString *)file_path wrapper_data: (FSWrapperData*)wrapper_data user_permissions: (unsigned int)user_permissions owner_password: (NSString *)owner_password;
-(FSProgressive*)startSaveAsPayloadFile: (NSString *)file_path payload_file_path: (NSString *)payload_file_path crypto_filter: (NSString *)crypto_filter description: (NSString *)description version: (float)version save_flags: (unsigned int)save_flags pause: (id<FSPauseCallback>)pause;
-(BOOL)hasForm;
-(int)getReadingBookmarkCount;
-(FSReadingBookmark*)getReadingBookmark: (int)index;
-(FSReadingBookmark*)insertReadingBookmark: (int)reading_bookmark_index title: (NSString *)title dest_page_index: (int)dest_page_index;
-(BOOL)removeReadingBookmark: (FSReadingBookmark*)reading_bookmark;
-(int)getSignatureCount;
-(FSSignature*)getSignature: (int)index;
-(void)removeSignature: (FSSignature*)signature;
-(FSPDFPage*)insertPage: (int)index width: (float)width height: (float)height;
-(FSPDFPage*)insertPageWithType: (int)index size: (FSPDFPageSize)size;
-(FSPDFPage*)addPageFromTemplate: (NSString *)template_name;
-(BOOL)hidePageTemplate: (NSString *)template_name;
-(BOOL)removePage: (int)index;
-(BOOL)removePageWithPDFPage: (FSPDFPage*)page;
-(BOOL)movePageTo: (FSPDFPage*)page dest_index: (int)dest_index;
-(BOOL)movePagesTo: (FSRange*)page_range dest_index: (int)dest_index;
-(FSProgressive*)startImportPagesFromFilePath: (int)dest_index src_file_path: (NSString *)src_file_path password: (NSString *)password flags: (unsigned int)flags layer_name: (NSString *)layer_name page_range: (FSRange*)page_range pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startImportPages: (int)dest_index src_doc: (FSPDFDoc*)src_doc flags: (unsigned int)flags layer_name: (NSString *)layer_name page_range: (FSRange*)page_range pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startExtractPages: (NSString *)file_path options: (unsigned int)options page_range: (FSRange*)page_range pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startExtractPagesWithWriterCallback: (id<FSFileWriterCallback>)file options: (unsigned int)options page_range: (FSRange*)page_range pause: (id<FSPauseCallback>)pause;
-(void)insertDocument: (int)dest_index src_doc: (FSPDFDoc*)src_doc options: (unsigned int)options;
-(void)insertDocumentWithBookmarkTitle: (int)dest_index src_doc: (FSPDFDoc*)src_doc options: (unsigned int)options bookmark_title: (NSString *)bookmark_title;
-(void)sanitize;
-(void)removeHiddenInfo: (FSHiddenInfoSettingData*)hidden_data_setting;
-(BOOL)importFromFDF: (FSFDFDoc*)fdf_doc types: (int)types page_range: (FSRange*)page_range;
-(BOOL)exportToFDF: (FSFDFDoc*)fdf_doc types: (int)types page_range: (FSRange*)page_range;
-(BOOL)exportAnnotToFDF: (FSAnnot*)pdf_annot fdf_doc: (FSFDFDoc*)fdf_doc;
-(BOOL)exportFormFieldsToFDF: (FSFieldArray*)field_array is_include: (BOOL)is_include fdf_doc: (FSFDFDoc*)fdf_doc;
-(NSString *)getHeader;
-(BOOL)setSecurityHandler: (FSSecurityHandler*)handler;
-(FSSecurityHandler*)getSecurityHandler;
-(BOOL)removeSecurity;
-(int)getFontCount;
-(FSFont*)getFont: (int)index;
-(FSAction*)getOpenAction;
-(BOOL)setOpenAction: (FSAction*)action;
-(BOOL)removeOpenAction;
-(BOOL)doJSOpenAction;
-(BOOL)isPortfolio;
-(FSPageBasicInfo*)getPageBasicInfo: (int)index;
-(FSPageBasicInfoArray*)getAllPageBasicInfo;
-(FSEmbeddedFontData*)getEmbeddedFontData;
-(void)createDSS;
-(void)addTableOfContents: (NSString *)title bookmark_level_array: (FSInt32Array*)bookmark_level_array;
-(void)addTableOfContentsWithTableOfContentsConfig: (FSTableOfContentsConfig*)table_of_contents_config;
-(void)setCacheFile: (id<FSFileStreamCallback>)file_stream is_own_file_stream: (BOOL)is_own_file_stream;
-(FSProgressive*)startRecognizeForm: (id<FSPauseCallback>)pause;
-(FSProgressive*)startRecognizeFormWithToolTips: (BOOL)is_set_tool_tips pause: (id<FSPauseCallback>)pause;
-(NSString *)getPageText: (int)page_index;
-(FSPagingSealSignature*)addPagingSealSignature: (FSRange*)page_range width: (float)width height: (float)height to_check_permission: (BOOL)to_check_permission;
-(FSProgressive*)startEmbedAllFonts: (id<FSPauseCallback>)pause;
-(FSProgressive*)startAddTiledWatermark: (NSString *)text settings: (FSTiledWatermarkSettings*)settings properties: (FSWatermarkTextProperties*)properties page_range: (FSRange*)page_range pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startAddTiledWatermarkWithImagepath: (NSString *)src_img_file_path settings: (FSTiledWatermarkSettings*)settings page_range: (FSRange*)page_range pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startAddTiledWatermarkWithImagestream: (id<FSFileReaderCallback>)src_img_stream settings: (FSTiledWatermarkSettings*)settings page_range: (FSRange*)page_range pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startAddTiledWatermarkWithPDFPage: (FSPDFPage*)page settings: (FSTiledWatermarkSettings*)settings page_range: (FSRange*)page_range pause: (id<FSPauseCallback>)pause;
-(FSAnnotArray*)getAnnotsByIdArray: (NSArray<NSString *> *)unique_id_arr;
-(void)removeStructTree;
-(id)initWithBuffer: (NSData *)buffer;

-(void)dealloc;

@end

@interface FSMetadata : FSBase
@property (nonatomic, weak, getter=getCreationDateTime) FSDateTime* creationDateTime;
@property (nonatomic, weak, getter=getModifiedDateTime) FSDateTime* modifiedDateTime;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithOther: (FSMetadata*)other;
-(BOOL)isEmpty;
-(BOOL)hasKey: (NSString *)key;
-(NSArray<NSString *> *)getValues: (NSString *)key;
-(BOOL)setValues: (NSString *)key value_array: (NSArray<NSString *> *)value_array;
-(NSArray<NSString *> *)getCustomerKeys;
-(void)removeCustomerKey: (NSString *)key;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSDocViewerPrefsPrintScale) {
  FSDocViewerPrefsPrintScaleNone = 0,
  FSDocViewerPrefsPrintScaleAppDefault = 1
};

typedef NS_ENUM(NSInteger, FSDocViewerPrefsViewerPref) {
  FSDocViewerPrefsHideToolbar = 0,
  FSDocViewerPrefsHideMenubar = 1,
  FSDocViewerPrefsHideWindowUI = 2,
  FSDocViewerPrefsFitWindow = 3,
  FSDocViewerPrefsCenterWindow = 4,
  FSDocViewerPrefsDisplayDocTitle = 5
};

@interface FSDocViewerPrefs : FSBase
@property (nonatomic, getter=getNonFullScreenPageMode) FSPDFDocDisplayMode nonFullScreenPageMode;
@property (nonatomic, getter=getReadingDirection) BOOL readingDirection;
@property (nonatomic, getter=getViewArea) FSPDFPageBoxType viewArea;
@property (nonatomic, getter=getViewClip) FSPDFPageBoxType viewClip;
@property (nonatomic, getter=getPrintArea) FSPDFPageBoxType printArea;
@property (nonatomic, getter=getPrintClip) FSPDFPageBoxType printClip;
@property (nonatomic, getter=getPrintScale) FSDocViewerPrefsPrintScale printScale;
@property (nonatomic, getter=getPrintCopies) int printCopies;
@property (nonatomic, weak, getter=getPrintRange) FSRange* printRange;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document pdf_dict: (FSPDFDictionary*)pdf_dict;
-(id)initWithOther: (FSDocViewerPrefs*)other;
-(BOOL)isEmpty;
-(BOOL)getUIDisplayStatus: (FSDocViewerPrefsViewerPref)pref;
-(void)setUIDisplayStatus: (FSDocViewerPrefsViewerPref)pref value: (BOOL)value;
-(FSPDFDictionary*)getDict;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPageLabelsStyle) {
  FSPageLabelsNone = 0,
  FSPageLabelsDecimalNums = 1,
  FSPageLabelsUpperRomanNums = 2,
  FSPageLabelsLowerRomanNums = 3,
  FSPageLabelsUpperLetters = 4,
  FSPageLabelsLowerLetters = 5
};

@interface FSPageLabels : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithOther: (FSPageLabels*)other;
-(BOOL)isEmpty;
-(NSString *)getPageLabelTitle: (int)page_index;
-(BOOL)hasPageLabel: (int)page_index;
-(FSPageLabelsStyle)getPageLabelStyle: (int)page_index;
-(NSString *)getPageLabelPrefix: (int)page_index;
-(int)getPageLabelStart: (int)page_index;
-(void)setPageLabel: (int)page_index label_style: (FSPageLabelsStyle)label_style first_label_number: (int)first_label_number prefix_string: (NSString *)prefix_string;
-(void)removePageLabel: (int)page_index;
-(void)removeAll;
-(FSPDFNumberTree*)getNumberTree;

-(void)dealloc;

@end



@interface FSPSI : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithBitmap: (FSBitmap*)bitmap simulate: (BOOL)simulate;
-(id)initWithWidth: (int)width height: (int)height simulate: (BOOL)simulate;
-(id)initWithOther: (FSPSI*)other;
-(BOOL)isEmpty;
-(void)setCallback: (id<FSPSICallback>)callback;
-(void)setColor: (unsigned int)color;
-(void)setDiameter: (int)diameter;
-(void)setOpacity: (float)opacity;
-(void)addPoint: (FSPointF*)point type: (FSPathPointType)type pressure: (float)pressure;
-(FSRectF*)getContentsRect;
-(FSBitmap*)getBitmap;
-(FSPSInk*)convertToPDFAnnot: (FSPDFPage*)page annot_rect: (FSRectF*)annot_rect rotate: (FSRotation)rotate;

-(void)dealloc;

@end

@interface FSReadingBookmark : FSBase
@property (nonatomic, weak, getter=getTitle) NSString * title;
@property (nonatomic, getter=getPageIndex) int pageIndex;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSReadingBookmark*)other;
-(BOOL)isEmpty;
-(FSDateTime*)getDateTime: (BOOL)is_creation_date;
-(void)setDateTime: (FSDateTime*)date_time is_creation_date: (BOOL)is_creation_date;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSReflowPageFlags) {
  FSReflowPageNormal = 0x0,
  FSReflowPageWithImage = 0x1,
  FSReflowPageNoTruncate = 0x2
};

@interface FSReflowPage : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPage: (FSPDFPage*)page;
-(id)initWithOther: (FSReflowPage*)other;
-(BOOL)isEmpty;
-(void)setScreenSize: (float)width height: (float)height;
-(void)setScreenMargin: (int)left top: (int)top right: (int)right bottom: (int)bottom;
-(void)setZoom: (int)zoom;
-(void)setParseFlags: (unsigned int)flags;
-(void)setLineSpace: (float)line_space;
-(void)setImageScale: (float)image_scale;
-(void)setTopSpace: (float)top_space;
-(FSProgressive*)startParse: (id<FSPauseCallback>)pause;
-(float)getContentWidth;
-(float)getContentHeight;
-(FSMatrix2D*)getDisplayMatrix: (float)offset_x offset_y: (float)offset_y width: (int)width height: (int)height rotate: (FSRotation)rotate;
-(NSString *)getFocusData: (FSMatrix2D*)matrix point: (FSPointF*)point;
-(FSPointF*)getFocusPosition: (FSMatrix2D*)matrix focus_data: (NSString *)focus_data;
-(BOOL)isParsed;

-(void)dealloc;

@end

@interface FSWidgetChoiceOption : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getOption_label) NSString * option_label;
@property (nonatomic, getter=getSelected) BOOL selected;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOption_label: (NSString *)option_label selected: (BOOL)selected;
-(id)initWithOption: (FSWidgetChoiceOption*)option;
-(void)set: (NSString *)option_label selected: (BOOL)selected;
-(void)dealloc;

@end

@interface FSWidgetChoiceOptionArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSWidgetChoiceOptionArray*)other;
-(unsigned long)getSize;
-(FSWidgetChoiceOption*)getAt: (unsigned long)index;
-(void)add: (FSWidgetChoiceOption*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSWidgetChoiceOption*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSAppProviderCallbackAppInfo) {
  FSAppProviderCallbackAppInfoVersion = 0x0,
  FSAppProviderCallbackAppInfoLanguage = 0x01,
  FSAppProviderCallbackAppInfoPlatform = 0x02,
  FSAppProviderCallbackAppInfoVariation = 0x03,
  FSAppProviderCallbackAppInfoName = 0x04,
  FSAppProviderCallbackAppInfoType = 0x05
};

typedef NS_ENUM(NSInteger, FSAppProviderCallbackBeepType) {
  FSAppProviderCallbackBeepTypeError = 0,
  FSAppProviderCallbackBeepTypeWarning = 1,
  FSAppProviderCallbackBeepTypeQuestion = 2,
  FSAppProviderCallbackBeepTypeStatus = 3,
  FSAppProviderCallbackBeepTypeDefault = 4
};

typedef NS_ENUM(NSInteger, FSAppProviderCallbackStringID) {
  FSAppProviderCallbackStringIDValidateFailed = 1,
  FSAppProviderCallbackStringIDCalcOverride = 2,
  FSAppProviderCallbackStringIDModifyField = 3,
  FSAppProviderCallbackStringIDNotModifyField = 4,
  FSAppProviderCallbackStringIDAppName = 5,
  FSAppProviderCallbackStringIDImageFilter = 6,
  FSAppProviderCallbackStringIDUnknownCaught = 7,
  FSAppProviderCallbackStringIDUnableToSet = 8,
  FSAppProviderCallbackStringIDValueExcalmatory = 9,
  FSAppProviderCallbackStringIDInvalidEnumValue = 10,
  FSAppProviderCallbackStringIDUnsupportMethod = 11,
  FSAppProviderCallbackStringIDUnsupportProperty = 12,
  FSAppProviderCallbackStringIDInvalidPropertySetOperation = 13,
  FSAppProviderCallbackStringIDNotDefaultValue = 14,
  FSAppProviderCallbackStringIDUnableSetLanguage = 15,
  FSAppProviderCallbackStringIDUnableSetNumPages = 16,
  FSAppProviderCallbackStringIDUnableSetPlatformValue = 17,
  FSAppProviderCallbackStringIDUnableSetValidationsEnabledValue = 18,
  FSAppProviderCallbackStringIDUnableSetValidationsValue = 19,
  FSAppProviderCallbackStringIDUnableSetVersion = 20,
  FSAppProviderCallbackStringIDUnableSetReady = 21,
  FSAppProviderCallbackStringIDNumberOfOccur = 22,
  FSAppProviderCallbackStringIDUnableSetClassName = 23,
  FSAppProviderCallbackStringIDUnableSetLengthValue = 24,
  FSAppProviderCallbackStringIDUnsupportChar = 25,
  FSAppProviderCallbackStringIDBadSuffix = 26,
  FSAppProviderCallbackStringIDExpectedIdent = 27,
  FSAppProviderCallbackStringIDExpectedString = 28,
  FSAppProviderCallbackStringIDInvalidateChar = 29,
  FSAppProviderCallbackStringIDRedefinition = 30,
  FSAppProviderCallbackStringIDInvalidToken = 31,
  FSAppProviderCallbackStringIDInvalidExpression = 32,
  FSAppProviderCallbackStringIDUndefineIdentifier = 33,
  FSAppProviderCallbackStringIDInvalidateLeftValue = 34,
  FSAppProviderCallbackStringIDCompilerError = 35,
  FSAppProviderCallbackStringIDCannotModifyValue = 36,
  FSAppProviderCallbackStringIDParametersError = 37,
  FSAppProviderCallbackStringIDExpectedEndIf = 38,
  FSAppProviderCallbackStringIDUnexpectedExpression = 39,
  FSAppProviderCallbackStringIDConditionIsNull = 40,
  FSAppProviderCallbackStringIDIllegalBreak = 41,
  FSAppProviderCallbackStringIDIllegalContinue = 42,
  FSAppProviderCallbackStringIDExpectedOperator = 43,
  FSAppProviderCallbackStringIDDivideZero = 44,
  FSAppProviderCallbackStringIDCannotCovertToObject = 45,
  FSAppProviderCallbackStringIDNotFoundContainer = 46,
  FSAppProviderCallbackStringIDNotFoundProperty = 47,
  FSAppProviderCallbackStringIDNotFoundMethod = 48,
  FSAppProviderCallbackStringIDNotFoundConst = 49,
  FSAppProviderCallbackStringIDNotAssignObject = 50,
  FSAppProviderCallbackStringIDInvalidateInstruction = 51,
  FSAppProviderCallbackStringIDExpectedNumber = 52,
  FSAppProviderCallbackStringIDValidateOutOfArray = 53,
  FSAppProviderCallbackStringIDCannotAssign = 54,
  FSAppProviderCallbackStringIDNotFoundFunction = 55,
  FSAppProviderCallbackStringIDIsNotArray = 56,
  FSAppProviderCallbackStringIDOutOfArrayRange = 57,
  FSAppProviderCallbackStringIDNotSupportArrayCalculate = 58,
  FSAppProviderCallbackStringIDArgumentNotArray = 59,
  FSAppProviderCallbackStringIDArgumentExpectContainer = 60,
  FSAppProviderCallbackStringIDAccessProertyInNotObject = 61,
  FSAppProviderCallbackStringIDFunctionBuildIn = 62,
  FSAppProviderCallbackStringIDErrorMessage = 63,
  FSAppProviderCallbackStringIDIndexValueOutOfBounds = 64,
  FSAppProviderCallbackStringIDIncorrectNumberOfMethod = 65,
  FSAppProviderCallbackStringIDArgumentMismatch = 66,
  FSAppProviderCallbackStringIDInvalidEnumerate = 67,
  FSAppProviderCallbackStringIDInvalidAppend = 68,
  FSAppProviderCallbackStringIDSOMExpectedList = 69,
  FSAppProviderCallbackStringIDNotHaveProperty = 70,
  FSAppProviderCallbackStringIDInvalidNodeType = 71,
  FSAppProviderCallbackStringIDViolateBoundary = 72,
  FSAppProviderCallbackStringIDServerDeny = 73,
  FSAppProviderCallbackStringIDWeekDaySun = 74,
  FSAppProviderCallbackStringIDWeekDayMon = 75,
  FSAppProviderCallbackStringIDWeekDayTue = 76,
  FSAppProviderCallbackStringIDWeekDayWed = 77,
  FSAppProviderCallbackStringIDWeekDayThu = 78,
  FSAppProviderCallbackStringIDWeekDayFri = 79,
  FSAppProviderCallbackStringIDWeekDaySat = 80,
  FSAppProviderCallbackStringIDMonthJan = 81,
  FSAppProviderCallbackStringIDMonthFeb = 82,
  FSAppProviderCallbackStringIDMonthMarch = 83,
  FSAppProviderCallbackStringIDMonthApril = 84,
  FSAppProviderCallbackStringIDMonthMay = 85,
  FSAppProviderCallbackStringIDMonthJune = 86,
  FSAppProviderCallbackStringIDMonthJuly = 87,
  FSAppProviderCallbackStringIDMonthAug = 88,
  FSAppProviderCallbackStringIDMonthSep = 89,
  FSAppProviderCallbackStringIDMonthOct = 90,
  FSAppProviderCallbackStringIDMonthNov = 91,
  FSAppProviderCallbackStringIDMonthDec = 92,
  FSAppProviderCallbackStringIDToday = 93,
  FSAppProviderCallbackStringIDValidateLimit = 94,
  FSAppProviderCallbackStringIDValidateNullWarning = 95,
  FSAppProviderCallbackStringIDValidateNullError = 96,
  FSAppProviderCallbackStringIDValidateWarning = 97,
  FSAppProviderCallbackStringIDValidateError = 98,
  FSAppProviderCallbackStringIDValidateNumberError = 99,
  FSAppProviderCallbackStringIDScriptFailedError = 100,
  FSAppProviderCallbackStringIDScriptInvalidValue = 101,
  FSAppProviderCallbackStringIDSubmitValidateNullError = 102,
  FSAppProviderCallbackStringIDInvalidBarcodeValue = 103,
  FSAppProviderCallbackStringIDScriptArgumentMismatch = 104
};

typedef NS_ENUM(NSInteger, FSAppProviderCallbackMsgBoxIconType) {
  FSAppProviderCallbackMsgBoxIconError = 0,
  FSAppProviderCallbackMsgBoxIconWarning = 1,
  FSAppProviderCallbackMsgBoxIconQuestion = 2,
  FSAppProviderCallbackMsgBoxIconStatus = 3
};

typedef NS_ENUM(NSInteger, FSAppProviderCallbackMsgBoxButtonType) {
  FSAppProviderCallbackMsgBtnTypeOK = 0,
  FSAppProviderCallbackMsgBtnTypeOKCancel = 1,
  FSAppProviderCallbackMsgBtnTypeYesNo = 2,
  FSAppProviderCallbackMsgBtnTypeYesNoCancel = 3
};

typedef NS_ENUM(NSInteger, FSAppProviderCallbackMsgBoxButtonID) {
  FSAppProviderCallbackMsgBtnIDOK = 1,
  FSAppProviderCallbackMsgBtnIDCancel = 2,
  FSAppProviderCallbackMsgBtnIDNo = 3,
  FSAppProviderCallbackMsgBtnIDYes = 4
};



typedef NS_ENUM(NSInteger, FSDocProviderCallbackInvalidateFlag) {
  FSDocProviderCallbackInvalidateFlagAllPages = 0,
  FSDocProviderCallbackInvalidateFlagCurrentPage = 1
};

typedef NS_ENUM(NSInteger, FSDocProviderCallbackPrintOption) {
  FSDocProviderCallbackPrintOptionShowDialog = 0x00000001,
  FSDocProviderCallbackPrintOptionCanCancel = 0x00000002,
  FSDocProviderCallbackPrintOptionShrinkPage = 0x00000004,
  FSDocProviderCallbackPrintOptionAsImage = 0x00000008,
  FSDocProviderCallbackPrintOptionReverseOrder = 0x00000010,
  FSDocProviderCallbackPrintOptionPrintAnnot = 0x00000020
};

typedef NS_ENUM(NSInteger, FSDocProviderCallbackSubmitFormat) {
  FSDocProviderCallbackSubmitInXDP = 0,
  FSDocProviderCallbackSubmitInPDF = 1,
  FSDocProviderCallbackSubmitInUrlEncoded = 2,
  FSDocProviderCallbackSubmitInXFD = 3,
  FSDocProviderCallbackSubmitInXML = 4
};

typedef NS_ENUM(NSInteger, FSDocProviderCallbackTextEncoding) {
  FSDocProviderCallbackTextEncodingNone = 0,
  FSDocProviderCallbackTextEncodingBig5 = 1,
  FSDocProviderCallbackTextEncodingFontSpecific = 2,
  FSDocProviderCallbackTextEncodingGBK = 3,
  FSDocProviderCallbackTextEncodingGB18030 = 4,
  FSDocProviderCallbackTextEncodingGB2312 = 5,
  FSDocProviderCallbackTextEncodingISO8859NN = 6,
  FSDocProviderCallbackTextEncodingKSC5601 = 7,
  FSDocProviderCallbackTextEncodingShiftJIS = 8,
  FSDocProviderCallbackTextEncodingUCS2 = 9,
  FSDocProviderCallbackTextEncodingUTF16 = 10,
  FSDocProviderCallbackTextEncodingUTF8 = 11
};

typedef NS_ENUM(NSInteger, FSDocProviderCallbackPageViewEventType) {
  FSDocProviderCallbackPageViewEventTypeAdded = 0,
  FSDocProviderCallbackPageViewEventTypeRemoved = 1,
  FSDocProviderCallbackPageViewEventTypeAllRemoved = 2
};

typedef NS_ENUM(NSInteger, FSDocProviderCallbackWidgetEventType) {
  FSDocProviderCallbackWidgetEventTypeAdded = 0,
  FSDocProviderCallbackWidgetEventTypeBeforeRemoved = 1
};



typedef NS_ENUM(NSInteger, FSXFADocEventType) {
  FSXFADocEventTypeUnknown = 0,
  FSXFADocEventTypePostPrint = 1,
  FSXFADocEventTypePrePrint = 2,
  FSXFADocEventTypeClick = 3,
  FSXFADocEventTypeChange = 4,
  FSXFADocEventTypeDocClose = 5,
  FSXFADocEventTypeDocReady = 6,
  FSXFADocEventTypeEnter = 7,
  FSXFADocEventTypeExit = 8,
  FSXFADocEventTypeFull = 9,
  FSXFADocEventTypeIndexChange = 10,
  FSXFADocEventTypeInitialize = 11,
  FSXFADocEventTypeMouseDown = 12,
  FSXFADocEventTypeMouseEnter = 13,
  FSXFADocEventTypeMouseExit = 14,
  FSXFADocEventTypeMouseUp = 15,
  FSXFADocEventTypePostExecute = 16,
  FSXFADocEventTypePostOpen = 17,
  FSXFADocEventTypePostSave = 18,
  FSXFADocEventTypePostSign = 19,
  FSXFADocEventTypePostSubmit = 20,
  FSXFADocEventTypePreExecute = 21,
  FSXFADocEventTypePreOpen = 22,
  FSXFADocEventTypePreSave = 23,
  FSXFADocEventTypePreSign = 24,
  FSXFADocEventTypePreSubmit = 25,
  FSXFADocEventTypeReady = 26,
  FSXFADocEventTypeValidationState = 27,
  FSXFADocEventTypeInitCalculate = 28,
  FSXFADocEventTypeInitVariables = 29,
  FSXFADocEventTypeCalculate = 30,
  FSXFADocEventTypeValidate = 31
};

typedef NS_ENUM(NSInteger, FSXFADocType) {
  FSXFADocDynamic = 0,
  FSXFADocStatic = 1,
  FSXFADocXDP = 2
};

typedef NS_ENUM(NSInteger, FSXFADocExportDataType) {
  FSXFADocExportDataTypeXML = 0,
  FSXFADocExportDataTypeStaticXDP = 1,
  FSXFADocExportDataTypeXDP = 2
};

@interface FSXFADoc : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document xfa_doc_provider_handler: (id<FSDocProviderCallback>)xfa_doc_provider_handler;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithOther: (FSXFADoc*)other;
-(BOOL)isEmpty;
-(FSProgressive*)startLoad: (id<FSPauseCallback>)pause;
-(void)setDocProviderCallback: (id<FSDocProviderCallback>)doc_provider_callback;
-(FSXFADocType)getType;
-(int)getPageCount;
-(FSXFAPage*)getPage: (int)page_index;
-(BOOL)exportData: (NSString *)output_file_path export_type: (FSXFADocExportDataType)export_type;
-(BOOL)exportDataWithStreamCallback: (id<FSFileWriterCallback>)stream export_type: (FSXFADocExportDataType)export_type;
-(void)setPDFPath: (NSString *)pdf_file_path;
-(BOOL)importData: (NSString *)file_path;
-(BOOL)importDataWithReaderCallback: (id<FSFileReaderCallback>)file_reader;
-(void)resetForm;
-(void)flattenTo: (NSString *)output_file_path;
-(void)flattenToWithStreamCallback: (id<FSFileStreamCallback>)stream;
-(void)processEvent: (FSXFADocEventType)event_type;
-(void)setFocus: (FSXFAWidget*)xfa_widget;
-(void)killFocus;
-(FSXFAWidget*)getWidgetByFullName: (NSString *)full_name;

-(void)dealloc;

@end

@interface FSXFAPage : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSXFAPage*)other;
-(BOOL)isEmpty;
-(FSMatrix2D*)getDisplayMatrix: (int)left top: (int)top width: (int)width height: (int)height rotate: (FSRotation)rotate;
-(float)getWidth;
-(float)getHeight;
-(FSXFAWidget*)getWidgetAtDevicePoint: (FSMatrix2D*)matrix device_point: (FSPointF*)device_point tolerance: (float)tolerance;
-(int)getIndex;
-(int)getWidgetCount;
-(FSXFAWidget*)getWidget: (int)widget_index;
-(FSXFAWidget*)getWidgetByFullName: (NSString *)full_name;
-(FSXFAWidget*)getFirstWidget;
-(FSXFAWidget*)getLastWidget;
-(FSXFAWidget*)getNextWidget: (FSXFAWidget*)widget;
-(FSXFAWidget*)getPrevWidget: (FSXFAWidget*)widget;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSXFAWidgetModifyInfoWidgetElement) {
  FSXFAWidgetModifyInfoWidgetElementPs = 0,
  FSXFAWidgetModifyInfoWidgetElementTo = 1,
  FSXFAWidgetModifyInfoWidgetElementUi = 2,
  FSXFAWidgetModifyInfoWidgetElementRecordSet = 3,
  FSXFAWidgetModifyInfoWidgetElementSubsetBelow = 4,
  FSXFAWidgetModifyInfoWidgetElementSubformSet = 5,
  FSXFAWidgetModifyInfoWidgetElementAdobeExtensionLevel = 6,
  FSXFAWidgetModifyInfoWidgetElementTypeface = 7,
  FSXFAWidgetModifyInfoWidgetElementBreak = 8,
  FSXFAWidgetModifyInfoWidgetElementFontInfo = 9,
  FSXFAWidgetModifyInfoWidgetElementNumberPattern = 10,
  FSXFAWidgetModifyInfoWidgetElementDynamicRender = 11,
  FSXFAWidgetModifyInfoWidgetElementPrintScaling = 12,
  FSXFAWidgetModifyInfoWidgetElementCheckButton = 13,
  FSXFAWidgetModifyInfoWidgetElementDatePatterns = 14,
  FSXFAWidgetModifyInfoWidgetElementSourceSet = 15,
  FSXFAWidgetModifyInfoWidgetElementAmd = 16,
  FSXFAWidgetModifyInfoWidgetElementArc = 17,
  FSXFAWidgetModifyInfoWidgetElementDay = 18,
  FSXFAWidgetModifyInfoWidgetElementEra = 19,
  FSXFAWidgetModifyInfoWidgetElementJog = 20,
  FSXFAWidgetModifyInfoWidgetElementLog = 21,
  FSXFAWidgetModifyInfoWidgetElementMap = 22,
  FSXFAWidgetModifyInfoWidgetElementMdp = 23,
  FSXFAWidgetModifyInfoWidgetElementBreakBefore = 24,
  FSXFAWidgetModifyInfoWidgetElementOid = 25,
  FSXFAWidgetModifyInfoWidgetElementPcl = 26,
  FSXFAWidgetModifyInfoWidgetElementPdf = 27,
  FSXFAWidgetModifyInfoWidgetElementRef = 28,
  FSXFAWidgetModifyInfoWidgetElementUri = 29,
  FSXFAWidgetModifyInfoWidgetElementXdc = 30,
  FSXFAWidgetModifyInfoWidgetElementXdp = 31,
  FSXFAWidgetModifyInfoWidgetElementXfa = 32,
  FSXFAWidgetModifyInfoWidgetElementXsl = 33,
  FSXFAWidgetModifyInfoWidgetElementZpl = 34,
  FSXFAWidgetModifyInfoWidgetElementCache = 35,
  FSXFAWidgetModifyInfoWidgetElementMargin = 36,
  FSXFAWidgetModifyInfoWidgetElementKeyUsage = 37,
  FSXFAWidgetModifyInfoWidgetElementExclude = 38,
  FSXFAWidgetModifyInfoWidgetElementChoiceList = 39,
  FSXFAWidgetModifyInfoWidgetElementLevel = 40,
  FSXFAWidgetModifyInfoWidgetElementLabelPrinter = 41,
  FSXFAWidgetModifyInfoWidgetElementCalendarSymbols = 42,
  FSXFAWidgetModifyInfoWidgetElementPara = 43,
  FSXFAWidgetModifyInfoWidgetElementPart = 44,
  FSXFAWidgetModifyInfoWidgetElementPdfa = 45,
  FSXFAWidgetModifyInfoWidgetElementFilter = 46,
  FSXFAWidgetModifyInfoWidgetElementPresent = 47,
  FSXFAWidgetModifyInfoWidgetElementPagination = 48,
  FSXFAWidgetModifyInfoWidgetElementEncoding = 49,
  FSXFAWidgetModifyInfoWidgetElementEvent = 50,
  FSXFAWidgetModifyInfoWidgetElementWhitespace = 51,
  FSXFAWidgetModifyInfoWidgetElementDefaultUi = 52,
  FSXFAWidgetModifyInfoWidgetElementDataModel = 53,
  FSXFAWidgetModifyInfoWidgetElementBarcode = 54,
  FSXFAWidgetModifyInfoWidgetElementTimePattern = 55,
  FSXFAWidgetModifyInfoWidgetElementBatchOutput = 56,
  FSXFAWidgetModifyInfoWidgetElementEnforce = 57,
  FSXFAWidgetModifyInfoWidgetElementCurrencySymbols = 58,
  FSXFAWidgetModifyInfoWidgetElementAddSilentPrint = 59,
  FSXFAWidgetModifyInfoWidgetElementRename = 60,
  FSXFAWidgetModifyInfoWidgetElementOperation = 61,
  FSXFAWidgetModifyInfoWidgetElementTypefaces = 62,
  FSXFAWidgetModifyInfoWidgetElementSubjectDNs = 63,
  FSXFAWidgetModifyInfoWidgetElementIssuers = 64,
  FSXFAWidgetModifyInfoWidgetElementSignaturePseudoModel = 65,
  FSXFAWidgetModifyInfoWidgetElementWsdlConnection = 66,
  FSXFAWidgetModifyInfoWidgetElementDebug = 67,
  FSXFAWidgetModifyInfoWidgetElementDelta = 68,
  FSXFAWidgetModifyInfoWidgetElementEraNames = 69,
  FSXFAWidgetModifyInfoWidgetElementModifyAnnots = 70,
  FSXFAWidgetModifyInfoWidgetElementStartNode = 71,
  FSXFAWidgetModifyInfoWidgetElementButton = 72,
  FSXFAWidgetModifyInfoWidgetElementFormat = 73,
  FSXFAWidgetModifyInfoWidgetElementBorder = 74,
  FSXFAWidgetModifyInfoWidgetElementArea = 75,
  FSXFAWidgetModifyInfoWidgetElementHyphenation = 76,
  FSXFAWidgetModifyInfoWidgetElementText = 77,
  FSXFAWidgetModifyInfoWidgetElementTime = 78,
  FSXFAWidgetModifyInfoWidgetElementType = 79,
  FSXFAWidgetModifyInfoWidgetElementOverprint = 80,
  FSXFAWidgetModifyInfoWidgetElementCertificates = 81,
  FSXFAWidgetModifyInfoWidgetElementEncryptionMethods = 82,
  FSXFAWidgetModifyInfoWidgetElementSetProperty = 83,
  FSXFAWidgetModifyInfoWidgetElementPrinterName = 84,
  FSXFAWidgetModifyInfoWidgetElementStartPage = 85,
  FSXFAWidgetModifyInfoWidgetElementPageOffset = 86,
  FSXFAWidgetModifyInfoWidgetElementDateTime = 87,
  FSXFAWidgetModifyInfoWidgetElementComb = 88,
  FSXFAWidgetModifyInfoWidgetElementPattern = 89,
  FSXFAWidgetModifyInfoWidgetElementIfEmpty = 90,
  FSXFAWidgetModifyInfoWidgetElementSuppressBanner = 91,
  FSXFAWidgetModifyInfoWidgetElementOutputBin = 92,
  FSXFAWidgetModifyInfoWidgetElementField = 93,
  FSXFAWidgetModifyInfoWidgetElementAgent = 94,
  FSXFAWidgetModifyInfoWidgetElementOutputXSL = 95,
  FSXFAWidgetModifyInfoWidgetElementAdjustData = 96,
  FSXFAWidgetModifyInfoWidgetElementAutoSave = 97,
  FSXFAWidgetModifyInfoWidgetElementContentArea = 98,
  FSXFAWidgetModifyInfoWidgetElementEventPseudoModel = 99,
  FSXFAWidgetModifyInfoWidgetElementWsdlAddress = 100,
  FSXFAWidgetModifyInfoWidgetElementSolid = 101,
  FSXFAWidgetModifyInfoWidgetElementDateTimeSymbols = 102,
  FSXFAWidgetModifyInfoWidgetElementEncryptionLevel = 103,
  FSXFAWidgetModifyInfoWidgetElementEdge = 104,
  FSXFAWidgetModifyInfoWidgetElementStipple = 105,
  FSXFAWidgetModifyInfoWidgetElementAttributes = 106,
  FSXFAWidgetModifyInfoWidgetElementVersionControl = 107,
  FSXFAWidgetModifyInfoWidgetElementMeridiem = 108,
  FSXFAWidgetModifyInfoWidgetElementExclGroup = 109,
  FSXFAWidgetModifyInfoWidgetElementToolTip = 110,
  FSXFAWidgetModifyInfoWidgetElementCompress = 111,
  FSXFAWidgetModifyInfoWidgetElementReason = 112,
  FSXFAWidgetModifyInfoWidgetElementExecute = 113,
  FSXFAWidgetModifyInfoWidgetElementContentCopy = 114,
  FSXFAWidgetModifyInfoWidgetElementDateTimeEdit = 115,
  FSXFAWidgetModifyInfoWidgetElementConfig = 116,
  FSXFAWidgetModifyInfoWidgetElementImage = 117,
  FSXFAWidgetModifyInfoWidgetElementSharpxHTML = 118,
  FSXFAWidgetModifyInfoWidgetElementNumberOfCopies = 119,
  FSXFAWidgetModifyInfoWidgetElementBehaviorOverride = 120,
  FSXFAWidgetModifyInfoWidgetElementTimeStamp = 121,
  FSXFAWidgetModifyInfoWidgetElementMonth = 122,
  FSXFAWidgetModifyInfoWidgetElementViewerPreferences = 123,
  FSXFAWidgetModifyInfoWidgetElementScriptModel = 124,
  FSXFAWidgetModifyInfoWidgetElementDecimal = 125,
  FSXFAWidgetModifyInfoWidgetElementSubform = 126,
  FSXFAWidgetModifyInfoWidgetElementSelect = 127,
  FSXFAWidgetModifyInfoWidgetElementWindow = 128,
  FSXFAWidgetModifyInfoWidgetElementLocaleSet = 129,
  FSXFAWidgetModifyInfoWidgetElementHandler = 130,
  FSXFAWidgetModifyInfoWidgetElementHostPseudoModel = 131,
  FSXFAWidgetModifyInfoWidgetElementPresence = 132,
  FSXFAWidgetModifyInfoWidgetElementRecord = 133,
  FSXFAWidgetModifyInfoWidgetElementEmbed = 134,
  FSXFAWidgetModifyInfoWidgetElementVersion = 135,
  FSXFAWidgetModifyInfoWidgetElementCommand = 136,
  FSXFAWidgetModifyInfoWidgetElementCopies = 137,
  FSXFAWidgetModifyInfoWidgetElementStaple = 138,
  FSXFAWidgetModifyInfoWidgetElementSubmitFormat = 139,
  FSXFAWidgetModifyInfoWidgetElementBoolean = 140,
  FSXFAWidgetModifyInfoWidgetElementMessage = 141,
  FSXFAWidgetModifyInfoWidgetElementOutput = 142,
  FSXFAWidgetModifyInfoWidgetElementPsMap = 143,
  FSXFAWidgetModifyInfoWidgetElementExcludeNS = 144,
  FSXFAWidgetModifyInfoWidgetElementAssist = 145,
  FSXFAWidgetModifyInfoWidgetElementPicture = 146,
  FSXFAWidgetModifyInfoWidgetElementTraversal = 147,
  FSXFAWidgetModifyInfoWidgetElementSilentPrint = 148,
  FSXFAWidgetModifyInfoWidgetElementWebClient = 149,
  FSXFAWidgetModifyInfoWidgetElementLayoutPseudoModel = 150,
  FSXFAWidgetModifyInfoWidgetElementProducer = 151,
  FSXFAWidgetModifyInfoWidgetElementCorner = 152,
  FSXFAWidgetModifyInfoWidgetElementMsgId = 153,
  FSXFAWidgetModifyInfoWidgetElementColor = 154,
  FSXFAWidgetModifyInfoWidgetElementKeep = 155,
  FSXFAWidgetModifyInfoWidgetElementQuery = 156,
  FSXFAWidgetModifyInfoWidgetElementInsert = 157,
  FSXFAWidgetModifyInfoWidgetElementImageEdit = 158,
  FSXFAWidgetModifyInfoWidgetElementValidate = 159,
  FSXFAWidgetModifyInfoWidgetElementDigestMethods = 160,
  FSXFAWidgetModifyInfoWidgetElementNumberPatterns = 161,
  FSXFAWidgetModifyInfoWidgetElementPageSet = 162,
  FSXFAWidgetModifyInfoWidgetElementInteger = 163,
  FSXFAWidgetModifyInfoWidgetElementSoapAddress = 164,
  FSXFAWidgetModifyInfoWidgetElementEquate = 165,
  FSXFAWidgetModifyInfoWidgetElementFormFieldFilling = 166,
  FSXFAWidgetModifyInfoWidgetElementPageRange = 167,
  FSXFAWidgetModifyInfoWidgetElementUpdate = 168,
  FSXFAWidgetModifyInfoWidgetElementConnectString = 169,
  FSXFAWidgetModifyInfoWidgetElementMode = 170,
  FSXFAWidgetModifyInfoWidgetElementLayout = 171,
  FSXFAWidgetModifyInfoWidgetElementSharpxml = 172,
  FSXFAWidgetModifyInfoWidgetElementXsdConnection = 173,
  FSXFAWidgetModifyInfoWidgetElementTraverse = 174,
  FSXFAWidgetModifyInfoWidgetElementEncodings = 175,
  FSXFAWidgetModifyInfoWidgetElementTemplate = 176,
  FSXFAWidgetModifyInfoWidgetElementAcrobat = 177,
  FSXFAWidgetModifyInfoWidgetElementValidationMessaging = 178,
  FSXFAWidgetModifyInfoWidgetElementSigning = 179,
  FSXFAWidgetModifyInfoWidgetElementDataWindow = 180,
  FSXFAWidgetModifyInfoWidgetElementScript = 181,
  FSXFAWidgetModifyInfoWidgetElementAddViewerPreferences = 182,
  FSXFAWidgetModifyInfoWidgetElementAlwaysEmbed = 183,
  FSXFAWidgetModifyInfoWidgetElementPasswordEdit = 184,
  FSXFAWidgetModifyInfoWidgetElementNumericEdit = 185,
  FSXFAWidgetModifyInfoWidgetElementEncryptionMethod = 186,
  FSXFAWidgetModifyInfoWidgetElementChange = 187,
  FSXFAWidgetModifyInfoWidgetElementPageArea = 188,
  FSXFAWidgetModifyInfoWidgetElementSubmitUrl = 189,
  FSXFAWidgetModifyInfoWidgetElementOids = 190,
  FSXFAWidgetModifyInfoWidgetElementSignature = 191,
  FSXFAWidgetModifyInfoWidgetElementADBE_JSConsole = 192,
  FSXFAWidgetModifyInfoWidgetElementCaption = 193,
  FSXFAWidgetModifyInfoWidgetElementRelevant = 194,
  FSXFAWidgetModifyInfoWidgetElementFlipLabel = 195,
  FSXFAWidgetModifyInfoWidgetElementExData = 196,
  FSXFAWidgetModifyInfoWidgetElementDayNames = 197,
  FSXFAWidgetModifyInfoWidgetElementSoapAction = 198,
  FSXFAWidgetModifyInfoWidgetElementDefaultTypeface = 199,
  FSXFAWidgetModifyInfoWidgetElementManifest = 200,
  FSXFAWidgetModifyInfoWidgetElementOverflow = 201,
  FSXFAWidgetModifyInfoWidgetElementLinear = 202,
  FSXFAWidgetModifyInfoWidgetElementCurrencySymbol = 203,
  FSXFAWidgetModifyInfoWidgetElementDelete = 204,
  FSXFAWidgetModifyInfoWidgetElementDeltas = 205,
  FSXFAWidgetModifyInfoWidgetElementDigestMethod = 206,
  FSXFAWidgetModifyInfoWidgetElementInstanceManager = 207,
  FSXFAWidgetModifyInfoWidgetElementEquateRange = 208,
  FSXFAWidgetModifyInfoWidgetElementMedium = 209,
  FSXFAWidgetModifyInfoWidgetElementTextEdit = 210,
  FSXFAWidgetModifyInfoWidgetElementTemplateCache = 211,
  FSXFAWidgetModifyInfoWidgetElementCompressObjectStream = 212,
  FSXFAWidgetModifyInfoWidgetElementDataValue = 213,
  FSXFAWidgetModifyInfoWidgetElementAccessibleContent = 214,
  FSXFAWidgetModifyInfoWidgetElementNodeList = 215,
  FSXFAWidgetModifyInfoWidgetElementIncludeXDPContent = 216,
  FSXFAWidgetModifyInfoWidgetElementXmlConnection = 217,
  FSXFAWidgetModifyInfoWidgetElementValidateApprovalSignatures = 218,
  FSXFAWidgetModifyInfoWidgetElementSignData = 219,
  FSXFAWidgetModifyInfoWidgetElementPackets = 220,
  FSXFAWidgetModifyInfoWidgetElementDatePattern = 221,
  FSXFAWidgetModifyInfoWidgetElementDuplexOption = 222,
  FSXFAWidgetModifyInfoWidgetElementBase = 223,
  FSXFAWidgetModifyInfoWidgetElementBind = 224,
  FSXFAWidgetModifyInfoWidgetElementCompression = 225,
  FSXFAWidgetModifyInfoWidgetElementUser = 226,
  FSXFAWidgetModifyInfoWidgetElementRectangle = 227,
  FSXFAWidgetModifyInfoWidgetElementEffectiveOutputPolicy = 228,
  FSXFAWidgetModifyInfoWidgetElementADBE_JSDebugger = 229,
  FSXFAWidgetModifyInfoWidgetElementAcrobat7 = 230,
  FSXFAWidgetModifyInfoWidgetElementInteractive = 231,
  FSXFAWidgetModifyInfoWidgetElementLocale = 232,
  FSXFAWidgetModifyInfoWidgetElementCurrentPage = 233,
  FSXFAWidgetModifyInfoWidgetElementData = 234,
  FSXFAWidgetModifyInfoWidgetElementDate = 235,
  FSXFAWidgetModifyInfoWidgetElementDesc = 236,
  FSXFAWidgetModifyInfoWidgetElementEncrypt = 237,
  FSXFAWidgetModifyInfoWidgetElementDraw = 238,
  FSXFAWidgetModifyInfoWidgetElementEncryption = 239,
  FSXFAWidgetModifyInfoWidgetElementMeridiemNames = 240,
  FSXFAWidgetModifyInfoWidgetElementMessaging = 241,
  FSXFAWidgetModifyInfoWidgetElementSpeak = 242,
  FSXFAWidgetModifyInfoWidgetElementDataGroup = 243,
  FSXFAWidgetModifyInfoWidgetElementCommon = 244,
  FSXFAWidgetModifyInfoWidgetElementSharptext = 245,
  FSXFAWidgetModifyInfoWidgetElementPaginationOverride = 246,
  FSXFAWidgetModifyInfoWidgetElementReasons = 247,
  FSXFAWidgetModifyInfoWidgetElementSignatureProperties = 248,
  FSXFAWidgetModifyInfoWidgetElementThreshold = 249,
  FSXFAWidgetModifyInfoWidgetElementAppearanceFilter = 250,
  FSXFAWidgetModifyInfoWidgetElementFill = 251,
  FSXFAWidgetModifyInfoWidgetElementFont = 252,
  FSXFAWidgetModifyInfoWidgetElementForm = 253,
  FSXFAWidgetModifyInfoWidgetElementMediumInfo = 254,
  FSXFAWidgetModifyInfoWidgetElementCertificate = 255,
  FSXFAWidgetModifyInfoWidgetElementPassword = 256,
  FSXFAWidgetModifyInfoWidgetElementRunScripts = 257,
  FSXFAWidgetModifyInfoWidgetElementTrace = 258,
  FSXFAWidgetModifyInfoWidgetElementFloat = 259,
  FSXFAWidgetModifyInfoWidgetElementRenderPolicy = 260,
  FSXFAWidgetModifyInfoWidgetElementLogPseudoModel = 261,
  FSXFAWidgetModifyInfoWidgetElementDestination = 262,
  FSXFAWidgetModifyInfoWidgetElementValue = 263,
  FSXFAWidgetModifyInfoWidgetElementBookend = 264,
  FSXFAWidgetModifyInfoWidgetElementExObject = 265,
  FSXFAWidgetModifyInfoWidgetElementXMLData = 266,
  FSXFAWidgetModifyInfoWidgetElementOpenAction = 267,
  FSXFAWidgetModifyInfoWidgetElementNeverEmbed = 268,
  FSXFAWidgetModifyInfoWidgetElementBindItems = 269,
  FSXFAWidgetModifyInfoWidgetElementCalculate = 270,
  FSXFAWidgetModifyInfoWidgetElementPrint = 271,
  FSXFAWidgetModifyInfoWidgetElementExtras = 272,
  FSXFAWidgetModifyInfoWidgetElementProto = 273,
  FSXFAWidgetModifyInfoWidgetElementDSigData = 274,
  FSXFAWidgetModifyInfoWidgetElementCreator = 275,
  FSXFAWidgetModifyInfoWidgetElementConnect = 276,
  FSXFAWidgetModifyInfoWidgetElementPermissions = 277,
  FSXFAWidgetModifyInfoWidgetElementConnectionSet = 278,
  FSXFAWidgetModifyInfoWidgetElementSubmit = 279,
  FSXFAWidgetModifyInfoWidgetElementRange = 280,
  FSXFAWidgetModifyInfoWidgetElementLinearized = 281,
  FSXFAWidgetModifyInfoWidgetElementPacket = 282,
  FSXFAWidgetModifyInfoWidgetElementRootElement = 283,
  FSXFAWidgetModifyInfoWidgetElementPlaintextMetadata = 284,
  FSXFAWidgetModifyInfoWidgetElementNumberSymbols = 285,
  FSXFAWidgetModifyInfoWidgetElementPrintHighQuality = 286,
  FSXFAWidgetModifyInfoWidgetElementDriver = 287,
  FSXFAWidgetModifyInfoWidgetElementIncrementalLoad = 288,
  FSXFAWidgetModifyInfoWidgetElementSubjectDN = 289,
  FSXFAWidgetModifyInfoWidgetElementCompressLogicalStructure = 290,
  FSXFAWidgetModifyInfoWidgetElementIncrementalMerge = 291,
  FSXFAWidgetModifyInfoWidgetElementRadial = 292,
  FSXFAWidgetModifyInfoWidgetElementVariables = 293,
  FSXFAWidgetModifyInfoWidgetElementTimePatterns = 294,
  FSXFAWidgetModifyInfoWidgetElementEffectiveInputPolicy = 295,
  FSXFAWidgetModifyInfoWidgetElementNameAttr = 296,
  FSXFAWidgetModifyInfoWidgetElementConformance = 297,
  FSXFAWidgetModifyInfoWidgetElementTransform = 298,
  FSXFAWidgetModifyInfoWidgetElementLockDocument = 299,
  FSXFAWidgetModifyInfoWidgetElementBreakAfter = 300,
  FSXFAWidgetModifyInfoWidgetElementLine = 301,
  FSXFAWidgetModifyInfoWidgetElementList = 302,
  FSXFAWidgetModifyInfoWidgetElementSource = 303,
  FSXFAWidgetModifyInfoWidgetElementOccur = 304,
  FSXFAWidgetModifyInfoWidgetElementPickTrayByPDFSize = 305,
  FSXFAWidgetModifyInfoWidgetElementMonthNames = 306,
  FSXFAWidgetModifyInfoWidgetElementSeverity = 307,
  FSXFAWidgetModifyInfoWidgetElementGroupParent = 308,
  FSXFAWidgetModifyInfoWidgetElementEncryptData = 309,
  FSXFAWidgetModifyInfoWidgetElementDocumentAssembly = 310,
  FSXFAWidgetModifyInfoWidgetElementNumberSymbol = 311,
  FSXFAWidgetModifyInfoWidgetElementTagged = 312,
  FSXFAWidgetModifyInfoWidgetElementItems = 313
};

typedef NS_ENUM(NSInteger, FSXFAWidgetModifyInfoWidgetAttributeType) {
  FSXFAWidgetModifyInfoWidgetAttributeTypeH = 0,
  FSXFAWidgetModifyInfoWidgetAttributeTypeW = 1,
  FSXFAWidgetModifyInfoWidgetAttributeTypeX = 2,
  FSXFAWidgetModifyInfoWidgetAttributeTypeY = 3,
  FSXFAWidgetModifyInfoWidgetAttributeTypeLineThrough = 4,
  FSXFAWidgetModifyInfoWidgetAttributeTypeLineHAlign = 5,
  FSXFAWidgetModifyInfoWidgetAttributeTypeTypeface = 6,
  FSXFAWidgetModifyInfoWidgetAttributeTypeFontHorizontalScale = 7,
  FSXFAWidgetModifyInfoWidgetAttributeTypeTextIndent = 8,
  FSXFAWidgetModifyInfoWidgetAttributeTypeLeftInset = 9,
  FSXFAWidgetModifyInfoWidgetAttributeTypeBottomInset = 10,
  FSXFAWidgetModifyInfoWidgetAttributeTypeAllowRichText = 11,
  FSXFAWidgetModifyInfoWidgetAttributeTypeTopInset = 12,
  FSXFAWidgetModifyInfoWidgetAttributeTypeAccess = 13,
  FSXFAWidgetModifyInfoWidgetAttributeTypeMarginRight = 14,
  FSXFAWidgetModifyInfoWidgetAttributeTypeRotate = 15,
  FSXFAWidgetModifyInfoWidgetAttributeTypeUnderline = 16,
  FSXFAWidgetModifyInfoWidgetAttributeTypeBaselineShift = 17,
  FSXFAWidgetModifyInfoWidgetAttributeTypeOverlinePeriod = 18,
  FSXFAWidgetModifyInfoWidgetAttributeTypeFracDigits = 19,
  FSXFAWidgetModifyInfoWidgetAttributeTypeMarginLeft = 20,
  FSXFAWidgetModifyInfoWidgetAttributeTypeStroke = 21,
  FSXFAWidgetModifyInfoWidgetAttributeTypePresence = 22,
  FSXFAWidgetModifyInfoWidgetAttributeTypeMultiLine = 23,
  FSXFAWidgetModifyInfoWidgetAttributeTypeSpaceBelow = 24,
  FSXFAWidgetModifyInfoWidgetAttributeTypeNumberOfCells = 25,
  FSXFAWidgetModifyInfoWidgetAttributeTypeLetterSpacing = 26,
  FSXFAWidgetModifyInfoWidgetAttributeTypePasswordChar = 27,
  FSXFAWidgetModifyInfoWidgetAttributeTypeVAlign = 28,
  FSXFAWidgetModifyInfoWidgetAttributeTypeMaxH = 29,
  FSXFAWidgetModifyInfoWidgetAttributeTypeMaxW = 30,
  FSXFAWidgetModifyInfoWidgetAttributeTypeMinH = 31,
  FSXFAWidgetModifyInfoWidgetAttributeTypeMinW = 32,
  FSXFAWidgetModifyInfoWidgetAttributeTypeLayout = 33,
  FSXFAWidgetModifyInfoWidgetAttributeTypeRightInset = 34,
  FSXFAWidgetModifyInfoWidgetAttributeTypeLineThroughPeriod = 35,
  FSXFAWidgetModifyInfoWidgetAttributeTypeShape = 36,
  FSXFAWidgetModifyInfoWidgetAttributeTypeBorderWidth = 37,
  FSXFAWidgetModifyInfoWidgetAttributeTypeLocale = 38,
  FSXFAWidgetModifyInfoWidgetAttributeTypeWeight = 39,
  FSXFAWidgetModifyInfoWidgetAttributeTypeUnderlinePeriod = 40,
  FSXFAWidgetModifyInfoWidgetAttributeTypeOverline = 42,
  FSXFAWidgetModifyInfoWidgetAttributeTypeLineHeight = 43,
  FSXFAWidgetModifyInfoWidgetAttributeTypeValue = 44,
  FSXFAWidgetModifyInfoWidgetAttributeTypeTextEncoding = 45,
  FSXFAWidgetModifyInfoWidgetAttributeTypeLeadDigits = 46,
  FSXFAWidgetModifyInfoWidgetAttributeTypeSpaceAbove = 47,
  FSXFAWidgetModifyInfoWidgetAttributeTypePlacement = 48,
  FSXFAWidgetModifyInfoWidgetAttributeTypeBorderColor = 49,
  FSXFAWidgetModifyInfoWidgetAttributeTypeFillColor = 50,
  FSXFAWidgetModifyInfoWidgetAttributeTypeFontColor = 51,
  FSXFAWidgetModifyInfoWidgetAttributeTypeUnknown = 52
};

@interface FSXFAWidgetModifyInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getEvent_type) FSXFADocEventType event_type;
@property (nonatomic, getter=getPage_index) int page_index;
@property (nonatomic, getter=getElement) FSXFAWidgetModifyInfoWidgetElement element;
@property (nonatomic, getter=getAttribute_type) FSXFAWidgetModifyInfoWidgetAttributeType attribute_type;
@property (nonatomic, weak, getter=getOld_value) NSString * old_value;
@property (nonatomic, weak, getter=getNew_value) NSString * new_value;
@property (nonatomic, weak, getter=getWidget_name) NSString * widget_name;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSXFAWidgetModifyInfo*)other;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSXFAWidgetHitTestArea) {
  FSXFAWidgetHitTestAreaUnknown = 0,
  FSXFAWidgetHitTestAreaClient = 1,
  FSXFAWidgetHitTestAreaTitleBar = 2,
  FSXFAWidgetHitTestAreaHyperLink = 3
};

typedef NS_ENUM(NSInteger, FSXFAWidgetWidgetType) {
  FSXFAWidgetWidgetTypeBarcode = 0,
  FSXFAWidgetWidgetTypePushButton = 1,
  FSXFAWidgetWidgetTypeCheckButton = 2,
  FSXFAWidgetWidgetTypeArc = 3,
  FSXFAWidgetWidgetTypeDateTimeEdit = 4,
  FSXFAWidgetWidgetTypeNumericEdit = 5,
  FSXFAWidgetWidgetTypeSignature = 6,
  FSXFAWidgetWidgetTypeChoiceList = 7,
  FSXFAWidgetWidgetTypeImageEdit = 8,
  FSXFAWidgetWidgetTypeLine = 9,
  FSXFAWidgetWidgetTypePasswordEdit = 10,
  FSXFAWidgetWidgetTypeRadioButton = 11,
  FSXFAWidgetWidgetTypeRectangle = 12,
  FSXFAWidgetWidgetTypeTextEdit = 13,
  FSXFAWidgetWidgetTypeUnknown = 14,
  FSXFAWidgetWidgetTypeExclGroup = 15,
  FSXFAWidgetWidgetTypeImage = 16
};

typedef NS_ENUM(NSInteger, FSXFAWidgetPresenceProperty) {
  FSXFAWidgetPresenceUnknown = 0,
  FSXFAWidgetPresenceVisible = 1,
  FSXFAWidgetPresenceHidden = 2,
  FSXFAWidgetPresenceInactive = 3,
  FSXFAWidgetPresenceInvisible = 4
};

typedef NS_ENUM(NSInteger, FSXFAWidgetWidgetNameType) {
  FSXFAWidgetWidgetNameTypeField = 0,
  FSXFAWidgetWidgetNameTypeCaption = 1,
  FSXFAWidgetWidgetNameTypeFullName = 2
};

typedef NS_ENUM(NSInteger, FSXFAWidgetWidgetHAlignType) {
  FSXFAWidgetWidgethAlignTypeCenter = 128,
  FSXFAWidgetWidgethAlignTypeJustify = 156,
  FSXFAWidgetWidgethAlignTypeJustifyAll = 61,
  FSXFAWidgetWidgethAlignTypeLeft = 252,
  FSXFAWidgetWidgethAlignTypeRadix = 231,
  FSXFAWidgetWidgethAlignTypeRight = 54
};

typedef NS_ENUM(NSInteger, FSXFAWidgetWidgetVAlignType) {
  FSXFAWidgetWidgetvAlignTypeTop = 33,
  FSXFAWidgetWidgetvAlignTypeBottom = 85,
  FSXFAWidgetWidgetvAlignTypeMiddle = 161
};

typedef NS_ENUM(NSInteger, FSXFAWidgetWidgetEdgePosition) {
  FSXFAWidgetWidgetEdgePositionTop = 0,
  FSXFAWidgetWidgetEdgePositionRight = 1,
  FSXFAWidgetWidgetEdgePositionBottom = 2,
  FSXFAWidgetWidgetEdgePositionLeft = 3
};

@interface FSXFAWidget : FSBase
@property (nonatomic, weak, getter=getValue) NSString * value;
@property (nonatomic, weak, getter=getDefaultValue) NSString * defaultValue;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSXFAWidget*)other;
-(BOOL)isEmpty;
-(FSXFAPage*)getXFAPage;
-(int)getIndex;
-(void)resetData;
-(FSRectF*)getRect;
-(NSString *)getName: (FSXFAWidgetWidgetNameType)type;
-(FSWidgetChoiceOptionArray*)getOptions;
-(BOOL)setOptions: (FSWidgetChoiceOptionArray*)option_array;
-(BOOL)isChecked;
-(void)setCheckState: (BOOL)is_checked;
-(BOOL)isListBox;
-(BOOL)isSupportMultiline;
-(BOOL)isSupportMultiSelect;
-(FSXFAWidgetPresenceProperty)getPresence;
-(BOOL)onMouseEnter;
-(BOOL)onMouseExit;
-(BOOL)onLButtonDown: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onLButtonUp: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onLButtonDoubleClick: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onMouseMove: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onRButtonDown: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onRButtonUp: (FSPointF*)point flags: (unsigned int)flags;
-(BOOL)onKeyDown: (unsigned int)key_code flags: (unsigned int)flags;
-(BOOL)onKeyUp: (unsigned int)key_code flags: (unsigned int)flags;
-(BOOL)onChar: (int)input_char flags: (unsigned int)flags;
-(FSXFAWidgetHitTestArea)onHitTest: (FSPointF*)point;
-(FSXFAWidgetWidgetType)getType;
-(FSXFAWidgetWidgetHAlignType)getHAlign;
-(FSXFAWidgetWidgetVAlignType)getVAlign;
-(BOOL)hasEdge: (FSXFAWidgetWidgetEdgePosition)edge_pos;
-(FSSignature*)getSignature;
-(NSString *)getToolTip;
-(FSBitmap*)getBitmap;
-(void)setImage: (FSImage*)image;
-(BOOL)isAllowRichText;
-(BOOL)isReadOnly;
-(BOOL)isRequired;
-(BOOL)validateValue: (NSString *)value format: (NSString *)format;
-(NSString *)getJavaScript;
-(NSString *)getXMLContent;

-(void)dealloc;

@end

@interface FSWidgetMenu : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithXfa_widget: (FSXFAWidget*)xfa_widget;
-(id)initWithOther: (FSWidgetMenu*)other;
-(BOOL)isEmpty;
-(BOOL)canCopy;
-(BOOL)canCut;
-(BOOL)canPaste;
-(BOOL)canSelectAll;
-(BOOL)canDelete;
-(BOOL)canDeSelect;
-(NSString *)copy;
-(NSString *)cut;
-(BOOL)paste: (NSString *)text;
-(BOOL)selectAll;
-(BOOL)delete;
-(BOOL)deSelect;
-(BOOL)canUndo;
-(BOOL)canRedo;
-(BOOL)undo;
-(BOOL)redo;
-(BOOL)bold;
-(BOOL)italic;
-(BOOL)underline;
-(BOOL)superscript;
-(BOOL)subscript;
-(BOOL)clearStyle;

-(void)dealloc;

@end



typedef NS_ENUM(NSInteger, FSTextPageCharInfoTextCharFlag) {
  FSTextPageCharInfoUnknown = -1,
  FSTextPageCharInfoNormal = 0,
  FSTextPageCharInfoGenerated = 1,
  FSTextPageCharInfoUnUnicode = 2,
  FSTextPageCharInfoHyphen = 3,
  FSTextPageCharInfoComboWord = 4
};

@interface FSTextPageCharInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getFont) FSFont* font;
@property (nonatomic, getter=getFlag) FSTextPageCharInfoTextCharFlag flag;
@property (nonatomic, getter=getFont_size) float font_size;
@property (nonatomic, getter=getOrigin_x) float origin_x;
@property (nonatomic, getter=getOrigin_y) float origin_y;
@property (nonatomic, weak, getter=getChar_box) FSRectF* char_box;
@property (nonatomic, weak, getter=getChar_outbox) FSRectF* char_outbox;
@property (nonatomic, weak, getter=getMatrix) FSMatrix2D* matrix;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFont: (FSFont*)font flag: (FSTextPageCharInfoTextCharFlag)flag font_size: (float)font_size origin_x: (float)origin_x origin_y: (float)origin_y char_box: (FSRectF*)char_box char_outbox: (FSRectF*)char_outbox matrix: (FSMatrix2D*)matrix;
-(id)init;
-(id)initWithChar_info: (FSTextPageCharInfo*)char_info;
-(void)set: (FSFont*)font flag: (FSTextPageCharInfoTextCharFlag)flag font_size: (float)font_size origin_x: (float)origin_x origin_y: (float)origin_y char_box: (FSRectF*)char_box char_outbox: (FSRectF*)char_outbox matrix: (FSMatrix2D*)matrix;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSTextPageTextParseFlags) {
  FSTextPageParseTextNormal = 0x0000,
  FSTextPageParseTextOutputHyphen = 0x0001,
  FSTextPageParseTextUseStreamOrder = 0x0002
};

typedef NS_ENUM(NSInteger, FSTextPageTextOrderFlag) {
  FSTextPageTextStreamOrder = 0,
  FSTextPageTextDisplayOrder = 1
};

@interface FSTextPage : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPage: (FSPDFPage*)page flags: (int)flags;
-(id)initWithOther: (FSTextPage*)other;
-(BOOL)isEmpty;
-(int)getCharCount;
-(FSTextPageCharInfo*)getCharInfo: (int)char_index;
-(NSString *)getChars: (int)start count: (int)count;
-(int)getIndexAtPos: (float)x y: (float)y tolerance: (float)tolerance;
-(NSString *)getTextInRect: (FSRectF*)rect;
-(NSString *)getText: (FSTextPageTextOrderFlag)flag;
-(FSRange*)getWordAtPos: (float)x y: (float)y tolerance: (float)tolerance;
-(int)getTextRectCount: (int)start count: (int)count;
-(FSRectF*)getTextRect: (int)rect_index;
-(FSRotation)getBaselineRotation: (int)rect_index;
-(FSRectFArray*)getTextRectArrayByRect: (FSRectF*)rect;
-(FSRange*)getCharRange: (FSRectF*)rect;
-(NSString *)getTextUnderAnnot: (FSAnnot*)annot;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSTextSearchSearchFlags) {
  FSTextSearchSearchNormal = 0x00,
  FSTextSearchSearchMatchCase = 0x01,
  FSTextSearchSearchMatchWholeWord = 0x02,
  FSTextSearchSearchConsecutive = 0x04,
  FSTextSearchSearchNotMatchFullWidth = 0x20
};

@interface FSTextSearch : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document cancel: (id<FSSearchCancelCallback>)cancel flags: (int)flags;
-(id)initWithXfa_document: (FSXFADoc*)xfa_document cancel: (id<FSSearchCancelCallback>)cancel;
-(id)initWithText_page: (FSTextPage*)text_page;
-(id)initWithAnnot: (FSAnnot*)annot;
-(id)initWithOther: (FSTextSearch*)other;
-(BOOL)isEmpty;
-(BOOL)setPattern: (NSString *)key_words is_regex_search: (BOOL)is_regex_search;
-(BOOL)setStartPage: (int)page_index;
-(BOOL)setEndPage: (int)page_index;
-(BOOL)setStartCharacter: (int)char_index;
-(BOOL)setSearchFlags: (unsigned int)search_flags;
-(BOOL)findNext;
-(BOOL)findPrev;
-(FSRectFArray*)getMatchRects;
-(int)getMatchPageIndex;
-(NSString *)getMatchSentence;
-(int)getMatchSentenceStartIndex;
-(int)getMatchSentenceEndIndex;
-(int)getMatchStartCharIndex;
-(int)getMatchEndCharIndex;

-(void)dealloc;

@end

@interface FSTextLink : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSTextLink*)other;
-(BOOL)isEmpty;
-(NSString *)getURI;
-(int)getStartCharIndex;
-(int)getEndCharIndex;
-(FSRectFArray*)getRects;

-(void)dealloc;

@end

@interface FSPageTextLinks : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPage: (FSTextPage*)page;
-(id)initWithOther: (FSPageTextLinks*)other;
-(BOOL)isEmpty;
-(int)getTextLinkCount;
-(FSTextLink*)getTextLink: (int)index;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSecurityHandlerCipherType) {
  FSSecurityHandlerCipherNone = 0,
  FSSecurityHandlerCipherRC4 = 1,
  FSSecurityHandlerCipherAES = 2
};

@interface FSSecurityHandler : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSecurityHandler*)other;
-(BOOL)isEmpty;
-(FSPDFDocEncryptType)getSecurityType;

-(void)dealloc;

@end

@interface FSStdEncryptData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getIs_encrypt_metadata) BOOL is_encrypt_metadata;
@property (nonatomic, getter=getUser_permissions) unsigned int user_permissions;
@property (nonatomic, getter=getCipher) FSSecurityHandlerCipherType cipher;
@property (nonatomic, getter=getKey_length) int key_length;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithIs_encrypt_metadata: (BOOL)is_encrypt_metadata user_permissions: (unsigned int)user_permissions cipher: (FSSecurityHandlerCipherType)cipher key_length: (int)key_length;
-(id)init;
-(id)initWithOther: (FSStdEncryptData*)other;
-(void)set: (BOOL)is_encrypt_metadata user_permissions: (unsigned int)user_permissions cipher: (FSSecurityHandlerCipherType)cipher key_length: (int)key_length;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSStdSecurityHandlerModifyFlag) {
  FSStdSecurityHandlerModifyPermission = 0x01,
  FSStdSecurityHandlerModifyUserPassword = 0x02,
  FSStdSecurityHandlerModifyOwnerPassword = 0x04
};

@interface FSStdSecurityHandler : FSSecurityHandler
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSecurityHandler*)other;
-(BOOL)initialize: (FSStdEncryptData*)encrypt_data user_password: (NSString *)user_password owner_password: (NSString *)owner_password;
-(BOOL)initializeW: (FSStdEncryptData*)encrypt_data user_password: (NSString *)user_password owner_password: (NSString *)owner_password;
-(void)setAES256ModifyFlags: (unsigned int)modify_flags;

-(void)dealloc;

@end

@interface FSCertificateEncryptData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getIs_encrypt_metadata) BOOL is_encrypt_metadata;
@property (nonatomic, getter=getCipher) FSSecurityHandlerCipherType cipher;
@property (nonatomic, weak, getter=getEnvelopes) NSArray<NSData *> * envelopes;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithIs_encrypt_metadata: (BOOL)is_encrypt_metadata cipher: (FSSecurityHandlerCipherType)cipher envelopes: (NSArray<NSData *> *)envelopes;
-(id)init;
-(id)initWithOther: (FSCertificateEncryptData*)other;
-(void)set: (BOOL)is_encrypt_metadata cipher: (FSSecurityHandlerCipherType)cipher envelopes: (NSArray<NSData *> *)envelopes;
-(void)dealloc;

@end

@interface FSCertificateSecurityHandler : FSSecurityHandler
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSecurityHandler*)other;
-(BOOL)initialize: (FSCertificateEncryptData*)encrypt_data encrypt_key: (NSData *)encrypt_key;

-(void)dealloc;

@end

@interface FSDRMEncryptData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getIs_encrypt_metadata) BOOL is_encrypt_metadata;
@property (nonatomic, weak, getter=getSub_filter) NSString * sub_filter;
@property (nonatomic, getter=getCipher) FSSecurityHandlerCipherType cipher;
@property (nonatomic, getter=getKey_length) int key_length;
@property (nonatomic, getter=getIs_owner) BOOL is_owner;
@property (nonatomic, getter=getUser_permissions) unsigned int user_permissions;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithIs_encrypt_metadata: (BOOL)is_encrypt_metadata sub_filter: (NSString *)sub_filter cipher: (FSSecurityHandlerCipherType)cipher key_length: (int)key_length is_owner: (BOOL)is_owner user_permissions: (unsigned int)user_permissions;
-(id)init;
-(id)initWithOther: (FSDRMEncryptData*)other;
-(void)set: (BOOL)is_encrypt_metadata sub_filter: (NSString *)sub_filter cipher: (FSSecurityHandlerCipherType)cipher key_length: (int)key_length is_owner: (BOOL)is_owner user_permissions: (unsigned int)user_permissions;
-(void)dealloc;

@end

@interface FSDRMSecurityHandler : FSSecurityHandler
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSecurityHandler*)other;
-(NSString *)getDRMValue: (NSString *)key;
-(BOOL)setDRMValue: (NSString *)key value: (NSString *)value;
-(BOOL)verifyEncryptionParams;
-(BOOL)initialize: (FSDRMEncryptData*)encrypt_data file_id: (NSString *)file_id initial_key: (NSData *)initial_key;

-(void)dealloc;

@end

@interface FSCustomEncryptData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getIs_encrypt_metadata) BOOL is_encrypt_metadata;
@property (nonatomic, weak, getter=getFilter) NSString * filter;
@property (nonatomic, weak, getter=getSub_filter) NSString * sub_filter;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithIs_encrypt_metadata: (BOOL)is_encrypt_metadata filter: (NSString *)filter sub_filter: (NSString *)sub_filter;
-(id)init;
-(id)initWithOther: (FSCustomEncryptData*)other;
-(void)set: (BOOL)is_encrypt_metadata filter: (NSString *)filter sub_filter: (NSString *)sub_filter;
-(void)dealloc;

@end

@interface FSCustomSecurityHandler : FSSecurityHandler
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSecurityHandler*)other;
-(BOOL)initialize: (FSCustomEncryptData*)encrypt_data callback: (id<FSCustomSecurityCallback>)callback encrypt_info: (NSString *)encrypt_info;

-(void)dealloc;

@end

@interface FSRMSEncryptData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getIs_encrypt_metadata) BOOL is_encrypt_metadata;
@property (nonatomic, weak, getter=getPublish_license) NSString * publish_license;
@property (nonatomic, weak, getter=getServer_eul_list) NSArray<NSData *> * server_eul_list;
@property (nonatomic, getter=getIrm_version) float irm_version;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithIs_encrypt_metadata: (BOOL)is_encrypt_metadata publish_license: (NSString *)publish_license server_eul_list: (NSArray<NSData *> *)server_eul_list irm_version: (float)irm_version;
-(id)init;
-(id)initWithOther: (FSRMSEncryptData*)other;
-(void)set: (BOOL)is_encrypt_metadata publish_license: (NSString *)publish_license server_eul_list: (NSArray<NSData *> *)server_eul_list irm_version: (float)irm_version;
-(void)dealloc;

@end

@interface FSRMSSecurityHandler : FSSecurityHandler
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSecurityHandler*)other;
-(BOOL)initialize: (FSRMSEncryptData*)encrypt_data callback: (id<FSRMSSecurityCallback>)callback;

-(void)dealloc;

@end











typedef NS_ENUM(NSInteger, FSTabOrderMgrOrderType) {
  FSTabOrderMgrNone = 0x0000,
  FSTabOrderMgrRow = 0x0001,
  FSTabOrderMgrColumn = 0x0002,
  FSTabOrderMgrStructure = 0x0003
};

@interface FSTabOrderMgr : FSBase
@property (nonatomic, getter=getOrderType) FSTabOrderMgrOrderType orderType;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPage: (FSPDFPage*)page;
-(id)initWithOther: (FSTabOrderMgr*)other;
-(BOOL)isEmpty;
-(void)reload;
-(FSAnnot*)getFirstAnnot;
-(FSAnnot*)getLastAnnot;
-(FSAnnot*)getNextAnnot: (FSAnnot*)annot;
-(FSAnnot*)getPrevAnnot: (FSAnnot*)annot;
-(BOOL)adjustStructureOrder: (FSAnnotArray*)annot_array;

-(void)dealloc;

@end

@interface FSWatermark : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document text: (NSString *)text properties: (FSWatermarkTextProperties*)properties settings: (FSWatermarkSettings*)settings;
-(id)initWithDocument: (FSPDFDoc*)document bitmap: (FSBitmap*)bitmap settings: (FSWatermarkSettings*)settings;
-(id)initWithDocument: (FSPDFDoc*)document image: (FSImage*)image frame_index: (int)frame_index settings: (FSWatermarkSettings*)settings;
-(id)initWithDocument: (FSPDFDoc*)document page: (FSPDFPage*)page settings: (FSWatermarkSettings*)settings;
-(id)initWithOther: (FSWatermark*)other;
-(BOOL)isEmpty;
-(float)getWidth;
-(float)getHeight;
-(BOOL)insertToPage: (FSPDFPage*)page;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSWatermarkSettingsFlags) {
  FSWatermarkSettingsFlagASPageContents = 0x0000,
  FSWatermarkSettingsFlagASAnnot = 0x0001,
  FSWatermarkSettingsFlagOnTop = 0x0002,
  FSWatermarkSettingsFlagNoPrint = 0x0004,
  FSWatermarkSettingsFlagInvisible = 0x0008,
  FSWatermarkSettingsFlagShareImageStream = 0x0010,
  FSWatermarkSettingsFlagShareTextStream = 0x0020,
  FSWatermarkSettingsFlagSharePageStream = 0x0040
};

@interface FSWatermarkSettings : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getPosition) FSPosition position;
@property (nonatomic, getter=getOffset_x) float offset_x;
@property (nonatomic, getter=getOffset_y) float offset_y;
@property (nonatomic, getter=getFlags) unsigned int flags;
@property (nonatomic, getter=getScale_x) float scale_x;
@property (nonatomic, getter=getScale_y) float scale_y;
@property (nonatomic, getter=getRotation) float rotation;
@property (nonatomic, getter=getOpacity) int opacity;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPosition: (FSPosition)position offset_x: (float)offset_x offset_y: (float)offset_y flags: (unsigned int)flags scale_x: (float)scale_x scale_y: (float)scale_y rotation: (float)rotation opacity: (int)opacity;
-(id)init;
-(id)initWithSettings: (FSWatermarkSettings*)settings;
-(void)set: (FSPosition)position offset_x: (float)offset_x offset_y: (float)offset_y flags: (unsigned int)flags scale_x: (float)scale_x scale_y: (float)scale_y rotation: (float)rotation opacity: (int)opacity;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSWatermarkTextPropertiesFontStyle) {
  FSWatermarkTextPropertiesFontStyleNormal = 0,
  FSWatermarkTextPropertiesFontStyleUnderline = 1
};

@interface FSWatermarkTextProperties : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getFont_size) float font_size;
@property (nonatomic, getter=getColor) unsigned int color;
@property (nonatomic, getter=getFont_style) FSWatermarkTextPropertiesFontStyle font_style;
@property (nonatomic, getter=getLine_space) float line_space;
@property (nonatomic, getter=getAlignment) FSAlignment alignment;
@property (nonatomic, weak, getter=getFont) FSFont* font;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFont: (FSFont*)font font_size: (float)font_size color: (unsigned int)color style: (FSWatermarkTextPropertiesFontStyle)style line_space: (float)line_space alignment: (FSAlignment)alignment;
-(id)init;
-(id)initWithProperties: (FSWatermarkTextProperties*)properties;
-(void)set: (FSFont*)font font_size: (float)font_size color: (unsigned int)color style: (FSWatermarkTextPropertiesFontStyle)style line_space: (float)line_space alignment: (FSAlignment)alignment;

-(void)dealloc;

@end



@interface FSRedaction : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithOther: (FSRedaction*)other;
-(BOOL)isEmpty;
-(FSRedact*)markRedactAnnot: (FSPDFPage*)page rects: (FSRectFArray*)rects;
-(void)enableFileStream: (NSString *)temp_directory_path apply_redaction_callback: (id<FSApplyRedactionCallback>)apply_redaction_callback;
-(BOOL)apply;
-(FSProgressive*)startApply: (id<FSPauseCallback>)pause;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSTableBorderInfoTableBorderStyle) {
  FSTableBorderInfoTableBorderStyleSolid = 0,
  FSTableBorderInfoTableBorderStyleDashed = 1
};

@interface FSTableBorderInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getTable_border_style) FSTableBorderInfoTableBorderStyle table_border_style;
@property (nonatomic, getter=getLine_width) float line_width;
@property (nonatomic, getter=getColor) unsigned int color;
@property (nonatomic, getter=getDash_phase) float dash_phase;
@property (nonatomic, weak, getter=getDashes) FSFloatArray* dashes;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithTable_border_style: (FSTableBorderInfoTableBorderStyle)table_border_style line_width: (float)line_width color: (unsigned int)color dash_phase: (float)dash_phase dashes: (FSFloatArray*)dashes;
-(id)initWithTable_border_info: (FSTableBorderInfo*)table_border_info;
-(void)set: (FSTableBorderInfoTableBorderStyle)table_border_style line_width: (float)line_width color: (unsigned int)color dash_phase: (float)dash_phase dashes: (FSFloatArray*)dashes;
-(void)dealloc;

@end

@interface FSTableCellDataColArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSTableCellDataColArray*)other;
-(unsigned long)getSize;
-(FSTableCellData*)getAt: (unsigned long)index;
-(void)add: (FSTableCellData*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSTableCellData*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSTableCellDataArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSTableCellDataArray*)other;
-(unsigned long)getSize;
-(FSTableCellDataColArray*)getAt: (unsigned long)index;
-(void)add: (FSTableCellDataColArray*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSTableCellDataColArray*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSTableCellData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getCell_text_style) FSRichTextStyle* cell_text_style;
@property (nonatomic, getter=getCell_fill_color) unsigned int cell_fill_color;
@property (nonatomic, weak, getter=getCell_text) NSString * cell_text;
@property (nonatomic, weak, getter=getCell_image) FSImage* cell_image;
@property (nonatomic, weak, getter=getCell_margin) FSRectF* cell_margin;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithCell_text_style: (FSRichTextStyle*)cell_text_style cell_fill_color: (unsigned int)cell_fill_color cell_text: (NSString *)cell_text cell_image: (FSImage*)cell_image cell_margin: (FSRectF*)cell_margin;
-(id)initWithData: (FSTableCellData*)data;
-(void)set: (FSRichTextStyle*)cell_text_style cell_fill_color: (unsigned int)cell_fill_color cell_text: (NSString *)cell_text cell_image: (FSImage*)cell_image cell_margin: (FSRectF*)cell_margin;
-(void)dealloc;

@end

@interface FSTableCellIndexArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSTableCellIndexArray*)other;
-(unsigned long)getSize;
-(FSPoint*)getAt: (unsigned long)index;
-(void)add: (FSPoint*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSPoint*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSTableData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getRect) FSRectF* rect;
@property (nonatomic, getter=getRow_count) int row_count;
@property (nonatomic, getter=getCol_count) int col_count;
@property (nonatomic, weak, getter=getOutside_border_left) FSTableBorderInfo* outside_border_left;
@property (nonatomic, weak, getter=getOutside_border_right) FSTableBorderInfo* outside_border_right;
@property (nonatomic, weak, getter=getOutside_border_top) FSTableBorderInfo* outside_border_top;
@property (nonatomic, weak, getter=getOutside_border_bottom) FSTableBorderInfo* outside_border_bottom;
@property (nonatomic, weak, getter=getInside_border_row) FSTableBorderInfo* inside_border_row;
@property (nonatomic, weak, getter=getInside_border_col) FSTableBorderInfo* inside_border_col;
@property (nonatomic, weak, getter=getMerge_cells) FSTableCellIndexArray* merge_cells;
@property (nonatomic, weak, getter=getRow_height_array) FSFloatArray* row_height_array;
@property (nonatomic, weak, getter=getCol_width_array) FSFloatArray* col_width_array;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithRect: (FSRectF*)rect row_count: (int)row_count col_count: (int)col_count outside_border_left: (FSTableBorderInfo*)outside_border_left outside_border_right: (FSTableBorderInfo*)outside_border_right outside_border_top: (FSTableBorderInfo*)outside_border_top outside_border_bottom: (FSTableBorderInfo*)outside_border_bottom inside_border_row: (FSTableBorderInfo*)inside_border_row inside_border_col: (FSTableBorderInfo*)inside_border_col merge_cells: (FSTableCellIndexArray*)merge_cells row_height_array: (FSFloatArray*)row_height_array col_width_array: (FSFloatArray*)col_width_array;
-(id)initWithData: (FSTableData*)data;
-(void)set: (FSRectF*)rect row_count: (int)row_count col_count: (int)col_count outside_border_left: (FSTableBorderInfo*)outside_border_left outside_border_right: (FSTableBorderInfo*)outside_border_right outside_border_top: (FSTableBorderInfo*)outside_border_top outside_border_bottom: (FSTableBorderInfo*)outside_border_bottom inside_border_row: (FSTableBorderInfo*)inside_border_row inside_border_col: (FSTableBorderInfo*)inside_border_col merge_cells: (FSTableCellIndexArray*)merge_cells row_height_array: (FSFloatArray*)row_height_array col_width_array: (FSFloatArray*)col_width_array;
-(void)dealloc;

@end



@interface FSTableGenerator : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(BOOL)addTableToPage: (FSPDFPage*)page data: (FSTableData*)data cell_array: (FSTableCellDataArray*)cell_array;
+(BOOL)insertTablePagesToDocument: (FSPDFDoc*)doc dest_page_index: (int)dest_page_index page_width: (float)page_width page_height: (float)page_height data: (FSTableData*)data cell_array: (FSTableCellDataArray*)cell_array allow_to_cross_page: (BOOL)allow_to_cross_page tablegenerator_callback: (id<FSTableGeneratorCallback>)tablegenerator_callback;
-(id)init;

-(void)dealloc;

@end



@interface FSDocumentsSource : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDirectory: (NSString *)directory;
-(id)initWithOther: (FSDocumentsSource*)other;
-(BOOL)isEmpty;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSFullTextSearchRankMode) {
  FSFullTextSearchRankNone = 0,
  FSFullTextSearchRankHitCountASC = 1,
  FSFullTextSearchRankHitCountDESC = 2
};

@interface FSFullTextSearch : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSFullTextSearch*)other;
-(BOOL)isEmpty;
-(void)setDataBasePath: (NSString *)path_of_data_base;
-(FSProgressive*)startUpdateIndex: (FSDocumentsSource*)source pause: (id<FSPauseCallback>)pause reupdate: (BOOL)reupdate;
-(BOOL)updateIndexWithFilePath: (NSString *)file_path;
-(BOOL)searchOf: (NSString *)match_string rank_mode: (FSFullTextSearchRankMode)rank_mode callback: (id<FSSearchCallback>)callback;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSComplianceEngineViewOrPrintCondition) {
  FSComplianceEngineViewOrPrintConditionAuto = 0,
  FSComplianceEngineViewOrPrintConditionCoatedGRACoL2006 = 1,
  FSComplianceEngineViewOrPrintConditionISOCoatedv2ECI = 2,
  FSComplianceEngineViewOrPrintConditionJapanColor2001Coated = 3,
  FSComplianceEngineViewOrPrintConditionPSOCoatedv3ECI = 4
};

@interface FSComplianceEngine : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSErrorCode)initialize: (NSString *)compliance_resource_folder_path compliance_engine_unlockcode: (NSString *)compliance_engine_unlockcode;
+(void)destroy;
+(FSErrorCode)initializeThreadContext;
+(void)releaseThreadContext;
+(void)setTempFolderPath: (NSString *)temp_folder_path;
+(void)enableHandleTransparency: (BOOL)enable_handle_transparency;
+(void)setLanguage: (NSString *)language;
-(id)init;

-(void)dealloc;

@end



typedef NS_ENUM(NSInteger, FSPreflightSettingDataLibraryType) {
  FSPreflightSettingDataLibraryTypeFoxit = 0,
  FSPreflightSettingDataLibraryTypePDFStandards = 1,
  FSPreflightSettingDataLibraryTypePrepressColorTransparency = 2
};

typedef NS_ENUM(NSInteger, FSPreflightSettingDataOperateType) {
  FSPreflightSettingDataOperateTypeProfiles = 0,
  FSPreflightSettingDataOperateTypeSingleChecks = 1,
  FSPreflightSettingDataOperateTypeSingleFixups = 2
};

@interface FSPreflightSettingData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getPreflight_key) NSString * preflight_key;
@property (nonatomic, getter=getOperate_type) FSPreflightSettingDataOperateType operate_type;
@property (nonatomic, weak, getter=getSrc_pdf_path) NSString * src_pdf_path;
@property (nonatomic, weak, getter=getSaved_pdf_path) NSString * saved_pdf_path;
@property (nonatomic, getter=getFirst_page_index) int first_page_index;
@property (nonatomic, getter=getLast_page_index) int last_page_index;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPreflightReportSettingDataReportFileFormatType) {
  FSPreflightReportSettingDataReportFileFormatTypePdf = 0,
  FSPreflightReportSettingDataReportFileFormatTypeXml = 1,
  FSPreflightReportSettingDataReportFileFormatTypeTxt = 2,
  FSPreflightReportSettingDataReportFileFormatTypeHtml = 3
};

typedef NS_ENUM(NSInteger, FSPreflightReportSettingDataProblemsHighlightMethod) {
  FSPreflightReportSettingDataProblemsHighlightMethodTransparentMasks = 0,
  FSPreflightReportSettingDataProblemsHighlightMethodLayers = 1
};

@interface FSPreflightReportSettingData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getReport_file_format_type) FSPreflightReportSettingDataReportFileFormatType report_file_format_type;
@property (nonatomic, getter=getTo_generate_overview) BOOL to_generate_overview;
@property (nonatomic, getter=getTo_highlight_problems) BOOL to_highlight_problems;
@property (nonatomic, getter=getProblems_highlight_method) FSPreflightReportSettingDataProblemsHighlightMethod problems_highlight_method;
@property (nonatomic, weak, getter=getReport_file_path) NSString * report_file_path;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(void)dealloc;

@end

@interface FSPreflight : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPreflight*)other;
-(BOOL)isEmpty;
-(NSArray<NSData *> *)getGroupNamesArray: (FSPreflightSettingDataLibraryType)library_type operate_type: (FSPreflightSettingDataOperateType)operate_type;
-(NSArray<NSData *> *)getItemKeysArray: (NSString *)group_name;
-(void)analyze: (FSPreflightSettingData*)preflight_setting_data progress_callback: (id<FSComplianceProgressCallback>)progress_callback;
-(void)analyzeAndFixup: (FSPreflightSettingData*)preflight_setting_data progress_callback: (id<FSComplianceProgressCallback>)progress_callback;
-(BOOL)generateReport: (FSPreflightReportSettingData*)preflight_report_setting_data progress_callback: (id<FSComplianceProgressCallback>)progress_callback;
-(BOOL)canFixup: (NSString *)item_key;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSFixupDataFixupState) {
  FSFixupDataFixupStateSuccess = 0,
  FSFixupDataFixupStateFailure = 1,
  FSFixupDataFixupStateNotRequired = 2
};

@interface FSFixupData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getUsed_count) unsigned int used_count;
@property (nonatomic, getter=getState) FSFixupDataFixupState state;
@property (nonatomic, weak, getter=getName) NSString * name;
@property (nonatomic, weak, getter=getComment) NSString * comment;
@property (nonatomic, weak, getter=getReasons) NSArray<NSString *> * reasons;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSFixupData*)other;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSHitDataCheckSeverity) {
  FSHitDataCheckSeverityInfo = 1,
  FSHitDataCheckSeverityWarning = 2,
  FSHitDataCheckSeverityError = 3
};

@interface FSHitData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getTriggered_count) unsigned int triggered_count;
@property (nonatomic, getter=getSeverity) FSHitDataCheckSeverity severity;
@property (nonatomic, weak, getter=getName) NSString * name;
@property (nonatomic, weak, getter=getComment) NSString * comment;
@property (nonatomic, weak, getter=getTrigger_values) NSArray<NSString *> * trigger_values;
@property (nonatomic, getter=getPage_index) int page_index;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSHitData*)other;
-(void)dealloc;

@end

@interface FSResultInformation : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSResultInformation*)other;
-(BOOL)isEmpty;
-(int)getFixupDataCount;
-(FSFixupData*)getFixupData: (int)index;
-(int)getHitDataCount;
-(FSHitData*)getHitData: (int)index;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPDFAComplianceVersion) {
  FSPDFAComplianceVersionPDFA1a = 1,
  FSPDFAComplianceVersionPDFA1b = 2,
  FSPDFAComplianceVersionPDFA2a = 3,
  FSPDFAComplianceVersionPDFA2b = 4,
  FSPDFAComplianceVersionPDFA2u = 5,
  FSPDFAComplianceVersionPDFA3a = 6,
  FSPDFAComplianceVersionPDFA3b = 7,
  FSPDFAComplianceVersionPDFA3u = 8,
  FSPDFAComplianceVersionPDFA1bWithoutFBC = 9,
  FSPDFAComplianceVersionPDFA2bWithoutFBC = 10,
  FSPDFAComplianceVersionPDFA3bWithoutFBC = 11
};

@interface FSPDFACompliance : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPDFACompliance*)other;
-(BOOL)isEmpty;
-(FSResultInformation*)verify: (FSPDFAComplianceVersion)verify_version src_pdf_path: (NSString *)src_pdf_path first_page_index: (int)first_page_index last_page_index: (int)last_page_index progress_callback: (id<FSComplianceProgressCallback>)progress_callback;
-(FSResultInformation*)convertPDFFile: (NSString *)src_pdf_path saved_pdf_path: (NSString *)saved_pdf_path convert_to_version: (FSPDFAComplianceVersion)convert_to_version progress_callback: (id<FSComplianceProgressCallback>)progress_callback;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPDFEComplianceVersion) {
  FSPDFEComplianceVersionPDFE1 = 1
};

@interface FSPDFECompliance : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPDFECompliance*)other;
-(BOOL)isEmpty;
-(FSResultInformation*)verify: (NSString *)src_pdf_path first_page_index: (int)first_page_index last_page_index: (int)last_page_index verify_version: (FSPDFEComplianceVersion)verify_version progress_callback: (id<FSComplianceProgressCallback>)progress_callback;
-(FSResultInformation*)convertPDFFile: (NSString *)src_pdf_path saved_pdf_path: (NSString *)saved_pdf_path convert_to_version: (FSPDFEComplianceVersion)convert_to_version progress_callback: (id<FSComplianceProgressCallback>)progress_callback;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPDFXComplianceVersion) {
  FSPDFXComplianceVersionPDFX1a = 0,
  FSPDFXComplianceVersionPDFX3 = 1,
  FSPDFXComplianceVersionPDFX4 = 2,
  FSPDFXComplianceVersionPDFX4p = 3,
  FSPDFXComplianceVersionPDFX1aCoatedGRACoL2006 = 4,
  FSPDFXComplianceVersionPDFX1aISOCoatedv2ECI = 5,
  FSPDFXComplianceVersionPDFX1aJapanColor2001Coated = 6,
  FSPDFXComplianceVersionPDFX1aPSOCoatedv3ECI = 7,
  FSPDFXComplianceVersionPDFX3CoatedGRACoL2006 = 8,
  FSPDFXComplianceVersionPDFX3ISOCoatedv2ECI = 9,
  FSPDFXComplianceVersionPDFX3JapanColor2001Coated = 10,
  FSPDFXComplianceVersionPDFX3PSOCoatedv3ECI = 11,
  FSPDFXComplianceVersionPDFX4CoatedGRACoL2006 = 12,
  FSPDFXComplianceVersionPDFX4ISOCoatedv2ECI = 13,
  FSPDFXComplianceVersionPDFX4JapanColor2001Coated = 14,
  FSPDFXComplianceVersionPDFX4PSOCoatedv3ECI = 15,
  FSPDFXComplianceVersionPDFX4AndCLLVISOCoatedv2ECI = 16
};

@interface FSPDFXCompliance : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPDFXCompliance*)other;
-(BOOL)isEmpty;
-(FSResultInformation*)verify: (FSPDFXComplianceVersion)verify_version src_pdf_path: (NSString *)src_pdf_path first_page_index: (int)first_page_index last_page_index: (int)last_page_index progress_callback: (id<FSComplianceProgressCallback>)progress_callback;
-(FSResultInformation*)convertPDFFile: (NSString *)src_pdf_path saved_pdf_path: (NSString *)saved_pdf_path convert_to_version: (FSPDFXComplianceVersion)convert_to_version view_or_print_condition: (FSComplianceEngineViewOrPrintCondition)view_or_print_condition to_convert_rgb_or_lab: (BOOL)to_convert_rgb_or_lab to_decalibrate_gray_or_cmyk: (BOOL)to_decalibrate_gray_or_cmyk progress_callback: (id<FSComplianceProgressCallback>)progress_callback;

-(void)dealloc;

@end

@interface FSPDFCompliance : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPDFCompliance*)other;
-(BOOL)isEmpty;
-(FSResultInformation*)verify: (int)verify_version src_pdf_path: (NSString *)src_pdf_path first_page_index: (int)first_page_index last_page_index: (int)last_page_index progress_callback: (id<FSComplianceProgressCallback>)progress_callback;
-(FSResultInformation*)convertPDFFile: (NSString *)src_pdf_path saved_pdf_path: (NSString *)saved_pdf_path convert_to_version: (int)convert_to_version progress_callback: (id<FSComplianceProgressCallback>)progress_callback;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSCompareResultInfoCompareResultType) {
  FSCompareResultInfoCompareResultTypeNone = -1,
  FSCompareResultInfoCompareResultTypeDeleteText = 0,
  FSCompareResultInfoCompareResultTypeInsertText = 1,
  FSCompareResultInfoCompareResultTypeReplaceText = 2,
  FSCompareResultInfoCompareResultTypeDeleteImage = 6,
  FSCompareResultInfoCompareResultTypeInsertImage = 7,
  FSCompareResultInfoCompareResultTypeReplaceImage = 8,
  FSCompareResultInfoCompareResultTypeDeletePath = 9,
  FSCompareResultInfoCompareResultTypeInsertPath = 10,
  FSCompareResultInfoCompareResultTypeReplacePath = 11,
  FSCompareResultInfoCompareResultTypeDeleteShading = 12,
  FSCompareResultInfoCompareResultTypeInsertShading = 13,
  FSCompareResultInfoCompareResultTypeReplaceShading = 14,
  FSCompareResultInfoCompareResultTypeDeleteAnnot = 15,
  FSCompareResultInfoCompareResultTypeInsertAnnot = 16,
  FSCompareResultInfoCompareResultTypeReplaceAnnot = 17,
  FSCompareResultInfoCompareResultTypeTextAttriChange = 18
};

@interface FSCompareResultInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getType) FSCompareResultInfoCompareResultType type;
@property (nonatomic, weak, getter=getRect_array) FSRectFArray* rect_array;
@property (nonatomic, weak, getter=getDiff_contents) NSString * diff_contents;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithType: (FSCompareResultInfoCompareResultType)type rect_array: (FSRectFArray*)rect_array diff_contents: (NSString *)diff_contents;
-(id)init;
-(id)initWithResult_info: (FSCompareResultInfo*)result_info;
-(void)dealloc;

@end

@interface FSCompareResultInfoArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSCompareResultInfoArray*)other;
-(unsigned long)getSize;
-(FSCompareResultInfo*)getAt: (unsigned long)index;
-(void)add: (FSCompareResultInfo*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSCompareResultInfo*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSCompareResults : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getBase_doc_results) FSCompareResultInfoArray* base_doc_results;
@property (nonatomic, weak, getter=getCompared_doc_results) FSCompareResultInfoArray* compared_doc_results;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithBase_doc_results: (FSCompareResultInfoArray*)base_doc_results compared_doc_results: (FSCompareResultInfoArray*)compared_doc_results;
-(id)init;
-(id)initWithCompare_results: (FSCompareResults*)compare_results;
-(void)clear;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSComparisonCompareType) {
  FSComparisonCompareTypeAll = 0x00000000,
  FSComparisonCompareTypeText = 0x00000001,
  FSComparisonCompareTypeAnnotation = 0x00000002
};

@interface FSComparison : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithBase_doc: (FSPDFDoc*)base_doc compared_doc: (FSPDFDoc*)compared_doc;
-(id)initWithOther: (FSComparison*)other;
-(BOOL)isEmpty;
-(FSCompareResults*)doCompare: (int)base_page_index compared_page_index: (int)compared_page_index compare_flags: (unsigned int)compare_flags;
-(FSPDFDoc*)generateComparedDoc: (unsigned int)compare_flags;
-(FSPDFDoc*)GenerateComparedDocWithIsShowAllLayers: (unsigned int)compare_flags is_show_all_layers: (BOOL)is_show_all_layers;

-(void)dealloc;

@end

@interface FSAuditSpaceSize : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getContent_streams) unsigned int content_streams;
@property (nonatomic, getter=getImages) unsigned int images;
@property (nonatomic, getter=getFonts) unsigned int fonts;
@property (nonatomic, getter=getBookmarks) unsigned int bookmarks;
@property (nonatomic, getter=getX_object_forms) unsigned int x_object_forms;
@property (nonatomic, getter=getStructure_infos) unsigned int structure_infos;
@property (nonatomic, getter=getAcroforms) unsigned int acroforms;
@property (nonatomic, getter=getLink_annots) unsigned int link_annots;
@property (nonatomic, getter=getNamed_destnations) unsigned int named_destnations;
@property (nonatomic, getter=getColor_space) unsigned int color_space;
@property (nonatomic, getter=getPattern_infos) unsigned int pattern_infos;
@property (nonatomic, getter=getPiece_infos) unsigned int piece_infos;
@property (nonatomic, getter=getComments_and_3d_contents) unsigned int comments_and_3d_contents;
@property (nonatomic, getter=getShading_pattern_infos) unsigned int shading_pattern_infos;
@property (nonatomic, getter=getExtend_graphics_states) unsigned int extend_graphics_states;
@property (nonatomic, getter=getCross_ref_tables) unsigned int cross_ref_tables;
@property (nonatomic, getter=getThumbs) unsigned int thumbs;
@property (nonatomic, getter=getEmbed_files) unsigned int embed_files;
@property (nonatomic, getter=getWeb_infos) unsigned int web_infos;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(void)dealloc;

@end



@interface FSOptimizer : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSProgressive*)optimize: (FSPDFDoc*)doc settings: (FSOptimizerSettings*)settings pause: (id<FSPauseCallback>)pause;
+(FSProgressive*)startSubsetEmbedFont: (FSPDFDoc*)doc pause: (id<FSPauseCallback>)pause;
+(FSProgressive*)optimizeScannedPDF: (FSPDFDoc*)doc settings: (FSOptimizeScannedPDFSettings*)settings image_compress_callback: (id<FSImageCompressionCallback>)image_compress_callback pause: (id<FSPauseCallback>)pause;
+(FSAuditSpaceSize*)computeAuditSpace: (FSPDFDoc*)doc;
-(id)init;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSImageSettingsImageCompressMode) {
  FSImageSettingsImageCompressHigh = 10003,
  FSImageSettingsImageCompressjpeg = 10005,
  FSImageSettingsImageCompressjpeg2000 = 10006,
  FSImageSettingsImageCompressRetain = 10007,
  FSImageSettingsImageCompressZip = 10009
};

typedef NS_ENUM(NSInteger, FSImageSettingsImageCompressQuality) {
  FSImageSettingsImageCompressQualityMinimum = 1,
  FSImageSettingsImageCompressQualityLow = 2,
  FSImageSettingsImageCompressQualityMedium = 3,
  FSImageSettingsImageCompressQualityHigh = 4,
  FSImageSettingsImageCompressQualityMaximum = 5,
  FSImageSettingsImageCompressQualityLossless = 6
};

typedef NS_ENUM(NSInteger, FSImageSettingsStretchMode) {
  FSImageSettingsStretchDefault = -1,
  FSImageSettingsStretchOff = 0x00,
  FSImageSettingsStretchInterpol = 0x20,
  FSImageSettingsStretchDownsample = 0x04,
  FSImageSettingsStretchBicubic = 0x80,
  FSImageSettingsStretchNoSmooth = 0x100
};

@interface FSImageSettings : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSImageSettings*)other;
-(BOOL)isEmpty;
-(void)setStretchMode: (FSImageSettingsStretchMode)mode;
-(void)setImageDPI: (int)dpi;
-(void)setImageDPILimit: (int)dpi_limit;
-(void)setCompressionMode: (FSImageSettingsImageCompressMode)mode;
-(void)setQuality: (FSImageSettingsImageCompressQuality)quality;
-(void)setBackgroundDownScale: (int)down_scale;
-(void)setForegroundDownScale: (int)down_scale;
-(void)setTextSensitivity: (int)text_sensitivity;
-(void)setTileSize: (int)size;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSMonoImageSettingsMonoImageCompressMode) {
  FSMonoImageSettingsImageCompressCCITT3 = 10001,
  FSMonoImageSettingsImageCompressCCITT4 = 10002,
  FSMonoImageSettingsImageCompressHigh = 10003,
  FSMonoImageSettingsImageCompressjbig2 = 10004,
  FSMonoImageSettingsImageCompressRetain = 10007,
  FSMonoImageSettingsImageCompressRunLength = 10008,
  FSMonoImageSettingsImageCompressZip = 10009
};

typedef NS_ENUM(NSInteger, FSMonoImageSettingsMonoImageCompressQuality) {
  FSMonoImageSettingsImageCompressQualityLossless = 1,
  FSMonoImageSettingsImageCompressQualityLossy = 2,
  FSMonoImageSettingsImageCompressQualityMinimum = 3,
  FSMonoImageSettingsImageCompressQualityLow = 4,
  FSMonoImageSettingsImageCompressQualityMedium = 5,
  FSMonoImageSettingsImageCompressQualityHigh = 6,
  FSMonoImageSettingsImageCompressQualityMaximum = 7
};

typedef NS_ENUM(NSInteger, FSMonoImageSettingsStretchMode) {
  FSMonoImageSettingsStretchDefault = -1,
  FSMonoImageSettingsStretchOff = 0x00,
  FSMonoImageSettingsStretchInterpol = 0x20,
  FSMonoImageSettingsStretchDownsample = 0x04,
  FSMonoImageSettingsStretchBicubic = 0x80,
  FSMonoImageSettingsStretchNoSmooth = 0x100
};

@interface FSMonoImageSettings : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSMonoImageSettings*)other;
-(BOOL)isEmpty;
-(void)setImageDPI: (int)dpi;
-(void)setImageDPILimit: (int)dpi_limit;
-(void)setCompressionMode: (FSMonoImageSettingsMonoImageCompressMode)mode;
-(void)setStretchMode: (FSMonoImageSettingsStretchMode)mode;
-(void)setQuality: (FSMonoImageSettingsMonoImageCompressQuality)quality;

-(void)dealloc;

@end

@interface FSUnembeddedFontSettings : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSUnembeddedFontSettings*)other;
-(BOOL)isEmpty;
-(void)setSubsetAllEmFonts: (BOOL)is_subset_all_emb_fonts;
-(void)setUnembeddedFontNameArray: (NSArray<NSString *> *)font_name_array;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSOptimizerSettingsOptimizerOptions) {
  FSOptimizerSettingsOptimizerCompressImages = 0x01,
  FSOptimizerSettingsOptimizerCleanUp = 0x02,
  FSOptimizerSettingsOptimizerDiscardObjects = 0x04,
  FSOptimizerSettingsOptimizerUnembeddedFonts = 0x08,
  FSOptimizerSettingsOptimizerDiscardUserData = 0x10,
  FSOptimizerSettingsOptimizerTransparency = 0x20
};

typedef NS_ENUM(NSInteger, FSOptimizerSettingsCleanUpOptions) {
  FSOptimizerSettingsCleanUpUseFlateForNonEncodedStream = 0x01,
  FSOptimizerSettingsCleanUpUseFlateInsteadOfLZW = 0x02,
  FSOptimizerSettingsCleanUpRemoveInvalidBookmarks = 0x04,
  FSOptimizerSettingsCleanUpRemoveInvalidLinks = 0x08,
  FSOptimizerSettingsCleanUpDiscardUnreferencedNamedDes = 0x10,
  FSOptimizerSettingsCleanUpOptPageContent = 0x20
};

typedef NS_ENUM(NSInteger, FSOptimizerSettingsDiscardObjectsOptions) {
  FSOptimizerSettingsDiscardObjectsFormActions = 0x01,
  FSOptimizerSettingsDiscardObjectsFlattenFormFields = 0x02,
  FSOptimizerSettingsDiscardObjectsJavaScriptActions = 0x04,
  FSOptimizerSettingsDiscardObjectsEmbeddedPageThumbnails = 0x08,
  FSOptimizerSettingsDiscardObjectsEmbeddedPrintSettings = 0x10,
  FSOptimizerSettingsDiscardObjectsBookmarks = 0x20,
  FSOptimizerSettingsDiscardObjectsAlternateImages = 0x40,
  FSOptimizerSettingsDiscardObjectsDocumentTags = 0x80,
  FSOptimizerSettingsDiscardObjectsEmbeddedSearchIndex = 0x100,
  FSOptimizerSettingsDiscardObjectsDetectAndMergeImageFragment = 0x200,
  FSOptimizerSettingsDiscardObjectsSmoothlinestocurves = 0x400
};

typedef NS_ENUM(NSInteger, FSOptimizerSettingsDiscardUserDataOptions) {
  FSOptimizerSettingsDiscardUserDataAllAnnotsFormsAndMultimedia = 0x01,
  FSOptimizerSettingsDiscardUserDataExternalCrossReferences = 0x02,
  FSOptimizerSettingsDiscardUserDataDocumentInfoAndMetaData = 0x04,
  FSOptimizerSettingsDiscardUserDataFileAttchments = 0x08,
  FSOptimizerSettingsDiscardUserDataPrivateDataOfOtherApp = 0x10,
  FSOptimizerSettingsDiscardUserDataLayer = 0x20,
  FSOptimizerSettingsDiscardUserAllData = 0x40
};

typedef NS_ENUM(NSInteger, FSOptimizerSettingsTransparencyMode) {
  FSOptimizerSettingsTransparencyModeLowResolution = 0,
  FSOptimizerSettingsTransparencyModeMediumResolution = 1,
  FSOptimizerSettingsTransparencyModeHighResolution = 2
};

@interface FSOptimizerSettings : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSOptimizerSettings*)other;
-(BOOL)isEmpty;
-(void)setOptimizerOptions: (unsigned int)optimize_options;
-(void)setColorGrayImageSettings: (FSImageSettings*)settings;
-(void)setColorImageSettings: (FSImageSettings*)settings;
-(void)setGrayscaleImageSettings: (FSImageSettings*)settings;
-(void)setMonoImageSettings: (FSMonoImageSettings*)settings;
-(void)setUnembeddedFontSettings: (FSUnembeddedFontSettings*)settings;
-(void)setCleanUpOptions: (unsigned int)clean_up_options;
-(void)setDiscardObjectsOptions: (unsigned int)discard_objects_options;
-(void)setDiscardUserDataOptions: (unsigned int)discard_userdata_options;
-(void)setTransparencyMode: (FSOptimizerSettingsTransparencyMode)transparency_mode;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSOptimizeScannedPDFSettingsScannedImageCompressMode) {
  FSOptimizeScannedPDFSettingsScannedImageCompressHigh = 1,
  FSOptimizeScannedPDFSettingsScannedImageCompressjpeg = 2,
  FSOptimizeScannedPDFSettingsScannedImageCompressjpeg2000LossLess = 3,
  FSOptimizeScannedPDFSettingsScannedImageCompressjpeg2000Lossy = 4
};

typedef NS_ENUM(NSInteger, FSOptimizeScannedPDFSettingsScannedMonoImageCompressMode) {
  FSOptimizeScannedPDFSettingsScannedMonoImageCompressjbig2Lossy = 1,
  FSOptimizeScannedPDFSettingsScannedMonoImageCompressjbig2LossLess = 2,
  FSOptimizeScannedPDFSettingsScannedMonoImageCompressCCITT4 = 3,
  FSOptimizeScannedPDFSettingsScannedMonoImageCompressHigh = 4
};

@interface FSOptimizeScannedPDFSettings : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSOptimizeScannedPDFSettings*)other;
-(BOOL)isEmpty;
-(void)setOptimizedPages: (FSRange*)pages;
-(void)setColorGrayImageCompressionMode: (FSOptimizeScannedPDFSettingsScannedImageCompressMode)mode;
-(void)setColorGrayImageCompressionQuality: (unsigned int)quality;
-(void)setMonoImageCompressionMode: (FSOptimizeScannedPDFSettingsScannedMonoImageCompressMode)mode;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSHTML2PDFSettingDataHTML2PDFPageMode) {
  FSHTML2PDFSettingDataPageModeSinglePage = 0,
  FSHTML2PDFSettingDataPageModeMultiplePage = 1
};

typedef NS_ENUM(NSInteger, FSHTML2PDFSettingDataHTML2PDFScalingMode) {
  FSHTML2PDFSettingDataScalingModeNone = 0,
  FSHTML2PDFSettingDataScalingModeScale = 1,
  FSHTML2PDFSettingDataScalingModeEnlarge = 2
};

typedef NS_ENUM(NSInteger, FSHTML2PDFSettingDataHTML2PDFEncodingFormat) {
  FSHTML2PDFSettingDataEncodingFormatDefault = 0,
  FSHTML2PDFSettingDataEncodingFormatASCII = 1,
  FSHTML2PDFSettingDataEncodingFormatLatin2 = 2,
  FSHTML2PDFSettingDataEncodingFormatLatin3 = 3,
  FSHTML2PDFSettingDataEncodingFormatLatin4 = 4,
  FSHTML2PDFSettingDataEncodingFormatLatin5 = 5,
  FSHTML2PDFSettingDataEncodingFormatLatin6 = 6,
  FSHTML2PDFSettingDataEncodingFormatISO_8859_5 = 7,
  FSHTML2PDFSettingDataEncodingFormatArabic = 8,
  FSHTML2PDFSettingDataEncodingFormatGreek = 9,
  FSHTML2PDFSettingDataEncodingFormatHebrew = 10,
  FSHTML2PDFSettingDataEncodingFormatEUC_JP = 11,
  FSHTML2PDFSettingDataEncodingFormatSJS = 12,
  FSHTML2PDFSettingDataEncodingFormatJIS = 13,
  FSHTML2PDFSettingDataEncodingFormatBIG5 = 14,
  FSHTML2PDFSettingDataEncodingFormatGB = 15,
  FSHTML2PDFSettingDataEncodingFormatEUC_CN = 16,
  FSHTML2PDFSettingDataEncodingFormatKSC = 17,
  FSHTML2PDFSettingDataEncodingFormatUnicode = 18,
  FSHTML2PDFSettingDataEncodingFormatEUC = 19,
  FSHTML2PDFSettingDataEncodingFormatCNS = 20,
  FSHTML2PDFSettingDataEncodingFormatBIG5_CP950 = 21,
  FSHTML2PDFSettingDataEncodingFormatASCII_7_bit = 22,
  FSHTML2PDFSettingDataEncodingFormatKOI8R = 23,
  FSHTML2PDFSettingDataEncodingFormatCP852 = 24,
  FSHTML2PDFSettingDataEncodingFormatCP866 = 25,
  FSHTML2PDFSettingDataEncodingFormatCP874 = 26,
  FSHTML2PDFSettingDataEncodingFormatCP932 = 27,
  FSHTML2PDFSettingDataEncodingFormatCP1250 = 28,
  FSHTML2PDFSettingDataEncodingFormatCP1251 = 29,
  FSHTML2PDFSettingDataEncodingFormatCP1252 = 30,
  FSHTML2PDFSettingDataEncodingFormatCP1253 = 31,
  FSHTML2PDFSettingDataEncodingFormatCP1254 = 32,
  FSHTML2PDFSettingDataEncodingFormatCP1255 = 33,
  FSHTML2PDFSettingDataEncodingFormatCP1256 = 34,
  FSHTML2PDFSettingDataEncodingFormatCP1257 = 35,
  FSHTML2PDFSettingDataEncodingFormatKOI8U = 36,
  FSHTML2PDFSettingDataEncodingFormatISO_8859_15 = 37,
  FSHTML2PDFSettingDataEncodingFormatISO_8859_11 = 38,
  FSHTML2PDFSettingDataEncodingFormatISO_8859_8_I = 39,
  FSHTML2PDFSettingDataEncodingFormatVISUAL = 40,
  FSHTML2PDFSettingDataEncodingFormatCSN_369103 = 41,
  FSHTML2PDFSettingDataEncodingFormatISO_8859_13 = 42,
  FSHTML2PDFSettingDataEncodingFormatISO_2022_KR = 43,
  FSHTML2PDFSettingDataEncodingFormatGBK = 44,
  FSHTML2PDFSettingDataEncodingFormatGB18030 = 45,
  FSHTML2PDFSettingDataEncodingFormatBIG5_HKSCS = 46,
  FSHTML2PDFSettingDataEncodingFormatISO_2022_CN = 47,
  FSHTML2PDFSettingDataEncodingFormatTSCII = 48,
  FSHTML2PDFSettingDataEncodingFormatTAM = 49,
  FSHTML2PDFSettingDataEncodingFormatTAB = 50,
  FSHTML2PDFSettingDataEncodingFormatJAGRAN = 51,
  FSHTML2PDFSettingDataEncodingFormatMACINTOSH = 52,
  FSHTML2PDFSettingDataEncodingFormatUTF7 = 53,
  FSHTML2PDFSettingDataEncodingFormatBHASKAR = 54,
  FSHTML2PDFSettingDataEncodingFormatHTCHANAKYA = 55,
  FSHTML2PDFSettingDataEncodingFormatUTF_16BE = 56,
  FSHTML2PDFSettingDataEncodingFormatUTF_16LE = 57,
  FSHTML2PDFSettingDataEncodingFormatUTF_32BE = 58,
  FSHTML2PDFSettingDataEncodingFormatUTF_32LE = 59,
  FSHTML2PDFSettingDataEncodingFormatX_BINARYENC = 60,
  FSHTML2PDFSettingDataEncodingFormatHZ_GB_2312 = 61,
  FSHTML2PDFSettingDataEncodingFormatX_UTF8UTF8 = 62,
  FSHTML2PDFSettingDataEncodingFormatX_TAM_ELANGO = 63,
  FSHTML2PDFSettingDataEncodingFormatX_TAM_LTTMBARANI = 64,
  FSHTML2PDFSettingDataEncodingFormatX_TAM_SHREE = 65,
  FSHTML2PDFSettingDataEncodingFormatX_TAM_TBOOMIS = 66,
  FSHTML2PDFSettingDataEncodingFormatX_TAM_TMNEWS = 67,
  FSHTML2PDFSettingDataEncodingFormatX_TAM_WEBTAMIL = 68,
  FSHTML2PDFSettingDataEncodingFormatX_KDDI_Shift_JIS = 69,
  FSHTML2PDFSettingDataEncodingFormatX_DoCoMo_Shift_JIS = 70,
  FSHTML2PDFSettingDataEncodingFormatX_SoftBank_Shift_JIS = 71,
  FSHTML2PDFSettingDataEncodingFormatX_KDDI_ISO_2022_JP = 72,
  FSHTML2PDFSettingDataEncodingFormatX_SoftBank_ISO_2022_JP = 73
};

typedef NS_ENUM(NSInteger, FSHTML2PDFSettingDataHTML2PDFMediaStyle) {
  FSHTML2PDFSettingDataMediaStyleScreen = 0,
  FSHTML2PDFSettingDataMediaStylePrint = 1
};

@interface FSHTML2PDFSettingData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getPage_width) float page_width;
@property (nonatomic, getter=getPage_height) float page_height;
@property (nonatomic, getter=getIs_to_page_scale) BOOL is_to_page_scale;
@property (nonatomic, weak, getter=getPage_margin) FSRectF* page_margin;
@property (nonatomic, getter=getRotate_degrees) FSRotation rotate_degrees;
@property (nonatomic, getter=getIs_convert_link) BOOL is_convert_link;
@property (nonatomic, getter=getIs_generate_tag) BOOL is_generate_tag;
@property (nonatomic, getter=getPage_mode) FSHTML2PDFSettingDataHTML2PDFPageMode page_mode;
@property (nonatomic, getter=getTo_generate_bookmarks) BOOL to_generate_bookmarks;
@property (nonatomic, getter=getScaling_mode) FSHTML2PDFSettingDataHTML2PDFScalingMode scaling_mode;
@property (nonatomic, getter=getEncoding_format) FSHTML2PDFSettingDataHTML2PDFEncodingFormat encoding_format;
@property (nonatomic, getter=getTo_render_images) BOOL to_render_images;
@property (nonatomic, getter=getTo_remove_underline_for_link) BOOL to_remove_underline_for_link;
@property (nonatomic, getter=getTo_set_headerfooter) BOOL to_set_headerfooter;
@property (nonatomic, weak, getter=getHeaderfooter_title) NSString * headerfooter_title;
@property (nonatomic, weak, getter=getHeaderfooter_url) NSString * headerfooter_url;
@property (nonatomic, weak, getter=getBookmark_root_name) NSString * bookmark_root_name;
@property (nonatomic, getter=getTo_resize_objects) BOOL to_resize_objects;
@property (nonatomic, getter=getTo_print_background) BOOL to_print_background;
@property (nonatomic, getter=getTo_optimize_tag_tree) BOOL to_optimize_tag_tree;
@property (nonatomic, getter=getMedia_style) FSHTML2PDFSettingDataHTML2PDFMediaStyle media_style;
@property (nonatomic, getter=getTo_load_active_content) BOOL to_load_active_content;
@property (nonatomic, getter=getTo_disable_sandbox) BOOL to_disable_sandbox;
@property (nonatomic, getter=getTo_use_blacklist) BOOL to_use_blacklist;
@property (nonatomic, getter=getTo_hide_header) BOOL to_hide_header;
@property (nonatomic, getter=getTo_hide_footer) BOOL to_hide_footer;
@property (nonatomic, getter=getTo_deny_local_file_access) BOOL to_deny_local_file_access;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithPage_width: (float)page_width page_height: (float)page_height is_to_page_scale: (BOOL)is_to_page_scale page_margin: (FSRectF*)page_margin is_convert_link: (BOOL)is_convert_link rotate_degrees: (FSRotation)rotate_degrees is_generate_tag: (BOOL)is_generate_tag page_mode: (FSHTML2PDFSettingDataHTML2PDFPageMode)page_mode to_generate_bookmarks: (BOOL)to_generate_bookmarks scaling_mode: (FSHTML2PDFSettingDataHTML2PDFScalingMode)scaling_mode encoding_format: (FSHTML2PDFSettingDataHTML2PDFEncodingFormat)encoding_format to_render_images: (BOOL)to_render_images to_remove_underline_for_link: (BOOL)to_remove_underline_for_link to_set_headerfooter: (BOOL)to_set_headerfooter headerfooter_title: (NSString *)headerfooter_title headerfooter_url: (NSString *)headerfooter_url bookmark_root_name: (NSString *)bookmark_root_name to_resize_objects: (BOOL)to_resize_objects to_print_background: (BOOL)to_print_background to_optimize_tag_tree: (BOOL)to_optimize_tag_tree media_style: (FSHTML2PDFSettingDataHTML2PDFMediaStyle)media_style to_load_active_content: (BOOL)to_load_active_content to_disable_sandbox: (BOOL)to_disable_sandbox to_use_blacklist: (BOOL)to_use_blacklist to_hide_header: (BOOL)to_hide_header to_hide_footer: (BOOL)to_hide_footer to_deny_local_file_access: (BOOL)to_deny_local_file_access;
-(void)set: (float)page_width page_height: (float)page_height is_to_page_scale: (BOOL)is_to_page_scale page_margin: (FSRectF*)page_margin is_convert_link: (BOOL)is_convert_link rotate_degrees: (FSRotation)rotate_degrees is_generate_tag: (BOOL)is_generate_tag page_mode: (FSHTML2PDFSettingDataHTML2PDFPageMode)page_mode to_generate_bookmarks: (BOOL)to_generate_bookmarks scaling_mode: (FSHTML2PDFSettingDataHTML2PDFScalingMode)scaling_mode encoding_format: (FSHTML2PDFSettingDataHTML2PDFEncodingFormat)encoding_format to_render_images: (BOOL)to_render_images to_remove_underline_for_link: (BOOL)to_remove_underline_for_link to_set_headerfooter: (BOOL)to_set_headerfooter headerfooter_title: (NSString *)headerfooter_title headerfooter_url: (NSString *)headerfooter_url bookmark_root_name: (NSString *)bookmark_root_name to_resize_objects: (BOOL)to_resize_objects to_print_background: (BOOL)to_print_background to_optimize_tag_tree: (BOOL)to_optimize_tag_tree media_style: (FSHTML2PDFSettingDataHTML2PDFMediaStyle)media_style to_load_active_content: (BOOL)to_load_active_content to_disable_sandbox: (BOOL)to_disable_sandbox to_use_blacklist: (BOOL)to_use_blacklist to_hide_header: (BOOL)to_hide_header to_hide_footer: (BOOL)to_hide_footer to_deny_local_file_access: (BOOL)to_deny_local_file_access;
-(void)dealloc;

@end

@interface FSTXT2PDFSettingData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getPage_width) float page_width;
@property (nonatomic, getter=getPage_height) float page_height;
@property (nonatomic, weak, getter=getPage_margin) FSRectF* page_margin;
@property (nonatomic, weak, getter=getFont) FSFont* font;
@property (nonatomic, getter=getText_size) float text_size;
@property (nonatomic, getter=getText_color) unsigned int text_color;
@property (nonatomic, getter=getLinespace) float linespace;
@property (nonatomic, getter=getIs_break_page) BOOL is_break_page;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithPage_width: (float)page_width page_height: (float)page_height page_margin: (FSRectF*)page_margin font: (FSFont*)font text_size: (float)text_size text_color: (unsigned int)text_color linespace: (float)linespace is_break_page: (BOOL)is_break_page;
-(void)set: (float)page_width page_height: (float)page_height page_margin: (FSRectF*)page_margin font: (FSFont*)font text_size: (float)text_size text_color: (unsigned int)text_color linespace: (float)linespace is_break_page: (BOOL)is_break_page;
-(void)dealloc;

@end



typedef NS_ENUM(NSInteger, FSDWG2PDFSettingDataDWG2PDFExportFlags) {
  FSDWG2PDFSettingDataFlagEmbededTTF = 0x0001,
  FSDWG2PDFSettingDataFlagTTFTextAsGeometry = 0x0002,
  FSDWG2PDFSettingDataFlagSHXTextAsGeometry = 0x0004,
  FSDWG2PDFSettingDataFlagSimpleGeomOptimization = 0x0008,
  FSDWG2PDFSettingDataFlagEnableLayers = 0x0010,
  FSDWG2PDFSettingDataFlagIncludeOffLayers = 0x0020,
  FSDWG2PDFSettingDataFlagEmbededOptimizedTTF = 0x0040,
  FSDWG2PDFSettingDataFlagUseHLR = 0x0080,
  FSDWG2PDFSettingDataFlagFlateCompression = 0x0100,
  FSDWG2PDFSettingDataFlagASCIIHexEncoding = 0x0200,
  FSDWG2PDFSettingDataFlagExportHyperlinks = 0x0400,
  FSDWG2PDFSettingDataFlagZoomToExtentsMode = 0x0800,
  FSDWG2PDFSettingDataFlagLinearized = 0x1000,
  FSDWG2PDFSettingDataFlagMeasuring = 0x4000
};

typedef NS_ENUM(NSInteger, FSDWG2PDFSettingDataDWG2PDFExportHatchesType) {
  FSDWG2PDFSettingDataDWG2PDFExportHatchesTypeBitmap = 0,
  FSDWG2PDFSettingDataDWG2PDFExportHatchesTypeDrawing = 1,
  FSDWG2PDFSettingDataDWG2PDFExportHatchesTypePdfPaths = 2,
  FSDWG2PDFSettingDataDWG2PDFExportHatchesTypePolygons = 3
};

typedef NS_ENUM(NSInteger, FSDWG2PDFSettingDataDWG2PDFSearchableTextType) {
  FSDWG2PDFSettingDataDWG2PDFSearchableTextTypeNoSearch = 0,
  FSDWG2PDFSettingDataDWG2PDFSearchableTextTypeSHX = 1,
  FSDWG2PDFSettingDataDWG2PDFSearchableTextTypeTTF = 2
};

typedef NS_ENUM(NSInteger, FSDWG2PDFSettingDataDWG2PDFColorPolicy) {
  FSDWG2PDFSettingDataDWG2PDFColorPolicyNoPolicy = 0,
  FSDWG2PDFSettingDataDWG2PDFColorPolicyMono = 1,
  FSDWG2PDFSettingDataDWG2PDFColorPolicyGrayscale = 2
};

@interface FSDWG2PDFSettingData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getExport_flags) unsigned int export_flags;
@property (nonatomic, getter=getExport_hatches_type) FSDWG2PDFSettingDataDWG2PDFExportHatchesType export_hatches_type;
@property (nonatomic, getter=getOther_export_hatches_type) FSDWG2PDFSettingDataDWG2PDFExportHatchesType other_export_hatches_type;
@property (nonatomic, getter=getGradient_export_hatches_type) FSDWG2PDFSettingDataDWG2PDFExportHatchesType gradient_export_hatches_type;
@property (nonatomic, getter=getSearchable_text_type) FSDWG2PDFSettingDataDWG2PDFSearchableTextType searchable_text_type;
@property (nonatomic, getter=getIs_active_layout) BOOL is_active_layout;
@property (nonatomic, weak, getter=getOutput_title) NSString * output_title;
@property (nonatomic, weak, getter=getOutput_author) NSString * output_author;
@property (nonatomic, weak, getter=getOutput_subject) NSString * output_subject;
@property (nonatomic, weak, getter=getOutput_keywords) NSString * output_keywords;
@property (nonatomic, weak, getter=getOutput_creator) NSString * output_creator;
@property (nonatomic, weak, getter=getOutput_producer) NSString * output_producer;
@property (nonatomic, getter=getPaper_width) float paper_width;
@property (nonatomic, getter=getPaper_height) float paper_height;
@property (nonatomic, getter=getColor_policy) FSDWG2PDFSettingDataDWG2PDFColorPolicy color_policy;
@property (nonatomic, getter=getIs_output_progress) BOOL is_output_progress;
@property (nonatomic, weak, getter=getProgress_callback) SWIGTYPE_p_void* progress_callback;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(void)dealloc;

@end

@interface FSHTML2PDFRelatedResource : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, retain, getter=getRelated_resource_file) id<FSFileReaderCallback> related_resource_file;
@property (nonatomic, weak, getter=getResource_file_relative_path) NSString * resource_file_relative_path;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(void)dealloc;

@end

@interface FSHTML2PDFRelatedResourceArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSHTML2PDFRelatedResourceArray*)other;
-(unsigned long)getSize;
-(FSHTML2PDFRelatedResource*)getAt: (unsigned long)index;
-(void)add: (FSHTML2PDFRelatedResource*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSHTML2PDFRelatedResource*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSConvertOffice2PdfEngine) {
  FSConvertOffice2PdfEngineMicrosoft = 0,
  FSConvertOffice2PdfEngineWps = 1
};

@interface FSConvert : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(void)fromHTML: (NSString *)src_html engine_path: (NSString *)engine_path cookies_path: (NSString *)cookies_path setting_data: (FSHTML2PDFSettingData*)setting_data saved_pdf_path: (NSString *)saved_pdf_path timeout: (int)timeout;
+(void)fromHTMLWithReaderCallback: (NSString *)src_html engine_path: (NSString *)engine_path cookies_reader: (id<FSFileReaderCallback>)cookies_reader setting_data: (FSHTML2PDFSettingData*)setting_data saved_pdf_path: (NSString *)saved_pdf_path timeout: (int)timeout;
+(void)fromHTMLWithSaveFileWriterCallback: (NSString *)src_html engine_path: (NSString *)engine_path cookies_reader: (id<FSFileReaderCallback>)cookies_reader setting_data: (FSHTML2PDFSettingData*)setting_data saved_pdf_filestream: (id<FSFileWriterCallback>)saved_pdf_filestream timeout: (int)timeout;
+(void)fromHTMLWithReaderCallbackHTML: (id<FSFileReaderCallback>)src_html html2pdf_related_resource_array: (FSHTML2PDFRelatedResourceArray*)html2pdf_related_resource_array engine_path: (NSString *)engine_path cookies_reader: (id<FSFileReaderCallback>)cookies_reader setting_data: (FSHTML2PDFSettingData*)setting_data saved_pdf_filestream: (id<FSFileWriterCallback>)saved_pdf_filestream timeout: (int)timeout;
+(void)fromTXT: (NSString *)src_txt saved_pdf_path: (NSString *)saved_pdf_path setting_data: (FSTXT2PDFSettingData*)setting_data;
+(void)fromImage: (NSString *)src_img saved_pdf_path: (NSString *)saved_pdf_path;
+(void)fromImageWithStreamCallback: (id<FSFileReaderCallback>)file_reader saved_pdf_filestream: (id<FSFileWriterCallback>)saved_pdf_filestream;
+(BOOL)fromDWG: (NSString *)engine_path src_dwg_path: (NSString *)src_dwg_path saved_pdf_path: (NSString *)saved_pdf_path settings: (FSDWG2PDFSettingData*)settings;
+(BOOL)toXML: (NSString *)src_pdf_path src_file_password: (NSString *)src_file_password saved_xml_path: (NSString *)saved_xml_path saved_image_folder_path: (NSString *)saved_image_folder_path is_force_to_tagged_pdf: (BOOL)is_force_to_tagged_pdf;
-(id)init;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSLRElementElementType) {
  FSLRElementElementTypeDocument = 0x0000,
  FSLRElementElementTypeDocumentFragment = 0x0001,
  FSLRElementElementTypePart = 0x0002,
  FSLRElementElementTypeArt = 0x0101,
  FSLRElementElementTypeSect = 0x0102,
  FSLRElementElementTypeDiv = 0x0100,
  FSLRElementElementTypeBlockQuote = 0x0103,
  FSLRElementElementTypeCaption = 0x0104,
  FSLRElementElementTypeTOC = 0x0105,
  FSLRElementElementTypeTOCI = 0x0106,
  FSLRElementElementTypeIndex = 0x0107,
  FSLRElementElementTypeAside = 0x0108,
  FSLRElementElementTypeTitle = 0x0109,
  FSLRElementElementTypeFENote = 0x010A,
  FSLRElementElementTypeNonStruct = 0x010F,
  FSLRElementElementTypePrivate = 0x0110,
  FSLRElementElementTypeParagraph = 0x0200,
  FSLRElementElementTypeHeading = 0x0201,
  FSLRElementElementTypeHeading1 = 0x0202,
  FSLRElementElementTypeHeading2 = 0x0203,
  FSLRElementElementTypeHeading3 = 0x0204,
  FSLRElementElementTypeHeading4 = 0x0205,
  FSLRElementElementTypeHeading5 = 0x0206,
  FSLRElementElementTypeHeading6 = 0x0207,
  FSLRElementElementTypeHeadingN = 0x0208,
  FSLRElementElementTypeList = 0x0209,
  FSLRElementElementTypeListItem = 0x020A,
  FSLRElementElementTypeListLabel = 0x020B,
  FSLRElementElementTypeListBody = 0x020C,
  FSLRElementElementTypeTable = 0x020D,
  FSLRElementElementTypeTableRow = 0x020E,
  FSLRElementElementTypeTableHeaderCell = 0x020F,
  FSLRElementElementTypeTableDataCell = 0x0210,
  FSLRElementElementTypeTableHeaderGroup = 0x0211,
  FSLRElementElementTypeTableBodyGroup = 0x0212,
  FSLRElementElementTypeTableFootGroup = 0x0213,
  FSLRElementElementTypeSpan = 0x0300,
  FSLRElementElementTypeQuote = 0x0301,
  FSLRElementElementTypeNote = 0x0302,
  FSLRElementElementTypeReference = 0x0303,
  FSLRElementElementTypeBibEntry = 0x0304,
  FSLRElementElementTypeCode = 0x0305,
  FSLRElementElementTypeLink = 0x0306,
  FSLRElementElementTypeAnnot = 0x0307,
  FSLRElementElementTypeRuby = 0x0308,
  FSLRElementElementTypeRubyBase = 0x0309,
  FSLRElementElementTypeRubyAnnot = 0x030A,
  FSLRElementElementTypeRubyPunc = 0x030B,
  FSLRElementElementTypeWarichu = 0x030C,
  FSLRElementElementTypeWarichuText = 0x030D,
  FSLRElementElementTypeWarichuPunc = 0x030E,
  FSLRElementElementTypeEm = 0x030F,
  FSLRElementElementTypeStrong = 0x0310,
  FSLRElementElementTypeSub = 0x0311,
  FSLRElementElementTypeFigure = 0x0400,
  FSLRElementElementTypeFormula = 0x0401,
  FSLRElementElementTypeForm = 0x0402,
  FSLRElementElementTypeArtifact = 0x1000,
  FSLRElementElementTypeTextObject = 0x80000001,
  FSLRElementElementTypePathObject = 0x80000002,
  FSLRElementElementTypeImageObject = 0x80000003,
  FSLRElementElementTypeShadingObject = 0x80000004,
  FSLRElementElementTypeFormObject = 0x80000005,
  FSLRElementElementTypeContainerObject = 0x8000000C,
  FSLRElementElementTypeAnnotObject = 0x8000000E,
  FSLRElementElementTypePageObject = 0x8000000F,
  FSLRElementElementTypeTextContent = 0xC0000001,
  FSLRElementElementTypePathContent = 0xC0000002,
  FSLRElementElementTypeImageContent = 0xC0000003,
  FSLRElementElementTypeShadingContent = 0xC0000004,
  FSLRElementElementTypeComplexContent = 0xC000000D,
  FSLRElementElementTypeAnnotContent = 0xC000000E
};

@interface FSLRElement : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSLRElement*)other;
-(BOOL)isEmpty;
-(FSLRElementElementType)getElementType;
-(BOOL)isContentElement;
-(BOOL)isGraphicsObjectElement;
-(BOOL)isStructureElement;
-(NSString *)stringifyType;
+(NSString *)stringifyElementType: (FSLRElementElementType)type;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSLRStructureElementAttributeType) {
  FSLRStructureElementAttributeTypeInvalid = 0x0,
  FSLRStructureElementAttributeTypeRole = 0x524f4c45,
  FSLRStructureElementAttributeTypePlacement = 0x504c4143,
  FSLRStructureElementAttributeTypeRotation = 0x524f5441,
  FSLRStructureElementAttributeTypeWritingMode = 0x574d4f44,
  FSLRStructureElementAttributeTypeDestination = 0x44455354,
  FSLRStructureElementAttributeTypeBBox = 0x42424f58,
  FSLRStructureElementAttributeTypeWidth = 0x57445448,
  FSLRStructureElementAttributeTypeHeight = 0x48474854,
  FSLRStructureElementAttributeTypeBackgroundColor = 0x424b4743,
  FSLRStructureElementAttributeTypeBorderColor = 0x42445243,
  FSLRStructureElementAttributeTypeBorderStyle = 0x42445253,
  FSLRStructureElementAttributeTypeBorderThickness = 0x42445254,
  FSLRStructureElementAttributeTypeAttached = 0x41545448,
  FSLRStructureElementAttributeTypeSubType = 0x53554254,
  FSLRStructureElementAttributeTypePadding = 0x50414447,
  FSLRStructureElementAttributeTypeColor = 0x434f4c52,
  FSLRStructureElementAttributeTypeSpaceBefore = 0x53504246,
  FSLRStructureElementAttributeTypeSpaceAfter = 0x53504146,
  FSLRStructureElementAttributeTypeStartIndent = 0x53494e44,
  FSLRStructureElementAttributeTypeEndIndent = 0x45494e44,
  FSLRStructureElementAttributeTypeTextIndent = 0x54494e44,
  FSLRStructureElementAttributeTypeTextAlign = 0x54414c4e,
  FSLRStructureElementAttributeTypeBlockAlign = 0x42414c4e,
  FSLRStructureElementAttributeTypeInlineAlign = 0x49414c4e,
  FSLRStructureElementAttributeTypeTBorderStyle = 0x54424453,
  FSLRStructureElementAttributeTypeTPadding = 0x54504144,
  FSLRStructureElementAttributeTypeBaselineShift = 0x42534846,
  FSLRStructureElementAttributeTypeLineHeight = 0x4c484754,
  FSLRStructureElementAttributeTypeTextDecorationColor = 0x5444434c,
  FSLRStructureElementAttributeTypeTextDecorationThickness = 0x54445448,
  FSLRStructureElementAttributeTypeTextDecorationType = 0x54445459,
  FSLRStructureElementAttributeTypeRubyAlign = 0x5242414c,
  FSLRStructureElementAttributeTypeRubyPosition = 0x52425053,
  FSLRStructureElementAttributeTypeGlyphOrientationVertical = 0x474f5654,
  FSLRStructureElementAttributeTypeColumnCount = 0x434c434e,
  FSLRStructureElementAttributeTypeColumnGap = 0x434c4750,
  FSLRStructureElementAttributeTypeColumnWidths = 0x434c5744,
  FSLRStructureElementAttributeTypeListNumbering = 0x4c4e554d,
  FSLRStructureElementAttributeTypeFieldRole = 0x46524f4c,
  FSLRStructureElementAttributeTypeFieldChecked = 0x43484b44,
  FSLRStructureElementAttributeTypeFieldDesc = 0x46445343,
  FSLRStructureElementAttributeTypeRowSpan = 0x5253504e,
  FSLRStructureElementAttributeTypeColSpan = 0x4353504e,
  FSLRStructureElementAttributeTypeTableHeaders = 0x54484453,
  FSLRStructureElementAttributeTypeTableHeaderScope = 0x54485343,
  FSLRStructureElementAttributeTypeTableSummary = 0x5442534d,
  FSLRStructureElementAttributeTypeShort = 0x53484f52,
  FSLRStructureElementAttributeTypeDirection = 0x44495245,
  FSLRStructureElementAttributeTypeABox = 0x414c4258,
  FSLRStructureElementAttributeTypeVersion = 0x5645534e
};

typedef NS_ENUM(NSInteger, FSLRStructureElementAttributeValueEnum) {
  FSLRStructureElementAttributeValueEnumInvalid = 0x0,
  FSLRStructureElementAttributeValueEnumBlock = 0x424c434b,
  FSLRStructureElementAttributeValueEnumInline = 0x494e4c4e,
  FSLRStructureElementAttributeValueEnumWarichu = 0x57415249,
  FSLRStructureElementAttributeValueEnumBefore = 0x42454652,
  FSLRStructureElementAttributeValueEnumAfter = 0x41465445,
  FSLRStructureElementAttributeValueEnumStart = 0x53545254,
  FSLRStructureElementAttributeValueEnumEnd = 0x454e4400,
  FSLRStructureElementAttributeValueEnumLrTb = 0x4c525442,
  FSLRStructureElementAttributeValueEnumRlTb = 0x524c5442,
  FSLRStructureElementAttributeValueEnumTbRl = 0x5442524c,
  FSLRStructureElementAttributeValueEnumTbLr = 0x54424c52,
  FSLRStructureElementAttributeValueEnumNone = 0x4e4f4e45,
  FSLRStructureElementAttributeValueEnumHidden = 0x4849444e,
  FSLRStructureElementAttributeValueEnumDotted = 0x444f5444,
  FSLRStructureElementAttributeValueEnumDashed = 0x44534844,
  FSLRStructureElementAttributeValueEnumSolid = 0x534f4c44,
  FSLRStructureElementAttributeValueEnumDouble = 0x44424c45,
  FSLRStructureElementAttributeValueEnumGroove = 0x41525459,
  FSLRStructureElementAttributeValueEnumRidge = 0x52444745,
  FSLRStructureElementAttributeValueEnumInset = 0x494e5354,
  FSLRStructureElementAttributeValueEnumOutset = 0x4f545354,
  FSLRStructureElementAttributeValueEnumNormal = 0x4e524d4c,
  FSLRStructureElementAttributeValueEnumAuto = 0x4155544f,
  FSLRStructureElementAttributeValueEnumCenter = 0x434e5452,
  FSLRStructureElementAttributeValueEnumJustify = 0x4a535459,
  FSLRStructureElementAttributeValueEnumMiddle = 0x4d49444c,
  FSLRStructureElementAttributeValueEnumUnderline = 0x55444c4e,
  FSLRStructureElementAttributeValueEnumOverline = 0x4f564c4e,
  FSLRStructureElementAttributeValueEnumLineThrough = 0x4c4e5448,
  FSLRStructureElementAttributeValueEnumDistribute = 0x44535442,
  FSLRStructureElementAttributeValueEnumDisc = 0x44495343,
  FSLRStructureElementAttributeValueEnumCircle = 0x4352434c,
  FSLRStructureElementAttributeValueEnumSquare = 0x53515552,
  FSLRStructureElementAttributeValueEnumDecimal = 0x44434d4c,
  FSLRStructureElementAttributeValueEnumUpperRoman = 0x5550524d,
  FSLRStructureElementAttributeValueEnumLowerRoman = 0x4c57524d,
  FSLRStructureElementAttributeValueEnumUpperAlpha = 0x5550414c,
  FSLRStructureElementAttributeValueEnumLowerAlpha = 0x4c57414c,
  FSLRStructureElementAttributeValueEnumUnordered = 0x554e4f52,
  FSLRStructureElementAttributeValueEnumOrdered = 0x4f524445,
  FSLRStructureElementAttributeValueEnumFloat = 0x464c4f54,
  FSLRStructureElementAttributeValueEnumRB = 0x52420000,
  FSLRStructureElementAttributeValueEnumCB = 0x43420000,
  FSLRStructureElementAttributeValueEnumPB = 0x50440000,
  FSLRStructureElementAttributeValueEnumTV = 0x54560000,
  FSLRStructureElementAttributeValueEnumOn = 0x4f4e0000,
  FSLRStructureElementAttributeValueEnumOff = 0x4f464600,
  FSLRStructureElementAttributeValueEnumNeutral = 0x4e555452,
  FSLRStructureElementAttributeValueEnumRow = 0x524f5700,
  FSLRStructureElementAttributeValueEnumColumn = 0x434c4d4e,
  FSLRStructureElementAttributeValueEnumBoth = 0x424f5448,
  FSLRStructureElementAttributeValueEnumLeft = 0x4c454654,
  FSLRStructureElementAttributeValueEnumTop = 0x544f5000,
  FSLRStructureElementAttributeValueEnumBottom = 0x42544f4d,
  FSLRStructureElementAttributeValueEnumRight = 0x52474854,
  FSLRStructureElementAttributeValueEnumPagination = 0x5041474e,
  FSLRStructureElementAttributeValueEnumLayout = 0x4c41594f,
  FSLRStructureElementAttributeValueEnumPage = 0x50414745,
  FSLRStructureElementAttributeValueEnumBackground = 0x424b474e,
  FSLRStructureElementAttributeValueEnumHeader = 0x48454144,
  FSLRStructureElementAttributeValueEnumFooter = 0x464f4f54,
  FSLRStructureElementAttributeValueEnumWatermark = 0x57544d4b,
  FSLRStructureElementAttributeValueEnumPageNum = 0x504e554d,
  FSLRStructureElementAttributeValueEnumBates = 0x42415445,
  FSLRStructureElementAttributeValueEnumOther = 0x4f544845
};

typedef NS_ENUM(NSInteger, FSLRStructureElementAttributeValueType) {
  FSLRStructureElementAttributeValueTypeEmpty = 0x0,
  FSLRStructureElementAttributeValueTypeEnum = 0x1,
  FSLRStructureElementAttributeValueTypeInt32 = 0x2,
  FSLRStructureElementAttributeValueTypeFloat = 0x3,
  FSLRStructureElementAttributeValueTypeARGB = 0x4,
  FSLRStructureElementAttributeValueTypeWStr = 0x5,
  FSLRStructureElementAttributeValueTypeElement = 0x6,
  FSLRStructureElementAttributeValueTypeEnumArray = 0x101,
  FSLRStructureElementAttributeValueTypeInt32Array = 0x102,
  FSLRStructureElementAttributeValueTypeFloatArray = 0x103,
  FSLRStructureElementAttributeValueTypeARGBArray = 0x104,
  FSLRStructureElementAttributeValueTypeWStrArray = 0x105,
  FSLRStructureElementAttributeValueTypeElementArray = 0x106
};

@interface FSLRStructureElement : FSLRElement
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSLRStructureElement*)other;
-(id)initWithElement: (FSLRElement*)element;
+(NSString *)stringifyAttributeType: (FSLRStructureElementAttributeType)type;
+(FSLRStructureElementAttributeType)parseAttributeType: (NSString *)type_string;
+(NSString *)stringifyEnumVariant: (FSLRStructureElementAttributeValueEnum)type;
+(BOOL)isArrayAttributeValueType: (FSLRStructureElementAttributeValueType)type;
-(int)getSupportedAttributeCount;
-(FSLRStructureElementAttributeType)getSupportedAttribute: (int)index;
-(int)getAttributeValueCount: (FSLRStructureElementAttributeType)type;
-(FSLRStructureElementAttributeValueType)getAttributeValueType: (FSLRStructureElementAttributeType)type;
-(FSLRStructureElementAttributeValueEnum)getAttributeValueEnum: (FSLRStructureElementAttributeType)type index: (int)index;
-(int)getAttributeValueInt32: (FSLRStructureElementAttributeType)type index: (int)index;
-(float)getAttributeValueFloat: (FSLRStructureElementAttributeType)type index: (int)index;
-(unsigned int)getAttributeValueARGB: (FSLRStructureElementAttributeType)type index: (int)index;
-(NSString *)getAttributeValueString: (FSLRStructureElementAttributeType)type index: (int)index;
-(FSLRStructureElement*)getAttributeValueElement: (FSLRStructureElementAttributeType)type index: (int)index;
-(FSLRStructureElement*)getParentElement;
-(int)getChildCount;
-(FSLRElement*)getChild: (int)index;
-(FSRectF*)getBBox;

-(void)dealloc;

@end

@interface FSLRGraphicsObjectElement : FSLRElement
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSLRGraphicsObjectElement*)other;
-(id)initWithElement: (FSLRElement*)element;
-(FSLRGraphicsObjectElement*)getParentGraphicsObjectElement;
-(FSGraphicsObject*)getGraphicsObject;
-(FSPDFDictionary*)getDict;
-(int)getGraphicsObjectIndex;
-(FSRectF*)getBBox;
-(FSMatrix2D*)getMatrix;

-(void)dealloc;

@end

@interface FSLRContentElement : FSLRElement
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSLRContentElement*)other;
-(id)initWithElement: (FSLRElement*)element;
-(FSLRStructureElement*)getParentElement;
-(FSLRGraphicsObjectElement*)getGraphicsObjectElement;
-(FSRange*)getGraphicsObjectRange;
-(FSRectF*)getBBox;
-(FSMatrix2D*)getMatrix;

-(void)dealloc;

@end

@interface FSLRContext : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPage: (FSPDFPage*)page;
-(id)initWithOther: (FSLRContext*)other;
-(BOOL)isEmpty;
-(FSProgressive*)startParse: (id<FSPauseCallback>)pause;
-(FSLRStructureElement*)getRootElement;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSTaggedPDFCallbackReportCategory) {
  FSTaggedPDFCallbackReportCategoryRegion = 0,
  FSTaggedPDFCallbackReportCategoryArtifact = 1,
  FSTaggedPDFCallbackReportCategoryParagraph = 2,
  FSTaggedPDFCallbackReportCategoryListItem = 3,
  FSTaggedPDFCallbackReportCategoryFigure = 4,
  FSTaggedPDFCallbackReportCategoryTable = 5,
  FSTaggedPDFCallbackReportCategoryTableRow = 6,
  FSTaggedPDFCallbackReportCategoryTableHeader = 7,
  FSTaggedPDFCallbackReportCategoryTocItem = 8
};

typedef NS_ENUM(NSInteger, FSTaggedPDFCallbackReportConfidence) {
  FSTaggedPDFCallbackReportConfidenceHigh = 0,
  FSTaggedPDFCallbackReportConfidenceMediumHigh = 1,
  FSTaggedPDFCallbackReportConfidenceMedium = 2,
  FSTaggedPDFCallbackReportConfidenceMediumLow = 3,
  FSTaggedPDFCallbackReportConfidenceLow = 4
};



@interface FSTaggedPDF : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDoc: (FSPDFDoc*)doc;
-(id)initWithOther: (FSTaggedPDF*)other;
-(BOOL)isEmpty;
-(void)setCallback: (id<FSTaggedPDFCallback>)callback;
-(FSProgressive*)startTagDocument: (id<FSPauseCallback>)pause;
-(int)getFigureCount;
-(BOOL)setAsDecorativeFigure: (int)figure_index;
-(void)setFigureAlternateText: (int)figure_index alternate_text: (NSString *)alternate_text;
-(NSString *)getFigureAlternateText: (int)figure_index;
-(FSRectF*)getFigureRect: (int)figure_index;
-(int)getFigurePageIndex: (int)figure_index;

-(void)dealloc;

@end

@interface FSFindOption : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getIs_whole_word) BOOL is_whole_word;
@property (nonatomic, getter=getIs_case_sensitive) BOOL is_case_sensitive;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithIs_whole_word: (BOOL)is_whole_word is_case_sensitive: (BOOL)is_case_sensitive;
-(id)initWithFind_option: (FSFindOption*)find_option;
-(void)set: (BOOL)is_whole_word is_case_sensitive: (BOOL)is_case_sensitive;
-(void)dealloc;

@end



@interface FSTextSearchReplace : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDoc: (FSPDFDoc*)doc;
-(id)initWithOther: (FSTextSearchReplace*)other;
-(BOOL)isEmpty;
-(void)setPattern: (NSString *)keywords page_index: (int)page_index find_option: (FSFindOption*)find_option;
-(void)setReplaceCallback: (id<FSReplaceCallback>)replace_callback;
-(BOOL)replacePrev: (NSString *)replace_text;
-(BOOL)replaceNext: (NSString *)replace_text;

-(void)dealloc;

@end



@interface FSParagraphEditingUndoItem : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSParagraphEditingUndoItem*)other;
-(BOOL)isEmpty;
-(void)undo;
-(void)redo;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSParagraphEditingBulletType) {
  FSParagraphEditingBulletTypeNone = 0,
  FSParagraphEditingBulletTypeSolidCircle = 1,
  FSParagraphEditingBulletTypeSolidRectangle = 2,
  FSParagraphEditingBulletTypeSolidDiamond = 3,
  FSParagraphEditingBulletTypeCheck = 4,
  FSParagraphEditingBulletTypeRightArrow = 5,
  FSParagraphEditingBulletTypeInverseTangentCircle = 6,
  FSParagraphEditingBulletTypeDiagonalUpRightArrow = 7,
  FSParagraphEditingBulletTypeBlackDiamondMinusWhite = 8
};

typedef NS_ENUM(NSInteger, FSParagraphEditingNumberingType) {
  FSParagraphEditingNumberingTypeNone = 0,
  FSParagraphEditingNumberingTypeDecimalDot = 1,
  FSParagraphEditingNumberingTypeDecimalRParen = 2,
  FSParagraphEditingNumberingTypeUpperLatinDot = 3,
  FSParagraphEditingNumberingTypeLowerLatinRParen = 4,
  FSParagraphEditingNumberingTypeLowerLatinDot = 5
};

@interface FSParagraphEditing : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSParagraphEditing*)other;
-(BOOL)isEmpty;
-(BOOL)activate;
-(BOOL)deactivate;
-(void)startEditing: (int)page_index start_point: (FSPointF*)start_point end_point: (FSPointF*)end_point;
-(void)exitEditing: (BOOL)is_end_directly;
-(BOOL)insertText: (NSString *)text;
-(BOOL)render: (FSInt32Array*)page_index_array renderer: (FSRenderer*)renderer;
-(BOOL)onChar: (unsigned int)char_code;
-(BOOL)onKeyDown: (unsigned int)key_code;
-(BOOL)onKeyUp: (unsigned int)key_code;
-(BOOL)onLButtonDown: (int)page_index point: (FSPointF*)point;
-(BOOL)onLButtonUp: (int)page_index point: (FSPointF*)point;
-(BOOL)onLButtonDoubleClick: (int)page_index point: (FSPointF*)point;
-(BOOL)onMouseMove: (int)page_index point: (FSPointF*)point;
-(BOOL)onMouseWheel: (int)page_index point: (FSPointF*)point delta: (int)delta;
-(BOOL)canSelectAll;
-(BOOL)selectAll;
-(BOOL)canDelete;
-(BOOL)deleteSelected;
-(BOOL)canCopy;
-(BOOL)copySelected;
-(BOOL)canCut;
-(BOOL)cutSelected;
-(BOOL)canPaste;
-(BOOL)pasteSelected;
-(BOOL)canDeselectAll;
-(BOOL)deselectAll;
-(void)setFontName: (NSString *)font_name;
-(void)setFontSize: (float)font_size;
-(void)setTextColor: (unsigned int)text_color;
-(void)setBold: (BOOL)is_bold;
-(void)setItalic: (BOOL)is_italic;
-(void)setAlignment: (FSAlignment)alignment;
-(void)setCharSpace: (float)char_space;
-(void)setCharHorizontalScale: (int)scale;
-(void)setLineSpace: (float)line_space;
-(void)setUnderline: (BOOL)is_underline;
-(void)setStrikethrough: (BOOL)is_striketrough;
-(void)setSuperscript: (BOOL)is_superscript;
-(void)setSubscript: (BOOL)is_subscript;
-(void)setParagraphSpacing: (float)paragraph_space;
-(void)indent;
-(void)dedent;
-(void)setBulletedList: (FSParagraphEditingBulletType)bullet_type;
-(void)setNumberedList: (FSParagraphEditingNumberingType)numbering_type;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSJoinSplitJoinSplitOperationType) {
  FSJoinSplitJoinSplitOperationTypeJoin = 0,
  FSJoinSplitJoinSplitOperationTypeSpilt = 1,
  FSJoinSplitJoinSplitOperationTypeLink = 2,
  FSJoinSplitJoinSplitOperationTypeUnlink = 3,
  FSJoinSplitJoinSplitOperationTypeSelectNone = 4,
  FSJoinSplitJoinSplitOperationTypeClose = 5
};

@interface FSJoinSplit : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSJoinSplit*)other;
-(BOOL)isEmpty;
-(BOOL)activate;
-(BOOL)deactivate;
-(void)exitJoinEditing;
-(BOOL)render: (FSInt32Array*)page_index_array renderer: (FSRenderer*)renderer;
-(BOOL)onLButtonDown: (int)page_index point: (FSPointF*)point;
-(BOOL)onLButtonUp: (int)page_index point: (FSPointF*)point;
-(BOOL)onMouseMove: (int)page_index point: (FSPointF*)point;
-(BOOL)getEnableStatus: (FSJoinSplitJoinSplitOperationType)type;
-(void)joinBoxes;
-(void)splitBoxes;
-(void)linkBoxes;
-(void)unlinkBoxes;
-(void)selectNone;

-(void)dealloc;

@end

@interface FSParagraphEditingMgr : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithCallback: (id<FSParagraphEditingProviderCallback>)callback document: (FSPDFDoc*)document;
-(id)initWithOther: (FSParagraphEditingMgr*)other;
-(BOOL)isEmpty;
-(FSParagraphEditing*)getParagraphEditing;
-(FSJoinSplit*)getJoinSplit;
-(void)setSystemDPI: (float)horizontal_dpi vertical_dpi: (float)vertical_dpi;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSResponseResponseType) {
  FSResponseTypeNone = 0,
  FSResponseTypeCRL = 1,
  FSResponseTypeOCSP = 2
};

@interface FSResponse : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getType) FSResponseResponseType type;
@property (nonatomic, weak, getter=getResponse_data) NSData * response_data;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithType: (FSResponseResponseType)type response_data: (NSData *)response_data;
-(id)init;
-(id)initWithOther: (FSResponse*)other;
-(void)set: (FSResponseResponseType)type response_data: (NSData *)response_data;

-(void)dealloc;

@end

@interface FSTimeRange : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getStart_time) FSDateTime* start_time;
@property (nonatomic, weak, getter=getEnd_time) FSDateTime* end_time;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithStart_time: (FSDateTime*)start_time end_time: (FSDateTime*)end_time;
-(id)init;
-(id)initWithOther: (FSTimeRange*)other;
-(void)set: (FSDateTime*)start_time end_time: (FSDateTime*)end_time;
-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSCertVerifyResultCertStatus) {
  FSCertVerifyResultCertStatusValid = 0,
  FSCertVerifyResultCertStatusRevoked = 1,
  FSCertVerifyResultCertStatusExpired = 2,
  FSCertVerifyResultCertStatusUnknown = 3
};

typedef NS_ENUM(NSInteger, FSCertVerifyResultRevocationReason) {
  FSCertVerifyResultReasonNoStatus = -1,
  FSCertVerifyResultReasonUnspecified = 0,
  FSCertVerifyResultReasonKeyCompromise = 1,
  FSCertVerifyResultReasonCACompromise = 2,
  FSCertVerifyResultReasonAffiliationChanged = 3,
  FSCertVerifyResultReasonSuperseded = 4,
  FSCertVerifyResultReasonCessationOfOperation = 5,
  FSCertVerifyResultReasonCertificateHold = 6,
  FSCertVerifyResultReasonRemoveFromCRL = 7,
  FSCertVerifyResultReasonPrivilegeWithDrawn = 8,
  FSCertVerifyResultReasonAACompromise = 9
};

typedef NS_ENUM(NSInteger, FSCertVerifyResultResponseInfoLocation) {
  FSCertVerifyResultLocationNotSet = 0,
  FSCertVerifyResultLocationDSS = 1,
  FSCertVerifyResultLocationSignature = 2,
  FSCertVerifyResultLocationOnline = 3
};

@interface FSCertVerifyResult : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, getter=getIs_ca) BOOL is_ca;
@property (nonatomic, getter=getIs_trusted) BOOL is_trusted;
@property (nonatomic, weak, getter=getResponse) FSResponse* response;
@property (nonatomic, weak, getter=getResponse_effect_time_range) FSTimeRange* response_effect_time_range;
@property (nonatomic, weak, getter=getRevoke_time) FSDateTime* revoke_time;
@property (nonatomic, getter=getCert_status) FSCertVerifyResultCertStatus cert_status;
@property (nonatomic, getter=getReason) FSCertVerifyResultRevocationReason reason;
@property (nonatomic, weak, getter=getCert_check_time) FSDateTime* cert_check_time;
@property (nonatomic, getter=getExist_signature_vri_creation_time) BOOL exist_signature_vri_creation_time;
@property (nonatomic, weak, getter=getSignature_vri_creation_time) FSDateTime* signature_vri_creation_time;
@property (nonatomic, getter=getExist_response_signature_vri_creation_time) BOOL exist_response_signature_vri_creation_time;
@property (nonatomic, weak, getter=getResponse_signature_vri_creation_time) FSDateTime* response_signature_vri_creation_time;
@property (nonatomic, getter=getResponse_info_location) FSCertVerifyResultResponseInfoLocation response_info_location;
@property (nonatomic, weak, getter=getCert) NSData * cert;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithCert: (NSData *)cert is_ca: (BOOL)is_ca is_trusted: (BOOL)is_trusted response: (FSResponse*)response response_effect_time_range: (FSTimeRange*)response_effect_time_range revoke_time: (FSDateTime*)revoke_time cert_status: (FSCertVerifyResultCertStatus)cert_status reason: (FSCertVerifyResultRevocationReason)reason cert_check_time: (FSDateTime*)cert_check_time exist_signature_vri_creation_time: (BOOL)exist_signature_vri_creation_time signature_vri_creation_time: (FSDateTime*)signature_vri_creation_time exist_response_signature_vri_creation_time: (BOOL)exist_response_signature_vri_creation_time response_signature_vri_creation_time: (FSDateTime*)response_signature_vri_creation_time response_info_location: (FSCertVerifyResultResponseInfoLocation)response_info_location;
-(id)init;
-(id)initWithOther: (FSCertVerifyResult*)other;
-(void)set: (NSData *)cert is_ca: (BOOL)is_ca is_trusted: (BOOL)is_trusted response: (FSResponse*)response response_effect_time_range: (FSTimeRange*)response_effect_time_range revoke_time: (FSDateTime*)revoke_time cert_status: (FSCertVerifyResultCertStatus)cert_status reason: (FSCertVerifyResultRevocationReason)reason cert_check_time: (FSDateTime*)cert_check_time exist_signature_vri_creation_time: (BOOL)exist_signature_vri_creation_time signature_vri_creation_time: (FSDateTime*)signature_vri_creation_time exist_response_signature_vri_creation_time: (BOOL)exist_response_signature_vri_creation_time response_signature_vri_creation_time: (FSDateTime*)response_signature_vri_creation_time response_info_location: (FSCertVerifyResultResponseInfoLocation)response_info_location;

-(void)dealloc;

@end

@interface FSCertVerifyResultArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSCertVerifyResultArray*)other;
-(unsigned long)getSize;
-(FSCertVerifyResult*)getAt: (unsigned long)index;
-(void)add: (FSCertVerifyResult*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSCertVerifyResult*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSCertIssuerPair : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getIssuer) NSData * issuer;
@property (nonatomic, weak, getter=getCert) NSData * cert;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithCert: (NSData *)cert issuer: (NSData *)issuer;
-(id)init;
-(id)initWithOther: (FSCertIssuerPair*)other;
-(void)set: (NSData *)cert issuer: (NSData *)issuer;

-(void)dealloc;

@end

@interface FSRevocationArrayInfo : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getOcsp_array) NSArray<NSData *> * ocsp_array;
@property (nonatomic, weak, getter=getCrl_array) NSArray<NSData *> * crl_array;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOcsp_array: (NSArray<NSData *> *)ocsp_array crl_array: (NSArray<NSData *> *)crl_array;
-(id)init;
-(id)initWithOther: (FSRevocationArrayInfo*)other;
-(void)set: (NSArray<NSData *> *)ocsp_array crl_array: (NSArray<NSData *> *)crl_array;
-(void)dealloc;

@end







@interface FSSignatureVerifyResultArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSignatureVerifyResultArray*)other;
-(unsigned long)getSize;
-(FSSignatureVerifyResult*)getAt: (unsigned long)index;
-(void)add: (FSSignatureVerifyResult*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSSignatureVerifyResult*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSLTVVerifierTimeType) {
  FSLTVVerifierSignatureCreationTime = 0,
  FSLTVVerifierSignatureTSTTime = 1,
  FSLTVVerifierCurrentTime = 2,
  FSLTVVerifierVRICreationTime = 3
};

typedef NS_ENUM(NSInteger, FSLTVVerifierVerifyMode) {
  FSLTVVerifierVerifyModeAcrobat = 1
};

@interface FSLTVVerifier : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document is_verify_signature: (BOOL)is_verify_signature use_expired_tst: (BOOL)use_expired_tst ignore_doc_info: (BOOL)ignore_doc_info time_type: (FSLTVVerifierTimeType)time_type;
-(id)initWithOther: (FSLTVVerifier*)other;
-(BOOL)isEmpty;
-(void)setRevocationCallback: (id<FSRevocationCallback>)callback;
-(void)setVerifyMode: (FSLTVVerifierVerifyMode)mode;
-(void)setTrustedCertStoreCallback: (id<FSTrustedCertStoreCallback>)callback;
-(FSSignatureVerifyResultArray*)verify;
-(FSSignatureVerifyResultArray*)verifySignature: (FSSignature*)signature;
-(void)addDSS: (FSSignatureVerifyResult*)signature_verify_result;
-(void)setCertChainResolverCallback: (id<FSCertChainResolverCallback>)callback;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSignatureVerifyResultLTVState) {
  FSSignatureVerifyResultLTVStateInactive = 0,
  FSSignatureVerifyResultLTVStateEnable = 1,
  FSSignatureVerifyResultLTVStateNotEnable = 2
};

@interface FSSignatureVerifyResult : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSSignatureVerifyResult*)other;
-(BOOL)isEmpty;
-(NSString *)getSignatureName;
-(unsigned int)getSignatureState;
-(FSDateTime*)getSignatureCheckTime;
-(FSLTVVerifierTimeType)getSignatureCheckTimeType;
-(FSSignatureVerifyResultLTVState)getLTVState;
-(FSCertVerifyResultArray*)getCertificateVerifyResults;
-(FSSignatureVerifyResultArray*)getOCSPSigantureVerifyResults;
-(FSSignatureVerifyResult*)getTSTSignatureVerifyResult;
-(NSData *)getSignatureHashValue;

-(void)dealloc;

@end

@interface FSTextFillSignObjectData : FSBase
@property (nonatomic, weak, getter=getText_state) FSTextState* text_state;
@property (nonatomic, weak, getter=getText) NSString * text;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithText_state: (FSTextState*)text_state text: (NSString *)text;
-(id)initWithText_data: (FSTextFillSignObjectData*)text_data;
-(void)set: (FSTextState*)text_state text: (NSString *)text;
-(void)dealloc;

@end

@interface FSTextFillSignObjectDataArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSTextFillSignObjectDataArray*)other;
-(unsigned long)getSize;
-(FSTextFillSignObjectData*)getAt: (unsigned long)index;
-(void)add: (FSTextFillSignObjectData*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSTextFillSignObjectData*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSFillSignFillSignObjectType) {
  FSFillSignFillSignObjectTypeText = 0,
  FSFillSignFillSignObjectTypeCrossMark = 1,
  FSFillSignFillSignObjectTypeCheckMark = 2,
  FSFillSignFillSignObjectTypeRoundRectangle = 3,
  FSFillSignFillSignObjectTypeLine = 4,
  FSFillSignFillSignObjectTypeDot = 5,
  FSFillSignFillSignObjectTypeSignature = 6,
  FSFillSignFillSignObjectTypeInitialsSignature = 7
};

@interface FSFillSign : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPage: (FSPDFPage*)page;
-(id)initWithOther: (FSFillSign*)other;
-(BOOL)isEmpty;
-(FSFillSignObject*)addObject: (FSFillSignFillSignObjectType)type point: (FSPointF*)point width: (float)width height: (float)height rotation: (FSRotation)rotation;
-(FSFillSignObject*)addTextObject: (FSTextFillSignObjectDataArray*)text_data point: (FSPointF*)point width: (float)width height: (float)height rotation: (FSRotation)rotation is_comb_field_mode: (BOOL)is_comb_field_mode;
-(BOOL)removeObject: (FSFillSignObject*)fillsign_object;
-(FSFillSignObject*)getObjectAtPoint: (FSPointF*)point;
-(FSFillSignObject*)getObjectAtDevicePoint: (FSPointF*)point matrix: (FSMatrix2D*)matrix;

-(void)dealloc;

@end

@interface FSFillSignObject : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSFillSignObject*)other;
-(id)init;
-(BOOL)isEmpty;
-(FSFillSignFillSignObjectType)getType;
-(void)move: (FSPointF*)point width: (float)width height: (float)height rotation: (FSRotation)rotation;
-(FSRectF*)getRect;
-(BOOL)generateContent;

-(void)dealloc;

@end

@interface FSTextFillSignObject : FSFillSignObject
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFillsign_object: (FSFillSignObject*)fillsign_object;
-(FSTextFillSignObjectDataArray*)getTextDataArray;
-(BOOL)isCombFieldMode;

-(void)dealloc;

@end

@interface FSSignatureFillSignObject : FSFillSignObject
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFillsign_object: (FSFillSignObject*)fillsign_object;
-(BOOL)isInitialsType;
-(void)setBitmap: (FSBitmap*)bitmap;

-(void)dealloc;

@end

@interface FSCombineDocumentInfo : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFile_path: (NSString *)file_path password: (NSString *)password;
-(id)initWithDoc: (FSPDFDoc*)doc;
-(id)initWithOther: (FSCombineDocumentInfo*)other;
-(BOOL)isEmpty;
-(void)setBookmarkTitle: (NSString *)bookmark_title;
-(void)setPDFFileName: (NSString *)pdf_file_name;

-(void)dealloc;

@end

@interface FSCombineDocumentInfoArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSCombineDocumentInfoArray*)other;
-(unsigned long)getSize;
-(FSCombineDocumentInfo*)getAt: (unsigned long)index;
-(void)add: (FSCombineDocumentInfo*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSCombineDocumentInfo*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSCombinationCombineDocsOptions) {
  FSCombinationCombineDocsOptionBookmark = 0x0001,
  FSCombinationCombineDocsOptionAcroformRename = 0x0002,
  FSCombinationCombineDocsOptionStructrueTree = 0x0004,
  FSCombinationCombineDocsOptionOutputIntents = 0x0008,
  FSCombinationCombineDocsOptionOCProperties = 0x0010,
  FSCombinationCombineDocsOptionMarkInfos = 0x0020,
  FSCombinationCombineDocsOptionPageLabels = 0x0040,
  FSCombinationCombineDocsOptionNames = 0x0080,
  FSCombinationCombineDocsOptionObjectStream = 0x0100,
  FSCombinationCombineDocsOptionDuplicateStream = 0x0200
};

@interface FSCombination : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSProgressive*)startCombineDocuments: (NSString *)dest_file_path document_array: (FSCombineDocumentInfoArray*)document_array options: (unsigned int)options pause: (id<FSPauseCallback>)pause;
+(FSProgressive*)startCombineDocumentsWithWriterCallback: (id<FSFileWriterCallback>)dest_file document_array: (FSCombineDocumentInfoArray*)document_array options: (unsigned int)options pause: (id<FSPauseCallback>)pause;
-(id)init;

-(void)dealloc;

@end

@interface FSFormFileInfo : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFile_path: (NSString *)file_path password: (NSString *)password;
-(id)initWithReader_callback: (id<FSFileReaderCallback>)reader_callback password: (NSString *)password file_name: (NSString *)file_name;
-(id)initWithOther: (FSFormFileInfo*)other;
-(BOOL)isEmpty;

-(void)dealloc;

@end

@interface FSFormFileInfoArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSFormFileInfoArray*)other;
-(unsigned long)getSize;
-(FSFormFileInfo*)getAt: (unsigned long)index;
-(void)add: (FSFormFileInfo*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSFormFileInfo*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSFormCombination : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(void)combineFormsToCSV: (FSFormFileInfoArray*)form_file_array dest_csv_file: (NSString *)dest_csv_file append: (BOOL)append;
+(void)combineFormsToCSVWithStreamCallback: (FSFormFileInfoArray*)form_file_array dest_csv_file: (id<FSFileStreamCallback>)dest_csv_file append: (BOOL)append;
-(id)init;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSAnnotationSummaryCallbackAnnotationSummaryStringID) {
  FSAnnotationSummaryCallbackAnnotationSummaryStringIDAuthor = 0,
  FSAnnotationSummaryCallbackAnnotationSummaryStringIDDate = 1,
  FSAnnotationSummaryCallbackAnnotationSummaryStringIDPage = 2,
  FSAnnotationSummaryCallbackAnnotationSummaryStringIDType = 3,
  FSAnnotationSummaryCallbackAnnotationSummaryStringIDDocumentTitle = 4,
  FSAnnotationSummaryCallbackAnnotationSummaryStringIDPageTitle = 5,
  FSAnnotationSummaryCallbackAnnotationSummaryStringIDNoAnnotations = 6,
  FSAnnotationSummaryCallbackAnnotationSummaryStringIDNumber = 7,
  FSAnnotationSummaryCallbackAnnotationSummaryStringIDSubject = 8
};



typedef NS_ENUM(NSInteger, FSAnnotationSummarySettingsSummaryLayout) {
  FSAnnotationSummarySettingsSummaryLayoutSeparatePagesWithLine = 0,
  FSAnnotationSummarySettingsSummaryLayoutSinglePageWithLine = 1,
  FSAnnotationSummarySettingsSummaryLayoutAnnotationOnly = 2,
  FSAnnotationSummarySettingsSummaryLayoutSeparatePagesWithSequenceNumber = 3,
  FSAnnotationSummarySettingsSummaryLayoutSinglePageWithSequenceNumber = 4
};

typedef NS_ENUM(NSInteger, FSAnnotationSummarySettingsSortType) {
  FSAnnotationSummarySettingsTypeSortByAuthor = 0,
  FSAnnotationSummarySettingsTypeSortByDate = 1,
  FSAnnotationSummarySettingsTypeSortByPage = 2,
  FSAnnotationSummarySettingsTypeSortByAnnotationType = 3
};

typedef NS_ENUM(NSInteger, FSAnnotationSummarySettingsFontSizeType) {
  FSAnnotationSummarySettingsFontSizeSmall = 0,
  FSAnnotationSummarySettingsFontSizeMedium = 1,
  FSAnnotationSummarySettingsFontSizeLarge = 2
};

@interface FSAnnotationSummarySettings : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSAnnotationSummarySettings*)other;
-(BOOL)isEmpty;
-(void)setSummaryLayout: (FSAnnotationSummarySettingsSummaryLayout)type;
-(void)setSortType: (FSAnnotationSummarySettingsSortType)type;
-(void)setFontSize: (FSAnnotationSummarySettingsFontSizeType)type;
-(void)setAnnotType: (FSAnnotType)type use_all: (BOOL)use_all;
-(void)setFileTitle: (NSString *)title;
-(void)setPageRect: (FSRectF*)rect;
-(void)setPageMargin: (FSRectF*)margin;
-(void)setStartPage: (int)page_index;
-(void)setEndPage: (int)page_index;
-(void)enableOutputNoAnnotationPage: (BOOL)enable;
-(void)setConnectorLineColor: (unsigned int)color;
-(void)setConnectorLineOpacity: (float)opacity;
-(void)setAnnotThumbnail: (FSAnnotType)type thumbnail: (FSBitmap*)thumbnail;

-(void)dealloc;

@end

@interface FSAnnotationSummary : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithDocument: (FSPDFDoc*)document;
-(id)initWithOther: (FSAnnotationSummary*)other;
-(BOOL)isEmpty;
-(void)setCallback: (id<FSAnnotationSummaryCallback>)callback;
-(FSProgressive*)startSummarize: (NSString *)dest_file_path settings: (FSAnnotationSummarySettings*)settings pause: (id<FSPauseCallback>)pause;
-(FSProgressive*)startSummarizeWithWriterCallback: (id<FSFileWriterCallback>)dest_file settings: (FSAnnotationSummarySettings*)settings pause: (id<FSPauseCallback>)pause;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSOutputPreviewShowType) {
  FSOutputPreviewShowAll = 0,
  FSOutputPreviewShowDeviceCMYK = 1,
  FSOutputPreviewShowNotDeviceCMYK = 2,
  FSOutputPreviewShowICCBasedCMYK = 3,
  FSOutputPreviewShowSpotColor = 4,
  FSOutputPreviewShowDeviceCMYKAndSpot = 5,
  FSOutputPreviewShowNotDeviceCMYKOrSpot = 6,
  FSOutputPreviewShowDeviceN = 7,
  FSOutputPreviewShowCMYK = 8,
  FSOutputPreviewShowRGB = 9,
  FSOutputPreviewShowDeviceRGB = 10,
  FSOutputPreviewShowICCBasedRGB = 11,
  FSOutputPreviewShowGray = 12,
  FSOutputPreviewShowDeviceGray = 13,
  FSOutputPreviewShowCalGray = 14,
  FSOutputPreviewShowCalibrated = 15,
  FSOutputPreviewShowLab = 16,
  FSOutputPreviewShowDevice = 17,
  FSOutputPreviewShowImages = 18,
  FSOutputPreviewShowSolidColor = 19,
  FSOutputPreviewShowSmoothShades = 20,
  FSOutputPreviewShowRegistrationColor = 21,
  FSOutputPreviewShowText = 22,
  FSOutputPreviewShowLineArt = 23
};

typedef NS_ENUM(NSInteger, FSOutputPreviewColorantType) {
  FSOutputPreviewColorantTypeProcess = 0,
  FSOutputPreviewColorantTypeSpot = 1
};

@interface FSOutputPreview : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPdf_doc: (FSPDFDoc*)pdf_doc;
-(id)initWithOther: (FSOutputPreview*)other;
-(BOOL)isEmpty;
-(void)setSimulationProfile: (NSString *)icc_profile_path;
-(void)setShowType: (FSOutputPreviewShowType)show_type;
-(NSArray<NSString *> *)getPlates: (FSOutputPreviewColorantType)colorant_type;
-(unsigned int)getSpotPlateColor: (NSString *)plate_name;
-(void)setCheckStatus: (NSString *)plate_name to_check: (BOOL)to_check;
-(BOOL)isChecked: (NSString *)plate_name;
-(void)enableSimulateOverprint: (BOOL)is_to_simulate_overprint;
-(FSBitmap*)generatePreviewBitmap: (FSPDFPage*)page matrix: (FSMatrix2D*)matrix renderer: (FSRenderer*)renderer;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPortfolioNodeType) {
  FSPortfolioNodeTypeUnknown = 0,
  FSPortfolioNodeTypeFolder = 1,
  FSPortfolioNodeTypeFile = 2
};

@interface FSPortfolioNode : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSPortfolioNode*)other;
-(BOOL)isEmpty;
-(FSPortfolioNodeType)getNodeType;

-(void)dealloc;

@end

@interface FSPortfolioNodeArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSPortfolioNodeArray*)other;
-(unsigned long)getSize;
-(FSPortfolioNode*)getAt: (unsigned long)index;
-(void)add: (FSPortfolioNode*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSPortfolioNode*)element;
-(void)removeAll;

-(void)dealloc;

@end

@interface FSPortfolioFolderNode : FSPortfolioNode
@property (nonatomic, weak, getter=getDescription) NSString * description;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSPortfolioNode*)other;
-(BOOL)isRoot;
-(NSString *)getName;
-(FSPortfolioFileNode*)addFile: (NSString *)file_path;
-(FSPortfolioFileNode*)addFileWithStreamCallback: (id<FSFileStreamCallback>)file_stream file_name: (NSString *)file_name;
-(FSPortfolioFileNode*)addPDFDoc: (FSPDFDoc*)pdf_doc file_name: (NSString *)file_name;
-(FSPortfolioFolderNode*)addSubFolder: (NSString *)folder_name;
-(void)removeSubNode: (FSPortfolioNode*)sub_node;
-(FSPortfolioNodeArray*)getSortedSubNodes;
-(FSDateTime*)getModifiedDateTime;
-(FSDateTime*)getCreationDateTime;

-(void)dealloc;

@end

@interface FSPortfolioFileNode : FSPortfolioNode
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSPortfolioNode*)other;
-(FSFileSpec*)getFileSpec;
-(NSString *)getKeyName;

-(void)dealloc;

@end

@interface FSSchemaField : FSBase
@property (nonatomic, weak, getter=getKeyName) NSString * keyName;
@property (nonatomic, weak, getter=getSubtypeName) NSString * subtypeName;
@property (nonatomic, weak, getter=getDisplayName) NSString * displayName;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSchemaField*)other;
-(BOOL)isEmpty;
-(BOOL)isVisible;
-(void)setVisibility: (BOOL)is_visible;

-(void)dealloc;

@end

@interface FSSchemaFieldArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSchemaFieldArray*)other;
-(unsigned long)getSize;
-(FSSchemaField*)getAt: (unsigned long)index;
-(void)add: (FSSchemaField*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSSchemaField*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSPortfolioInitialViewMode) {
  FSPortfolioInitialViewUnknownMode = 0,
  FSPortfolioInitialViewDetailMode = 1,
  FSPortfolioInitialViewTileMode = 2,
  FSPortfolioInitialViewHidden = 3
};

@interface FSPortfolio : FSBase
@property (nonatomic, getter=getInitialViewMode) FSPortfolioInitialViewMode initialViewMode;
@property (nonatomic, weak, getter=getSortingFieldKeyName) NSString * sortingFieldKeyName;
@property (nonatomic, weak, getter=getInitialFileSpecKeyName) NSString * initialFileSpecKeyName;
@property (nonatomic, weak, getter=getSchemaFields) FSSchemaFieldArray* schemaFields;
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSPortfolio*)createPortfolio;
+(FSPortfolio*)createPortfolioWithPDFDoc: (FSPDFDoc*)portfolio_pdf_doc;
-(id)initWithOther: (FSPortfolio*)other;
-(BOOL)isEmpty;
-(FSPDFDoc*)getPortfolioPDFDoc;
-(FSPortfolioNode*)getRootNode;
-(BOOL)isSortedInAscending;
-(void)setSortingOrder: (BOOL)use_ascending_order;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSnappedPointSnappedPointType) {
  FSSnappedPointTypeNone = 0,
  FSSnappedPointTypeEndpoint = 1,
  FSSnappedPointTypeMidpoint = 2,
  FSSnappedPointTypeIntersectionPoint = 3,
  FSSnappedPointTypeNearestPoint = 4
};

@interface FSSnappedPoint : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithOther: (FSSnappedPoint*)other;
-(BOOL)isEmpty;
-(FSSnappedPointSnappedPointType)getType;
-(FSPointF*)getPoint;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSnapPointMgrSnapPointFlags) {
  FSSnapPointMgrFlagEndpoint = 0x0001,
  FSSnapPointMgrFlagMidpoint = 0x0002,
  FSSnapPointMgrFlagIntersectionPoint = 0x0004,
  FSSnapPointMgrFlagNearestPoint = 0x0008
};

@interface FSSnapPointMgr : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithPage: (FSPDFPage*)page;
-(id)initWithOther: (FSSnapPointMgr*)other;
-(BOOL)isEmpty;
-(void)reload;
-(FSSnappedPoint*)getSnappedPointAtPos: (FSPointF*)position flags: (unsigned int)flags;

-(void)dealloc;

@end

@interface FSSplitOutputSettingData : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getOutput_folder_path) NSString * output_folder_path;
@property (nonatomic, getter=getAdd_before_or_after_orginal_name) BOOL add_before_or_after_orginal_name;
@property (nonatomic, weak, getter=getCustom_name) NSString * custom_name;
@property (nonatomic, weak, getter=getSeparator) NSString * separator;
@property (nonatomic, getter=getIs_overwrite) BOOL is_overwrite;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(void)set: (NSString *)output_folder_path add_before_or_after_orginal_name: (BOOL)add_before_or_after_orginal_name custom_name: (NSString *)custom_name separator: (NSString *)separator is_overwrite: (BOOL)is_overwrite;
-(void)dealloc;

@end

@interface FSSplitDocumentInfo : FSBase
-(id)init NS_UNAVAILABLE;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)initWithFile_path: (NSString *)file_path password: (NSString *)password;
-(id)initWithFile_reader: (id<FSFileReaderCallback>)file_reader password: (NSString *)password file_name: (NSString *)file_name;
-(id)initWithDoc: (FSPDFDoc*)doc file_name: (NSString *)file_name;
-(id)initWithOther: (FSSplitDocumentInfo*)other;
-(BOOL)isEmpty;

-(void)dealloc;

@end

@interface FSSplitDocumentInfoArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSplitDocumentInfoArray*)other;
-(unsigned long)getSize;
-(FSSplitDocumentInfo*)getAt: (unsigned long)index;
-(void)add: (FSSplitDocumentInfo*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSSplitDocumentInfo*)element;
-(void)removeAll;

-(void)dealloc;

@end

typedef NS_ENUM(NSInteger, FSSplitFileResultSplitFileState) {
  FSSplitFileResultSplitFileSuccess = 0,
  FSSplitFileResultSplitFileErrSizeTooSmall = 1,
  FSSplitFileResultSplitFileErrFileExist = 2,
  FSSplitFileResultSplitFileErrAccessDeny = 3
};

@interface FSSplitFileResult : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
@property (nonatomic, weak, getter=getBefore_splitting_file_name) NSString * before_splitting_file_name;
@property (nonatomic, weak, getter=getAfter_split_files_paths) NSArray<NSString *> * after_split_files_paths;
@property (nonatomic, getter=getSplit_file_state) FSSplitFileResultSplitFileState split_file_state;
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(void)dealloc;

@end

@interface FSSplitFileResultArray : NSObject
{
	void *swigCPtr;
	BOOL swigCMemOwn;
}
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
-(id)init;
-(id)initWithOther: (FSSplitFileResultArray*)other;
-(unsigned long)getSize;
-(FSSplitFileResult*)getAt: (unsigned long)index;
-(void)add: (FSSplitFileResult*)element;
-(void)removeAt: (unsigned long)index;
-(void)insertAt: (unsigned long)index element: (FSSplitFileResult*)element;
-(void)removeAll;

-(void)dealloc;

@end



@interface FSSplitPDFDoc : FSBase
-(void*)getCptr;
-(id)initWithCptr: (void*)cptr swigOwnCObject: (BOOL)ownCObject;
+(FSProgressive*)startSplitByFileSize: (float)max_file_size setting_data: (FSSplitOutputSettingData*)setting_data split_doc_array: (FSSplitDocumentInfoArray*)split_doc_array split_callback: (id<FSSplitPDFDocCallback>)split_callback;
-(id)init;

-(void)dealloc;

@end


/**
 * A callback class used to receive the progress of converting DWG to PDF.
 */
@protocol FSDWG2PDFProgressCallback <NSObject>
@required
  /**
   * @brief A callback function used to release current callback object itself.
   *
   * @return None.
   */
-(void)release;
  /**
   * @brief A callback function to be called when converting DWG to PDF.
   *
   * @param[in] message   The message of the current converting process.
   * @param[in] progress  The progress of the current converting process. It ranges from 0 to 100.
   *
   * @return None.
   */
-(void)onProgress:(NSString*)message progress:(float)progress;
@end
/**
* This class represents a callback object used to pause and notify the splitting progress during the splitting process, as well as to notify the result of the split.
* All the pure virtual functions in this class are used as callback functions and should be implemented by user.
*/
@protocol FSSplitPDFDocCallback <NSObject>
@required
/**
 * @brief A callback function used to pause the current splitting progress.
 *
 * @return <b>true</b> means to pause now, while <b>false</b> means not to pause now.
 */
-(BOOL)needToPause;

/**
 * @brief A callback function used to notify the current splitting progress.
 *
 * @param[in] before_splitting_file_name  The file name of the original PDF document before splitting.
 * @param[in] after_split_file_path       The file path of the PDF document generated by splitting.
 * @param[in] split_page_count            The count of pages to be split in the current PDF document.
 * @param[in] total_page_count            The total count of pages in the current PDF documen.
 *
 * @return None.
 */
-(void)progressNotify:(NSString*)before_splitting_file_name after_split_file_path:(NSString*)after_split_file_path split_page_count:(int)split_page_count total_page_count:(int)total_page_count;

/**
 * @brief A callback function used to notify the current split result.
 *
 * @param[in] result_array    An array of @link FSSplitFileResult @endlink objects.
 *                            When the splitting is completed, the result information of each file split will be notified.
 *
 * @return None.
 */
-(void)resultNotify:(FSSplitFileResultArray*)result_array;
@end


/**
 * This class represents a callback object used for pausing during a progressive process.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user
 * to do pausing in a customized way.
 */
@protocol FSPauseCallback <NSObject>
@required
/**
 * @brief Check whether need to pause now.
 *
 * @return <b>YES</b> means to pause now, while <b>NO</b> means not to pause now.
 */
-(BOOL)needPauseNow;
@end

/**
 * This class represents a callback object to do file reading.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user
 * to do file reading in a customized way.
 */
@protocol FSFileReaderCallback <NSObject>
@required
/**
 * @brief Read a data block from the file.
 *
 * @param[in] offset  Byte offset from beginning of the file
 * @param[in] size    Number of bytes for the block.
 *
 * @return A data block read from file.
 */
-(NSData *)readBlock: (unsigned long long)offset size: (unsigned long long)size;
/**
 * @brief Get total size of the file.
 *
 * @return File size, in bytes. Implementation can return 0 for any error.
 */
-(unsigned long long)getSize;
@end

/**
 * This class represents a callback object to do file writing.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user
 * to do file writing in a customized way.
 */
@protocol FSFileWriterCallback <NSObject>
@required
/**
 * @brief Get total size of the file.
 *
 * @return File size, in bytes. Implementation can return 0 for any error.
 */
-(unsigned long long)getSize;
/**
 * @brief Write a block data.
 *
 * @param[in] data    The block data.
 * @param[in] offset  Byte offset from beginning of the file
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)writeBlock:(NSData*)data offset:(unsigned long long)offset;
/**
 * @brief Flush internal buffer of the file
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)flush;
@end

/**
 * This class represents a callback object to do file reading and writing.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user
 * to do file reading and writing in a customized way.
 */
@protocol FSFileStreamCallback <NSObject>
@required
/**
 * @brief Get the current stream size, in bytes.
 *
 * @return Current stream size, in bytes.
 */
-(unsigned long long)getSize;

/**
 * @brief Read a data block from stream.
 *
 * @param[in] offset  Byte offset from beginning of the stream, the position to read data.
 * @param[in] size    Number of bytes to be read from stream.
 *
 * @return A data block read from stream.
 */
-(NSData *)readBlock: (unsigned long long)offset size: (unsigned long long)size;
/**
 * @brief	Write a block data into stream.
 *
 * @param[in] data    The block data.
 * @param[in] offset  Byte offset from beginning of the stream, the position to write data.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)writeBlock:(NSData*)data offset:(unsigned long long)offset;
/**
 * @brief Flush internal buffer
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)flush;
@end

/**
 * This class represents a callback object for performing media player actions.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 */
@protocol FSMediaPlayerCallback <NSObject>
@required

/**
 * @brief A callback function to play the media player.
 *
 * @details This callback function will be triggered by the javascript method "MediaPlayer.play".
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
  -(BOOL)play;

/**
 * @brief A callback function to close the media player.
 *
 * @details This callback function will be triggered by the javascript method "MediaPlayer.close".
 *
 * @return None.
 */
  -(void)close;

/**
 * @brief A callback function to stop the media player.
 *
 * @details This callback function will be triggered by the javascript method "MediaPlayer.stop".
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
  -(BOOL)stop;

/**
 * @brief A callback function to seek the media player.
 *
 * @details This callback function will be triggered by the javascript method "MediaPlayer.seek".
 *
 * @param[in] current_pos  Indicate the playback location.
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
  -(BOOL)seek:(int)current_pos;

/**
 * @brief A callback function to get the media player state.
 *
 * @details This callback function will be triggered by the javascript property "MediaPlayer.isOpen".
 *
 * @return The media player state.
 */
  -(FSMediaPlayerCallbackJSMediaPlayerState)getState;

/**
 * @brief A callback function to get the media player settings.
 *
 * @details This callback function will be triggered by the javascript property "MediaPlayer.visible".
 *
 * @return A @link MediaSettings @endlink object.
 */
  -(FSMediaSettings*)getPlayerSettings;

@end

/**
 * This class represents a callback object for performing PDF actions.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user,
 * to perform PDF actions, such as javascript actions.
 */
@protocol FSActionCallback <NSObject>
@required
/**
 * @brief A callback function to invalidate the client area within the specified rectangle.
 *
 * @details All positions are measured in PDF "user space". Implementation should call function
 *          @link FSRenderer::startRender:matrix:pause: @endlink for repainting a specified page area.
 *
 * @param[in] document    A PDF document object. It would be valid.
 * @param[in] page_index  A page index. It would start from 0 and less than page count of the specified document.
 * @param[in] pdf_rect    A rectangle that specifies the page area in [PDF coordinate system] (@ref FSPDFPage).
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)invalidateRect:(FSPDFDoc*)document page_index:(int)page_index pdf_rect:(FSRectF*)pdf_rect;

/**
 * @brief A callback function used to receive current page index.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document  A PDF document object. It would be valid.
 *
 * @return Current page index. The value should be stared from 0 and less than page count of the specified document.
 */
-(int)getCurrentPage:(FSPDFDoc*)document;
/**
 * @brief A callback function used to set the current page by index.
 *
 * @details This callback function is optional, so it can be implemented to do nothing.
 *
 * @param[in] document    A PDF document object. It would be valid.
 * @param[in] page_index  A page index which is used to change current page.
 *                        The index would start from 0 and less than page count of the specified document.
 *
 * @return None.
 */
-(void)setCurrentPage:(FSPDFDoc*)document page_index:(int)page_index;

/**
 * @brief A callback function used to set the current page by destination.
 *
 * @details This callback function is optional, so it can be implemented to do nothing.
 *
 * @param[in] document    A PDF document object. It would be valid.
 * @param[in] destination A @link FSDestination @link object.
 *
 * @return None.
*/

-(void)setCurrentPage:(FSPDFDoc*)document destination:(FSDestination*)destination;
/**
 * @brief A callback function used to receive current displaying rotation of a page on PDF viewer.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document    A PDF document object. It would be valid.
 * @param[in] page_index  A page index, used to specify which page's rotation is to be retrieved.
 *                        The index would start from 0 and less than page count of the specified document.
 *
 * @return The rotation of specified page. Please refer to values starting from @link FSRotation0 @endlink
 *         and this should be one of these values.
 */
-(FSRotation)getPageRotation:(FSPDFDoc*)document page_index:(int)page_index;
/**
 * @brief A callback function used to set the rotation value of a page on PDF viewer.
 *
 * @details This callback function is optional, so it can be implemented to do nothing.
 *
 * @param[in] document    A PDF document object. It would be valid.
 * @param[in] page_index  A page index, used to specify which page's rotation is to be changed.
 *                        The index would start from 0 and less than page count of the specified document.
 * @param[in] rotation    New rotation value. Please refer to values starting from @link FSRotation0 @endlink
 *                        and this would be one of these values except @link FSRotationUnknown @endlink.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)setPageRotation:(FSPDFDoc*)document page_index:(int)page_index rotation:(FSRotation)rotation;

/**
 * @brief A callback function to execute a named action.
 *
 * @details Please refer to description of "Named Actions" in Section 8.5.3 of <PDF Reference 1.7> for more details.
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document      A PDF document object. It would be valid.
 * @param[in] named_action  A string to specify a named action.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)executeNamedAction:(FSPDFDoc*)document named_action:(NSString*)named_action;

/**
 * @brief A callback function to set the change mark which indicates whether the content of document is
 *        changed or not.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document     A PDF document object. It would be valid.
 * @param[in] change_mark  A boolean value that indicates whether the content of document is changed or not.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)setDocChangeMark:(FSPDFDoc*)document change_mark:(BOOL)change_mark;
/**
 * @brief A callback function to receive the change mark which indicates whether the content of document is
 *        changed or not.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document  A PDF document object. It would be valid.
 *
 * @return <b>YES</b> means the PDF document is changed, while <b>NO</b> means not.
  */
-(BOOL)getDocChangeMark:(FSPDFDoc*)document;

/**
 * @brief A callback function to receive the count of opened documents.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return The count of opened documents.
 */
-(int)getOpenedDocCount;

/**
 * @brief A callback function to receive an opened PDF document object by index.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] index  The index of an opened PDF documents. Valid range: from 0 to <i>count</i>-1.
 *                   <i>count</i> is returned by callback function @link FSActionCallback::getOpenedDocCount @endlink
 *
 * @return A opened PDF document object.
 */
-(FSPDFDoc*)getOpenedDoc:(int)index;

/**
 * @brief A callback function to receive current PDF document object.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return Current PDF document object.
 */
-(FSPDFDoc*)getCurrentDoc;

/**
 * @brief A callback function to create a blank PDF document object.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return The newly created blank PDF document object.
 */
-(FSPDFDoc*)createBlankDoc;

/**
 * @brief A callback function to close document.
 *
 * @details This callback function will be triggered by the javascript method "Doc.closeDoc".
 *          This callback function is optional, so it can be implemented to do nothing.
 *
 * @param[in] document   A PDF document object. It would be valid.
 * @param[in] is_prompt_to_save <b>true</b> means show save prompt, while <b>false</b> means not.
 *
 * @return None.
 */
-(void)closeDoc:(FSPDFDoc*)document is_prompt_to_save:(BOOL)is_prompt_to_save;

/**
 * @brief A callback function to open a PDF file.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] file_path  A full path of an existing PDF file.
 * @param[in] password   Password for input PDF file. This may be an empty string.
 *
 * @return A opened PDF document object.
 */
-(FSPDFDoc*)openDoc:(NSString*)file_path password:(NSString*)password;
  
/**
 * @brief A callback function to cause the system to play a sound.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] type    Sound type. The value would be on of following values:<br>
 *                    <ul>
 *                    <li>0: Error</li>
 *                    <li>1: Warning</li>
 *                    <li>2: Question</li>
 *                    <li>3: Status</li>
 *                    <li>4: Default (default value)</li>
 *                    </ul>
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)beep:(int)type;

/**
 * @brief A callback function to display a dialog box containing a question and an entry field for the user to
 *        reply to the question.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] question       A string that specifies the question to be posed to the user.
 * @param[in] title          A string that specifies the title of the dialog box.
 * @param[in] default_value  A string that specifies a default value as the answer to the question.
 *                           If the answer is not specified, no default value is presented.
 * @param[in] label          A string that specifies a short string to appear in front of the edit text field.
 * @param[in] is_password    A boolean value that indicates whether user's response should be masked to show:<br>
 *                           <b>YES</b> means that the user's response should show as asterisks (*) or bullets (?)
 *                           to mask the response, which might be sensitive information. <br>
 *
 * @return User's response. It can be an empty string.
 */
-(NSString*)response:(NSString*)question title:(NSString*)title default_value:(NSString*)default_value label:(NSString*)label is_password:(BOOL)is_password;

/**
 * @brief A callback function to get the file path of current PDF document.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document  A PDF document object. It would be valid.
 *
 * @return The file path.
 */
-(NSString*)getFilePath:(FSPDFDoc*)document;

/**
 * @brief A callback function to get whether the file is local file.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document  A PDF document object. It would be valid.
 *
 * @return <b>true</b> means the PDF file is loacl file.
 */
-(BOOL)isLocalFile:(FSPDFDoc*)document;

/**
 * @brief A callback function to get the file path of attachments file.
 *
 * @details This callback function will be triggered by the javascript method "Doc.importDataObject".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] pdf_doc  A PDF document object. It will embed with a data object.
 * @param[in] name     The name to associate with the data object. It's the parameter "cName" of the method "Doc.importDataObject".
 *
 * @return The path of the file which will be embedded as a data object.
 */
-(NSString*)getAttachmentsFilePath:(FSPDFDoc*)pdf_doc name:(NSString*)name;

/**
 * @brief A callback function to get the file path of extracted embedded file.
 *
 * @details This callback function will be triggered by the javascript method "Doc.exportDataObject".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] pdf_doc  A PDF document object. It will be embedded as a data object to the file .
 * @param[in] name     The name of the data object to extract. It's the parameter "cName" of the method "Doc.exportDataObject".
 *
 * @return The path of the file which will embed with a data object.
 */
-(NSString*)getExtractedEmbeddedFilePath:(FSPDFDoc*)pdf_doc name:(NSString*)name;

/**
 * @brief A callback function to print pages within a specified index range.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document             A PDF document object. It would be valid.
 * @param[in] is_ui                <b>YES</b> means that a UI should be presented to the user
 *                                 to obtain printing information and confirm the action.
 * @param[in] page_range           A range object to specify the page range for printing.
 *                                 All the indexes represented in this range would start from 0 and
 *                                 less than page count of the specified document.
 * @param[in] is_silent            <b>YES</b> means that the cancel dialog box should be suppressed
 *                                 while the document is printing.
 * @param[in] is_shrunk_to_fit     <b>YES</b> means that the page should be shrunk (if necessary)
 *                                 to fit within the area of the printed page.
 * @param[in] is_printed_as_image  <b>YES</b> means that pages should be printed as image.
 * @param[in] is_reversed          <b>YES</b> means that the printing order should be from parameter <i>end</i> to
 *                                 parameter <i>start</i>.
 * @param[in] is_to_print_annots   <b>YES</b> means that annotations should be printed with page.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)print:(FSPDFDoc*)document is_ui:(BOOL)is_ui page_range:(FSRange*)page_range is_silent:(BOOL)is_silent is_shrunk_to_fit:(BOOL)is_shrunk_to_fit is_printed_as_image:(BOOL)is_printed_as_image is_reversed:(BOOL)is_reversed is_to_print_annots:(BOOL)is_to_print_annots;

/**
 * @brief A callback function to print document with print parameters.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document             A PDF document object. It would be valid.
 * @param[in] print_params         A @link FSPrintParams @endlink object.
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
-(BOOL)print:(FSPDFDoc*)document print_params:(FSPrintParams*)print_params;

/**
 * @brief A callback function to submit the form data to a specified URL.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document           A PDF document object. It would be valid.
 * @param[in] form_data          Pointer to a form data buffer which is to be submit.
 * @param[in] url                A URL, to which the form data will be submit.
 * @param[in] file_format_type   File format type for submission form. Please refer to values starting from @link foxit::common::e_FileFormatTypeFDF @endlink
 *                               and this would be one of these values.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)submitForm:(FSPDFDoc*)document form_data:(NSData*)form_data url:(NSString*)url file_format_type:(FSFileFormatType)file_format_type;

/**
 * @brief A callback function to launch to a specified URL.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] url  A URL.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)launchURL:(NSString*)url;

/**
 * @brief A callback function to show a file selection dialog, and the selected file path should be returned.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return The file path. It can be an empty string.
 */
-(NSString*)browseFile;

/**
 * @brief A callback function to show a file selection dialog.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in]  is_open_dialog       Whether is open or saving dialog, <b>true</b> means open dialog and <b>false</b> means saving dialog.
 * @param[in]  file_format          The file format string.
 * @param[in]  file_filter          The file filter string.
 *
 * @return The file path. It can be an empty string.
 */
-(NSString*)browseFile:(BOOL)is_open_dialog file_format:(NSString*)file_format file_filter:(NSString*)file_filter;

/**
 * @brief A callback function to get the language of the running viewer application.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return The language type. Please refer to values starting from @link FSActionCallbackLanguageUnknown @endlink
 *         and this should be one of these values.
 */
-(FSActionCallbackLanguage)getLanguage;

/**
 * @brief A callback function used to pop up a dialog to show warnings or hints.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] msg    The message string to be displayed in the dialog.
 * @param[in] title  The title of the dialog.
 * @param[in] type   Type of button group. It would be one of following values:
 *                   <ul>
 *                   <li>0: OK;(default value.)</li>
 *                   <li>1: OK, Cancel;</li>
 *                   <li>2: Yes, NO; </li>
 *                   <li>3: Yes, NO, Cancel.</li>
 *                   </ul>
 * @param[in] icon   Icon type. It would be one of following values:
 *                   <ul>
 *                   <li>0: Error;(default value.)</li>
 *                   <li>1: Warning;</li>
 *                   <li>2: Question;</li>
 *                   <li>3: Status.</li>
 *                   </ul>
 *
 * @return The return value should be one of following values:<br>
 *         <ul>
 *         <li>1: OK;</li>
 *         <li>2: Cancel; </li>
 *         <li>3: NO;</li>
 *         <li>4: Yes;</li>
 *         </ul>
 */
-(int)alert:(NSString*)msg title:(NSString*)title type:(int)type icon:(int)icon;
/**
 * @brief A callback function used to get identity properties of current user.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return An IdentityProperties object that specifies the identity properties of current user.
 */
-(FSIdentityProperties*)getIdentityProperties;
/**
 * @brief A callback function used to set identity properties of current user.
 * 
 * @details This callback function is optional, so it can be implemented to do nothing.
 * 
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)setIdentityProperties:(FSIdentityProperties*)identity_properties;
/**
 * @brief A callback function to pop up a menu window.
 *
 * @details The position of menu window is the same as cursor's.
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] menus               An array of menu list objects.
 * @param[out] is_selected_item   Output parameter that receives the value of whether this menu item is selected or not.
 *                                <b>true</b> means that the menu item is selected, while <b>false</b> means that the menu item is not selected.
 *
 * @return The name of the menu item that was selected.
 */
-(NSString*)popupMenu:(FSMenuListArray*)menus is_selected_item:(NSNumber**)is_selected_item;

/**
 * @brief A callback function to pop up a menu window.
 *
 * @details The position of menu window is the same as cursor's.
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] menus               An array of @link FSMenuItemEx @endlink objects.
 * @param[out] is_selected_item   Output parameter that receives the value of whether a menu item is selected or not.
 *                                <b>true</b> means that the menu item is selected, while <b>false</b> means that the menu item is not selected.
 * @return The @link MenuItemEx @endlink object of the menu item that was selected.
 */
-(FSMenuItemEx*)popupMenuEx:(FSMenuItemExArray*)menus is_selected_item:(NSNumber**)is_selected_item;

/**
 * @brief A callback function to get application information.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.<br>
 *          For the digital information like @link FSActionCallbackAppInfoTypeViewerVersion @endlink,
 *          @link FSActionCallbackAppInfoTypeAppVersion @endlink and @link FSActionCallbackAppInfoTypeFormsVersion @endlink,
 *          please use string to represent it.
 *
 * @param[in] type  Type of information. Please refer to values starting from
 *                  @link FSActionCallbackAppInfoTypeFormsVersion @endlink and this would be one of these macros.
 *
 * @return The application information.
 */
-(NSString*)getAppInfo:(FSActionCallbackAppInfoType)type;

/**
 * @brief A callback function to mail data or message, with or without user interaction.
 *
 * @details This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] data       Pointer to a data which is to be mailed.
 *                       The value and type of the data depends on parameter <i>data_type</i>:
 *                       <ul>
 *                       <li><b>nil</b> when parameter <i>data_type</i> is @link FSActionCallbackMailTypeMsg @endlink.</li>
 *                       <li>pointer to a string when parameter <i>data_type</i> is
 *                           @link FSActionCallbackMailTypeForm @endlink.</li>
 *                       <li>pointer to a FSPDFDoc object when parameter <i>data_type</i> is
 *                           @link FSActionCallbackMailTypeDoc @endlink.</li>
 *                       </ul>
 * @param[in] data_type  Mail type. Please refer to values starting from @link FSActionCallbackMailTypeDoc @endlink
 *                       and this would be one of these values.
 * @param[in] is_ui      <b>YES</b> means that the remaining parameters are used to
 *                       seed the compose-new-message window which is displayed to the user.<br>
 *                       <b>NO</b> means that the parameter <i>to</i> is required and all other parameters
 *                       are optional.
 * @param[in] to         A string that specifies a semicolon-delimited list of recipients for the message.
 * @param[in] subject    A string that specifies the subject of the message.
 *                       The limit of this string's length is 64 KB.
 * @param[in] cc         A string that specifies a semicolon-delimited list of CC recipients for the message.
 * @param[in] bcc        A string that specifies a semicolon-delimited list of BCC recipients for the message.
 * @param[in] message    A string that specifies the content of the message.
 *                       The limit of this string's length is 64 KB.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)mailData:(void*)data data_type:(FSActionCallbackMailType)data_type is_ui:(BOOL)is_ui to:(NSString*)to subject:(NSString*)subject cc:(NSString*)cc bcc:(NSString*)bcc message:(NSString*)message;

/**
 * @brief A callback function to verify specified signature.
 *
 * @details This callback function will be triggered when a signature is to be verified by an action.
 *          If user does not want to verify the signature, just implement this function to do nothing and
 *          just return @link FSSignatureStateUnknown @endlink.
 *          User is recommended to use class @link FSLTVVerifier @endlink to verify if a signed signature is valid or not.
 *
 * @param[in] document       A PDF document object. It would be valid.
 * @param[in] pdf_signature  A PDF signature which is signed. This signature belongs to input paramter <i>document</i>.
 *
 * @return The signature verified state. Please refer to values starting from @link FSSignatureStateUnknown @endlink and
 *         this would be one or combination of them.
 */
-(unsigned int)verifySignature:(FSPDFDoc*)document pdf_signature:(FSSignature*)pdf_signature;

/**
 * @brief A callback function to get the new name for an untitled bookmark.
 *
 * @details This callback function will be triggered by the javascript mothod "bookmark.createChild"
 *          when the parameter "cName" of the method is an empty string.
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return A new name for an untitled bookmark.
 */
-(NSString*)getUntitledBookmarkName;

/**
 * @brief A callback function to get the printer name list.
 *
 * @details This callback function will be triggered by the javascript property "app.printerNames".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return An array of the printer name.
 */
-(NSArray<NSString*>*)getPrinterNameList;

/**
 * @brief A callback function to add a tool button.
 *
 * @details This callback function will be triggered by the javascript method "app.addToolButton".
 *
 * @param[in] button_item  The @link ButtonItem @endlink object of the tool button.
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
-(BOOL)addToolButton:(FSButtonItem*)button_item;

/**
 * @brief A callback function to remove a tool button added by the function @link ActionCallback::AddToolButton @endlink.
 *
 * @details This callback function will be triggered by the javascript method "app.removeToolButton".
 *
 * @param[in] button_name  The name of the tool button.
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
-(BOOL)removeToolButtom:(NSString*)button_name;

/**
 * @brief A callback function to get the menu item name list.
 *
 * @details This callback function will be triggered by the javascript method "app.listMenuItems".
 *
 * @return An array of menu list objects.
 */
-(FSMenuListArray*) getMenuItemNameList;

/**
 * @brief A callback function to adds a menu item to a menu.
 *
 * @details This callback function will be triggered by the javascript method "app.addMenuItem".
 *
 * @param[in] menu_item_config  The config of the menu item.
 * @param[in] is_prepend        Determines the position of the new menu item relative to the position specified by
 *                              @link MenuItemConfig::pos @endlink or @link MenuItemConfig::pos_str @endlink.
 *                              The default value is false. If this parameter is true, the rules for insertion are as follows:
 *                              <ul>
 *                              <li> If @link MenuItemConfig::pos_str @endlink is used, the new item is placed before the named item.</li>
 *                              <li> If @link MenuItemConfig::pos @endlink is used, the new item is placed before the numbered item.</li>
 *                              <li> If the named item cannot be found or position is not between zero and the number of
 *                                   items in the list, inclusive, the new item is inserted as the first item in the
 *                                   menu (rather than at the end of the menu). </li>
 *                              <ul>
 *                              This parameter is useful when the named item is the first item in a group.
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
-(BOOL) addMenuItem:(FSMenuItemConfig*)menu_item_config is_prepend:(BOOL)is_prepend;

/**
 * @brief A callback function to add a menu item with a submenu to the application.
 *
 * @details This callback function will be triggered by the javascript method "app.addSubMenu".
 *
 * @param[in] menu_item_config  The config of the menu item.
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
-(BOOL) addSubMenu:(FSMenuItemConfig*)menu_item_config;

/**
 * @brief A callback function to show the dialog.
 *
 * @details This callback function will be triggered by the javascript method "app.execDialog".
 *
 * @param[in] dlg_config The @link DialogDescriptionConfig @endlink object.
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
-(BOOL) showDialog:(FSDialogDescriptionConfig*)dlg_config;

/**
 * @brief A callback function to get whether the full screen mode is set.
 *
 * @details This callback function will be triggered by the javascript property "app.fullScreen" or "app.fs.isFullScreen".
 *
 * @return <b>true</b> means the full screen mode is set, while <b>false</b> means not.
 */
-(BOOL) getFullScreen;

/**
 * @brief A callback function to set full screen mode.
 *
 * @details This callback function will be triggered when the javascript property "app.fullScreen" or "app.fs.isFullScreen" is to be set.
 *
 * @param[in] is_full_screen  <b>true</b> means to set full screen mode, while <b>false</b> means not.
 *
 * @return None.
 */
-(void) setFullScreen:(BOOL)is_full_screen;

/**
 * @brief A callback function to notify the value change of the field.
 *
 * @details This callback function will be triggered when the field's value is changed via JavaScript.
 *
 * @param[in] field_name  A string that specifies the field name.
 * @param[in] type  field value change type. Please refer to values starting from @link FSActionCallbackJSFieldValueChangedByFormat @endlink 
 *                     and this would be one of these values.
 * @param[in] value_before_changed  A string array that specifies the field's value before the change.  
 *                     For a list box, the parameter represent one or more than one of the field's items which be selected simultaneously.
 * @param[in] value_after_changed  A string array that specifies the field's value after the change. 
 *                     For a list box, the parameter represent one or more than one of the field's items which be selected simultaneously.
 *
 * @return None.
 */
-(void) onFieldValueChanged:(NSString*)field_name type:(FSActionCallbackJSFieldValueChangeType)type value_before_changed:(NSArray<NSString*>*)value_before_changed value_after_changed:(NSArray<NSString*>*)value_after_changed;

/**
 * @brief A callback function to update logical label.
 *
 * @details This callback function will be triggered by the javascript method "Doc.setPageLabels".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return None.
 */
-(void)updateLogicalLabel;

/**
 * @brief A callback function to mails a document as an attachment.
 *
 * @details This callback function will be triggered by the javascript method "Doc.mailDoc".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document       A PDF document object. It would be valid.
 * @param[in] to_address     To address.
 * @param[in] cc_address     Cc address.
 * @param[in] bcc_address    Bcc address.
 * @param[in] subject        Mail subject.
 * @param[in] message        Mail message.
 * @param[in] is_ui          <b>true</b> means to show mail dialog, while <b>false</b> means not.
 *
 * @return The mail result. Please refer to values starting from @link FSActionCallbackJSMailResultFailed @endlink
 *         and this should be one of these values.
 */
-(FSActionCallbackJsMailResult)mailDoc:(FSPDFDoc*)document to_address:(NSString*)to_address cc_address:(NSString*)cc_address bcc_address:(NSString*)bcc_address subject:(NSString*)subject message:(NSString*)message is_ui:(BOOL)is_ui;

 /**
 * @brief A callback function to get the temporary file path. The temporary file name combine the document name with the file suffix name.
 *
 * @details This callback function will be triggered by the javascript method "Doc.mailForm".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] document  A PDF document object. It would be valid.
 * @param[in] file_name  File suffix name.
 *
 * @return The temporary file path.
 */
-(NSString*)getTemporaryFileName:(FSPDFDoc*)document file_name:(NSString*)file_name;

/**
 * @brief A callback function to open media player.
 *
 * @details This callback function will be triggered by the javascript method "app.media.openPlayer" or "app.media.createPlayer".
 *
 * @param[in] player_args  The @link FSPlayerArgs @endlink object.
 *
 * @return A @link FSMediaPlayerCallback @endlink object.
 */
-(id<FSMediaPlayerCallback>) openMediaPlayer:(FSPlayerArgs*)player_args;

/**
 * @brief A callback function to get temporary directory.
 *
 * @details This callback function will be triggered by the javascript method "Doc.extractpages".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return The temporary directory.
 */
 -(NSString*)getTemporaryDirectory;


/**
 * @brief A callback function to scroll the specified point on the current page into the middle of the current view.
 *
 * @details This callback function will be triggered by the javascript method "Doc.scroll".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] point  The specified point[PDF coordinate system].
 *
 * @return None.
 */
-(void)scroll:(FSPointF*)point;

/**
 * @brief A callback function to change the current page number and selects the specified word on the page.
 *
 * @details This callback function will be triggered by the javascript method "Doc.selectPageNthWord".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param page_index         The page index.
 * @param start_offset       The start word offset.
 * @param end_offset         The end word offset.
 * @param is_show_selection  <b>true</b> means to show selection, while <b>false</b> means not.
 *
 * @return None.
 */
-(void)selectPageNthWord:(int)page_index start_offset:(int)start_offset end_offset:(int)end_offset is_show_selection:(BOOL)is_show_selection;


/**
 * @brief A callback function to get current mouse position.
 *
 * @details This callback function will be triggered by the javascript properties "doc.mouseX" or "doc.mouseY".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return A position in device coordinate system.
 */
-(FSPointF*)getMousePosition;

/**
 * @brief A callback function to get the rectangle for the page view window. The page view window is
 *        the area inside the inner document window in which the PDF content is displayed.
 *
 * @param[in] document       A PDF document object. It would be valid.
 * @param[in] page_index     The page index.
 *
 * @details This callback function will be triggered by the javascript property "Doc.pageWindowRect".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return A rectangle for the page view window.
 */
-(FSRectF*)getPageWindowRect: (FSPDFDoc*)document page_index:(int)page_index;;

/**
 * @brief A callback function to get the page layout of the current document.
 *
 * @details This callback function will be triggered by the javascript properties "Doc.layout".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return The layout mode. Please refer to values starting from @link FSActionCallbackLayoutModeSinglePage @endlink
 *         and this should be one of these values.
 */
-(FSActionCallbackLayoutMode)getLayoutMode;

/**
 * @brief A callback function to set the page layout of the current document.
 *
 * @details This callback function will be triggered by the javascript properties "Doc.layout".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param[in] layout_mode    The layout mode. Please refer to values starting from @link FSActionCallbackLayoutModeSinglePage @endlink
 *                           and this should be one of these values.
 * @param[in] is_cover_mode  <b>true</b> means that the cover will always displayed separately, while <b>false</b> means not.
 *
 * @return None.
 */
 -(void)setLayoutMode:(FSActionCallbackLayoutMode)layout_mode is_cover_mode:(BOOL)is_cover_mode;

/**
 * @brief A callback function to get current page zoom value.
 *
 * @details This callback function will be triggered by the javascript properties "Doc.zoom".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return A zoom value. For example, a zoom value of 1.0 specifies 100%. It should be a positive number.
 */
-(float)getPageScale;

/**
 * @brief A callback function to set current page zoom value.
 *
 * @details This callback function will be triggered by the javascript properties "Doc.zoom" or "Doc.zoomType".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @param zoom_mode  The zoom mode. Please refer to values starting from @link FSDestinationZoomXYZ @endlink
 *                   and this should be one of these values.
 * @param dest       A @link pdf::Destination @endlink object that represents destination data.
 *
 * @return None.
 */
-(void)setPageScale:(FSDestinationZoomMode)zoom_mode dest:(FSDestination*)dest;


/**
 * @brief A callback function to get the current page zoom mode.
 *
 * @details This callback function will be triggered by the javascript properties "Doc.zoom" or "Doc.zoomType".
 *          This callback function is optional, so it can be implemented to do nothing and
 *          just return a useless value.
 *
 * @return The zoom mode. Please refer to values starting from @link FSDestinationZoomXYZ @endlink
 *         and this should be one of these values.
 */
-(FSDestinationZoomMode)getPageZoomMode;

/**
 * @brief a callback function to query the text keywords.
 *
 * @details This callback function will be triggered by the javascript method "search.query".This callback function is optional,
 *          so it can be implemented to do nothing.
 *
 * @param[in] keywords       The text content for which to search.
 * @param[in] search_scope   Specifies where the text should be searched. Please refer to values starting from
 *                           @link FSActionCallbackSearchScopeActiveDoc @endlink and this should be one of these values.
 * @param[in] search_option  A @link FSSearchOption @endlink object that represents search option.
 * @param[in] di_path        A device-independent path to a folder or search index on the user's computer. This parameter is
 *                           optional. When <i>search_scope</i> is @link FSActionCallbackSearchScopeFolder @endlink
 *                           or @link FSActionCallbackSearchScopeIndex @endlink, this parameter is required.
 *
 * @return None.
 */
-(void)query:(NSString*)keywords search_scope:(FSActionCallbackSearchScope)search_scope search_option:(FSSearchOption*)search_opion di_path:(NSString*)di_path;

/**
 * @brief A callback function to add a search index.
 *
 * @details This callback function will be triggered by the javascript method "search.addIndex".This callback function is optional,
 *          so it can be implemented to do nothing.
 *
 * @param[in] di_path   A device-independent path to an index file on the user's hard drive.
 * @param[in] is_selected  Specifies whether the index should be selected for searching. Default value: <b>true</b>.
 *
 * @return A @link FSSearchIndexConfig @endlink.
 */
-(FSSearchIndexConfig*) addSearchIndex:(NSString*)di_path selected:(bool)is_selected;

/**
 * @brief (Reserved, unsupported yet) A callback function to remove a search index.
 *
 * @details This callback function will be triggered by the javascript method "search.removeIndex".This callback function is optional,
 *          so it can be implemented to do nothing.
 *
 * @param[in] search_index_config  A @link FSSearchIndexConfig @endlink that represents the search index config.
 *
 * @return <b>true</b> means success, while <b>false</b> means failure.
 */
-(bool)removeSearchIndex:(FSSearchIndexConfig*)search_index_config;

/**
 * @brief A callback function to get the name list of signature appearance style.
 *
 * @details This callback function will be triggered by the javascript method "SecurityHandler.appearances".
 *          This callback function is optional, so it can be implemented to do nothing.
 *
 * @return An array of signature appearance style name.
 */
-(NSArray<NSString*>*)getSignatureAPStyleNameList;

/**
 * @brief A callback function to initiates a remote procedure call (RPC) or sends an XML message to a SOAP HTTP endpoint.
 *
 * @details The method either waits for the endpoint to reply (synchronous processing) or calls a method
 *                                         on the notification object (asynchronous processing).
 * 
 * @param[in] request_params     A @link FSSOAPRequestProperties @endlink that represents a FSSOAPRequestProperties object
 *                                         containing the property parameters for the SOAP request.
 * 
 * @return A @link FSSOAPResponseInfo @endlink object. 
 */
-(FSSOAPResponseInfo*) soapRequest:(FSSOAPRequestProperties*)request_params;

/**
 * @brief A callback function to set the flag specifies whether the document will loop around to the beginning of
 *        the document in response to a page advance (whether generated by mouse click, keyboard, or timer) in full screen mode. 
 * 
 * @details This callback function will be triggered by the javascript property "app.fs.loop".
 *          This callback function is optional, so it can be implemented to do nothing.
 * 
 * @param[in] is_loop  <b>true</b> means to loop around to the beginning of the document, while <b>false</b> means not.
 * 
 * @return None.
 */
-(void) enablePageLoop:(BOOL)is_loop;

/**
 * @brief A callback function to get the flag specifies whether the document will loop around to the beginning of
 *        the document in response to a page advance.
 * 
 * @details This callback function will be triggered by the javascript property "app.fs.loop".
 *          This callback function is optional, so it can be implemented to do nothing.
 * 
 * @return <b>true</b> means to loop around to the beginning of the document, while <b>false</b> means not.
 */
-(BOOL) isPageLoop;

/**
 * @brief A callback function to set the default page trastion mode for full screen mode.
 * 
 * @details This callback function will be triggered by the javascript property "app.fs.defaultTransition".
 *          This callback function is optional, so it can be implemented to do nothing.
 * 
 * @param[in] trans_type  A string that specifies the type of the transition effect. Please refer to the follow values:
 *                        "Split", "Box", "Fly", "Blinds", "Push", "Wipe", "Glitter", "Cover", "Uncover", "Dissolve", "Replace", "Fade".
 * @param[in] trans_di    A string that specifies the direction of the transition effect.
 *                        <ul>
 *                        <li> For "Split", this value can be "HorizontalInward", "HorizontalOutward", "VerticalInward" or "VerticalOutward".</li>
 *                        <li> For "Box", this value can be "Outward" or "Inward".</li>
 *                        <li> For "Fly" and "Push", this value can be "Left", "Right", "Up"or "Down".</li>
 *                        <li> For "Blinds", this value can be "Horizontal" or "Vertical".</li>
 *                        <li> For "Wipe", "Glitter", "Uncover" and "Cover", this value can be "Left","LeftUp", "LeftDown", "Right", "RightUp", "RightDown","Up"or "Down".</li>
 *                        <li> For "Dissolve", "Replace" and "Fade", this value will be NULL.</li>
 *                        </ul>
 * @return None.
 */
-(void) setDefaultPageTransitionMode:(NSString*)trans_type trans_di:(NSString*)trans_di;

/**
 * @brief A callback function to get the flag specifies whether current document is opened in browser.
 * 
 * @details This callback function will be triggered by the javascript property "doc.hostContainer".
 *          This callback function is optional, so it can be implemented to do nothing.
 * 
 * @return <b>true</b> means current document is opened in browser, while <b>false</b> means not.
 */
-(BOOL) isCurrentDocOpenedInBrowser;

/**
 * @brief A callback function to send message asynchronously to the message handler for the host container of the PDF document.
 * 
 * @details For this message to be delivered, the host container (for example, an <OBJECT> element in an HTML page) must have
 *          registered for notification by setting its messageHandler property.<br>
 *          This callback function will be triggered by the javascript method "doc.hostContainer.postMessage".
 *          This callback function is optional, so it can be implemented to do nothing.
 * 
 * @param[in] message  An array of string that specifies the message to be posted.
 * 
 * @return None.
 */
-(void) postMessageToHtml:(NSArray<NSString*>*)message;

/**
 * @brief A callback function used to notify javascript execution to begin.
 *
 * @details This callback function is optional, so it can be implemented to do nothing if no action is required.
 *
 * @param[in] document    A PDF document object. It would be valid.
 * @param[in] event_type  The javascript event type. Please refer to values starting from @link FSJavascriptEventTypeUnknown @endlink and
 *                       this should be one of these values.
 *
 * @return None.
 */
-(void)  notifyBeginDoJob:(FSPDFDoc*)document event_type:(FSJavascriptModifyItemInfoJavascriptEventType)event_type;

/**
 * @brief A callback function to notify that data has been modified.
 *
 * @details This callback function is optional, so it can be implemented to do nothing if no action is required.
 *
 * @param[in] document    A PDF document object. It would be valid.
 * @param[in] modify_item_info  A @link FSJavascriptModifyItemInfo @endlink object containing details about the modification.
 *
 * @return None.
 */
-(void)  notifyAfterDataChange:(FSPDFDoc*)document modify_item_info:(FSJavascriptModifyItemInfo*)modify_item_info;

/**
 * @brief A callback function to notify that javajcript execution has ended.
 *
 * @details This callback function is optional, so it can be implemented to do nothing if no action is required.
 *
 * @param[in] document    A PDF document object. It would be valid.
 * @param[in] event_type  The javascript event type. Please refer to values starting from @link FSJavascriptEventTypeUnknown @endlink and
 *                       this should be one of these values.
 *
 * @return None.
 */
-(void)  notifyEndDoJob:(FSPDFDoc*)document event_type:(FSJavascriptModifyItemInfoJavascriptEventType)event_type;

/**
 * @brief A callback function to init modify item.
 *
 * @details This callback function is optional, so it can be implemented to do nothing if no action is required.
 *
 * @param[in] document   A PDF document object. It would be valid.
 * @param[in] item_type  The modify item type. Please refer to values starting from @link FSActionCallbackModifyItemTypeNone @endlink and
 *                       this should be one of these values.
 * @param[in] page_index  A page index which is used to change current page.
 * @param[in] dict_name   The name of the dictionary.
 *
 * @return None.
 */
-(BOOL)  initModifyItem:(FSPDFDoc*)document item_type:(FSActionCallbackModifyItemType)item_type page_index:(int)page_index dict_name:(NSString*)dict_name;

/**
 * @brief A callback function to reset modify item.
 *
 * @details This callback function is optional, so it can be implemented to do nothing if no action is required.
 *
 * @param[in] document  A PDF document object. It would be valid.
 */
-(void)  resetModifyItem:(FSPDFDoc*)document;

  /**
   * @brief A callback function to get the visible pages count.
   *
   * @details This callback function is optional, so it can be implemented to do nothing and
   *          just return a useless value.
   *
   * @param[in] document           A PDF document object. It would be valid.
   *
   * @return The count of visible pages.
   */
-(int) getVisiblePageCount:(FSPDFDoc*)document;

  /**
   * @brief A callback function to get the visible page index.
   *
   * @details This callback function is optional, so it can be implemented to do nothing and
   *          just return a useless value.
   *
   * @param[in] document           A PDF document object. It would be valid.
   * @param[in] index              The visible page index.  Valid range: from 0 to (<i>count</i>-1).
   *                               <i>count</i> is returned by function @link getVisiblePageCount @endlink.
   *
   * @return The page index of visible page.
   */
-(int) getVisiblePage:(FSPDFDoc*)document index:(int)index;
@end

/**
 * This class represents a callback object as customized annotation icon provider.
 * All the functions in this class are used as callback functions. Pure virtual functions should be implemented
 * by user and user can also choose to implement some or all the reset virtual functions when necessary.
 * Icon provider can only be used for note, file attachment, stamp annotations. <br>
 * Icon provider's ID and version are treated as the name of the icon provider, so please offer different
 * "ID + version" for different icon providers by callback functions
 * @link FSIconProviderCallback::getProviderID @endlink and @link FSIconProviderCallback::getProviderVersion @endlink.
 */
@protocol FSIconProviderCallback <NSObject>
@required
/**
 * @brief A callback function used to get provider ID.
 *
 * @details Icon provider's ID and version are treated as the name of the icon provider, so please offer different
 *          "ID + version" for different icon providers.
 *
 * @return The provider ID.
 */
-(NSString*)getProviderID;
/**
 * @brief A callback function used to get provider version.
 *
 * @details Icon provider's ID and version are treated as the name of the icon provider, so please offer different
 *          "ID + version" for different icon providers.
 *
 * @return Version string.
 */
-(NSString*)getProviderVersion;
/**
 * @brief A callback function used to check if current icon provider supports icon for a specified type.
 *
 * @param[in] annot_type  The annotation type. It should be one of @link FSActionCallbackMailTypeMsg @endlink,
 *                        @link FSAnnotFileAttachment @endlink and @link FSAnnotStamp @endlink.
 * @param[in] icon_name   Icon name of the annotation.
 *
 * @return <b>YES</b> means current icon provider supports the specified icon, while <b>NO</b> means not support.
 */
-(BOOL)hasIcon: (FSAnnotType)annot_type icon_name: (NSString*)icon_name;
/**
 * @brief A callback function used to check if current icon provider supports to change color for a specified type.
 *
 * @param[in] annot_type  The annotation type. It should be one of @link FSActionCallbackMailTypeMsg @endlink,
 *                        @link FSAnnotFileAttachment @endlink and @link FSAnnotStamp @endlink.
 * @param[in] icon_name   Icon name of the annotation.
 *
 * @return <b>YES</b> means current icon provider supports to change color for a specified icon type,
 *         while <b>NO</b> means not support.
 */
-(BOOL)canChangeColor: (FSAnnotType)annot_type icon_name: (NSString*)icon_name;
/**
 * @brief A callback function used to get the icon as PDF page contents for a specified type.
 *
 * @param[in] annot_type  The annotation type. It should be one of @link FSActionCallbackMailTypeMsg @endlink,
 *                        @link FSAnnotFileAttachment @endlink and @link FSAnnotStamp @endlink.
 * @param[in] icon_name   Icon name of the annotation.
 * @param[in] color       The icon color of the annotation. Format: 0xAARRGGBB.
 * @param[in] annot_dict  The annotation dict.
 *
 * @return A PDF page object whose content would be used as the icon.
 */
-(FSPDFPage*)getIcon: (FSAnnotType)annot_type icon_name: (NSString*)icon_name color: (unsigned int)color annot_dict: (FSPDFDictionary*)annot_dict;
/**
 * @brief A callback function used to get the shading colors if current icon provider supports for a specified type.
 *        Currently, only support Type-2 shading settings with two color values.
 *
 * @param[in] annot_type          The annotation type. It should be one of @link FSActionCallbackMailTypeMsg @endlink,
 *                                @link FSAnnotFileAttachment @endlink and @link FSAnnotStamp @endlink.
 * @param[in] icon_name           Icon name of the annotation.
 * @param[in] referenced_color    Referenced color. Format: 0xRRGGBB.
 * @param[in] shading_index       Index color of shading, starting from 0.
 *                                If shading colors are more than one, this function will be called multiple times.
 *
 * @return The shading color.
 */
-(FSShadingColor*)getShadingColor: (FSAnnotType)annot_type icon_name: (NSString*)icon_name referenced_color: (unsigned int)referenced_color shading_index: (int)shading_index;
/**
 * @brief A callback function used to get the width for display of a specified icon, in device size(pixel normally).
 *
 * @param[in] annot_type  The annotation type. It should be one of @link FSActionCallbackMailTypeMsg @endlink,
 *                        @link FSAnnotFileAttachment @endlink and @link FSAnnotStamp @endlink.
 * @param[in] icon_name   Icon name of the annotation.
 *
 * @return The width for display.
 */
-(NSNumber*)getDisplayWidth: (FSAnnotType)annot_type icon_name: (NSString*)icon_name;
/**
 * @brief A callback function used to get the height for display of a specified icon, in device size(pixel normally).
 *
 * @param[in] annot_type  The annotation type. It should be one of @link FSActionCallbackMailTypeMsg @endlink,
 *                        @link FSAnnotFileAttachment @endlink and @link FSAnnotStamp @endlink.
 * @param[in] icon_name   Icon name of the annotation.
 *
 * @return The height for display.
 */
-(NSNumber*)getDisplayHeight: (FSAnnotType)annot_type icon_name: (NSString*)icon_name;
@end

/**
 * This class represents a callback object to notify the Foxit PDF SDK events.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 * An implemented FSNotifierCallback object can be set to Foxit PDF SDK by function @link FSLibrary::setNotifierCallback: @endlink.
 *
 * @see @link FSLibrary @endlink  
 */
@protocol FSNotifierCallback <NSObject>
@required
/**
 * @brief A callback function used to notify application when Foxit PDF SDK runs out of memory.
 *
 * @details When this callback function is triggered, that means Foxit PDF SDK runs out of memory.
 *          At this moment, application cannot use any API in Foxit PDF SDK.
 *          In this case, application can exit with some warning information,
 *          or application is aborted and tried to restart.
 *          Here, "restart an application" does not mean to call function @link FSLibrary::reinitialize @endlink
 *          but to call function @link FSLibrary::initialize:key: @endlink again to load Foxit PDF SDK again from the beginning.
 *
 * @return None.
 */
-(void)onOutOfMemory;
@end

/**
 * This class represents a callback object used to listen PDF document event.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user
 * in derived class. User can also re-write the virtual functions in this class in custom way.
 */
@protocol FSDocEventCallback <NSObject>
@required
/**
 * @brief Triggered when the document will be opened.
 *
 * @return None.
 */
-(void)onDocWillOpen;
/**
 * @brief Triggered when a PDF document is opened.
 *
 * @param[in] document    A PDF document object which is opened.
 * @param[in] error_code  Error code which represents the error state when opening the PDF document.
 *                        Please refer to values starting from @link FSErrSuccess @endlink and 
 *                        this would be one of these values.
 *
 * @return None.
 */
-(void)onDocOpened:(FSPDFDoc*)document error_code:(FSErrorCode)error_code;
/**
 * @brief Triggered when a PDF document will be destroyed.
 *
 * @param[in] document  A PDF document object which will be destroyed.
 *
 * @return None.
 */
-(void)onDocWillDestroy:(FSPDFDoc*)document;
/**
 * @brief Triggered when a PDF document will be saved.
 *
 * @param[in] document  A PDF document object which will be saved.
 *
 * @return None.
 */
-(void)onDocWillSave:(FSPDFDoc*)document;
/**
 * @brief Triggered when a PDF document is saved.
 *
 * @param[in] document    A PDF document object which is saved.
 * @param[in] error_code  Error code which represents the error state when saving the PDF document.
 *                        Please refer to values starting from @link FSErrSuccess @endlink and 
 *                        this would be one of these values.
 *
 * @return None.
 */
-(void)onDocSaved:(FSPDFDoc*)document error_code:(FSErrorCode)error_code;
@end

/**
 * This class represents a callback object to do file reading asynchronously.
 * This class is derived from class @link FSFileReaderCallback @endlink. All the pure virtual functions in this class
 * and its base class are used as callback functions and should be implemented by user, in order to
 * asynchronously read file data (especially used for loading document), in a customized way.
 *
 * @see @link FSFileReaderCallback @endlink
 */
@protocol FSAsyncReaderCallback <FSFileReaderCallback>
@required
/**
 * @brief A callback function used to check whether the specified data section is available or not.
 *
 * @details A data section is available only if all bytes in the section are available.
 *
 * @param[in] offset  The offset in file.
 * @param[in] size    The size of the data section, which is to be checked if available.
 *
 * @return <b>YES</b> means the specified data section is available,
 *         while <b>NO</b> means the specified data section is not available yet.
 */
-(BOOL)isDataAvail:(int)offset size:(int)size;
/**
 * @brief A callback function used to add offset and size to specify a data section,
 *        which should be downloaded by application then.
 *
 * @details Foxit PDF SDK would call this callback function to report downloading hints for
 *          the download manager of application.<br>
 *          The position (as offset) and size of the section may not be accurate because part of the section might
 *          already be available. The download manager must manage this to maximize download efficiency.
 *
 * @param[in] offset  The offset of a data section, which is to be hinted.
 * @param[in] size    The size of the data section.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)addDownloadHint:(int)offset size:(int)size;
@end

/**
 * This class represents a callback object to assist form filler.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 */
@protocol FSFillerAssistCallback <NSObject>
@required
/**
 * @brief A callback function used to refresh the specified area on a specified page.
 *
 * @param[in] page  A PDF page object.
 * @param[in] rect  A rectangle that specifies the area on the page to be redrawn.
 *                  <b>nil</b> means to refresh the whole page.
 *
 * @return None.
 */
-(void)refresh:(FSPDFPage*)page rect:(FSRectF*)rect;
/**
 * @brief A callback function used to set a system timer.
 *
 * @details This callback function is called to install a system timer. When a time-out value is specified,
 *          and every time when a time-out occurs, the system passes a message to the timer callback function.
 *
 * @param[in] elapse         Specifies the time-out value, in milliseconds.
 * @param[in] timer          Pointer to a timer callback object as timer.
 * @param[out] out_timer_id  Output parameter that receives the timer identifier of the new timer if the function is
 *                           finished successfully. This value would be passed to callback function
 *                           @link FSFillerAssistCallback::killTimer: @endlink to kill the timer.
 *                           Nonzero if the function is successful; otherwise, this should be zero.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)setTimer:(int)elapse timer:(FSTimer*)timer out_timer_id:(int*)out_timer_id;
/**
 * @brief A callback function used to kill the timer event by timer identifier.
 *
 * @param[in] timer_id  The timer identifier returned by an earlier calling of
 *                      callback function @link FSFillerAssistCallback::setTimer:timer:out_timer_id: @endlink.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)killTimer:(int)timer_id;
/**
 * @brief A callback function which is triggered when the focus is set to a form control.
 *
 * @details This callback function supports text field, combo box field, list box field, push button field,
 *
 * @param[in] control  The form control object to which the focus is set.
 * @param[in] value    The value of form field associated with the control.
 *                     If the control belongs to a push button field, this value would always be an empty string.
 *
 * @return None.
 */
-(void)focusGotOnControl:(FSControl*)control value:(NSString*)value;
/**
 * @brief A callback function which is triggered when the focus is lost from a form control.
 *
 * @details This callback function supports text field, combo box field, list box field, push button field,
 *          check box field, radio button field.
 *
 * @param[in] control  The form control object, from which the focus is lost.
 * @param[in] value    The value of form field associated with the control.
 *                     If the control belongs to a push button field, this value would always be an empty string.
 *
 * @return None.
 */
-(void)focusLostFromControl:(FSControl*)control value:(NSString*)value;

 /**
  * @brief A callback function which is triggered when need to create a popup menu.
  *
  * @details This callback function supports text field, combo box field.
  *
  * @return Popup menu handle.
  */
-(void *)createPopupMenu;

 /**
  * @brief A callback function which is triggered when need to append menu item to popup menu.
  *
  * @details This callback function supports text field, combo box field.
  *
  * @param[in] h_popup_menu         The popup menu handle.
  * @param[in] popup_menu_item      The popup menu item id.Please refer to values starting from @link FSFillerAssistCallbackPopupMenuItem::e_PopupMenuItemNone @endlink and
  *                                 this should be one of these values.
  * @param[in] default_string       The default popup menu item string.
  *
  * @return <b>true</b> means success, while <b>false</b> means failure.
  */
-(BOOL)appendPopupMenuItem:(const void*)h_popup_menu popup_menu_item:(FSFillerAssistCallbackPopupMenuItem)popup_menu_item default_string:(NSString*)default_string;

 /**
  * @brief A callback function which is triggered when need to enable menu item for popup menu.
  *
  * @details This callback function supports text field, combo box field.
  *
  * @param[in] h_popup_menu     The popup menu handle.
  * @param[in] popup_menu_item  The popup menu item id.Please refer to values starting from @link FSFillerAssistCallbackPopupMenuItem::e_PopupMenuItemNone @endlink and
  *                             this should be one of these values.
  * @param[in] is_enabled       Whether to enable menu item or disable.
  *
  * @return <b>true</b> means success, while <b>false</b> means failure.
  */
-(BOOL)enablePopupMenuItem:(const void*)h_popup_menu popup_menu_item:(FSFillerAssistCallbackPopupMenuItem)popup_menu_item is_enabled:(BOOL)is_enabled;

 /**
  * @brief A callback function which is triggered when need to show popup menu.
  *
  * @details This callback function supports text field, combo box field.
  *
  * @param[in] h_popup_menu     The popup menu handle.
  * @param[in] point            Left-top point for popup menu, in [PDF coordinate system] (@ref pdf::PDFPage).
  *
  * @return <b>true</b> means success, while <b>false</b> means failure.
  */
-(BOOL)showPopupMenu:(const void*)h_popup_menu  point:(FSPointF*)point;

 /**
  * @brief A callback function which is triggered when need to destroy popup menu.
  *
  * @details This callback function supports text field, combo box field.
  *
  * @param[in] h_popup_menu The popup menu handle.
  *
  * @return None.
  */
-(void)destroyPopupMenu:(const void*)h_popup_menu;

 /**
  * @brief A callback function which is triggered when need to set clipboard text.
  *
  * @details This callback function supports text field, combo box field.
  *
  * @param[in] text The text need to be set to clipboard.
  *
  * @return None.
  */
-(void)setClipboardText:(NSString*)text;

 /**
  * @brief A callback function which is triggered when need to get the text on clipboard.
  *
  * @details This callback function supports text field, combo box field.
  *
  * @return The text on clipboard..
  */
 -(NSString*)getClipboardText;
 
 /**
  * @brief A callback function which is triggered when user entered an invalid value.
  *
  * @details This callback function supports text field, combo box field.
  *
  * @param[in] form_field_name The name of form field associated with the control.
  * @param[in] invalid_value The invalid value of form field associated with the control.
  *
  * @return None.
  */
  -(void)reportInvalidValue:(NSString*)form_field_name invalid_value:(NSString*)invalid_value;
@end

/**
 * This class represents a callback object to retrieve the searching result during the searching progress by function
 * @link FSFullTextSearch::searchOf:rank_mode:callback: @endlink.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 *
 * @see @link FSFullTextSearch @endlink
 */
@protocol FSSearchCallback <NSObject>
@required
/**
 * @brief A callback function used to retrieve the searching result.
 *
 * @param[in] file_path                          A file path that specifies in which file the matched result is found.
 * @param[in] page_index                         A page index that specifies in which page of the file
 *                                    the matched result is found.
 * @param[in] match_result                       A string that represents the matched result.
 * @param[in] match_start_text_index             The index of start character in the matched result.
 * @param[in] match_end_text_index               The index of end character in the matched result.
 * @param[in] sentence            The sentence that contains current match result.
 * @param[in] match_sentence_start_text_index    The index of start character in the sentence.
 * @param[in] match_sentence_end_text_index      The index of end character in the sentence.
 *
 * @return If non-zero is returned, the search engine will stop searching.
 */
-(int)retrieveSearchResult:(NSString*)file_path page_index:(int)page_index match_result:(NSString*)match_result match_start_text_index:(int)match_start_text_index match_end_text_index:(int)match_end_text_index sentence:(NSString*)sentence match_sentence_start_text_index:(int)match_sentence_start_text_index match_sentence_end_text_index:(int)match_sentence_end_text_index;
@end

/**
 * This class represents a callback object which can be used to cancel a searching process.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 */
@protocol FSSearchCancelCallback <NSObject>
@required
/**
 * @brief A callback function used to check whether to cancel the searching process or not.
 *
 * @return <b>YES</b> means the searching process needs to be canceled, while <b>NO</b> means
 *         the searching process does not need to be canceled.
 */
-(BOOL)needToCancelNow;
@end

/**
 * This class represents a callback object for refreshing a region for PSI.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 * An implemented PSICallback object can be set to a PSI object by function @link FSPSI::setCallback: @endlink.
 */
@protocol FSPSICallback <NSObject>
@required
/**
 * @brief A callback function used to refresh a specified region for PSI.
 *
 * @param[in] psi   A PSI object.
 * @param[in] rect  Rectangle of the refresh region.
 *
 * @return None.
 */
-(void)refresh:(FSPSI*)psi rect:(FSRectF*)rect;
@end

/**
 * This is just the base class for other concrete security callback object. User should not inherit this class directly
 * when implementing a security callback for any type of decryption and encryption. User should inherit
 * any derived callback class of this base class.
 */
@protocol FSSecurityCallback <NSObject>
@required
/**
 * @brief Get the encryption type of security callback.
 *
 * @return The encryption type. If current FSSecurityCallback object does not represent any specified type of
 *         security callback, it would return @link FSPDFDocEncryptUnknown @endlink.
 */
-(FSPDFDocEncryptType)GetSecurityType;
@end

/**
 * This class represents a callback object for certificate decryption. If user wants to use their own
 * certificate security callback, user should inherit this callback class and implement the pure virtual functions
 * (as callback functions), and then register their own certificate security callback object to Foxit PDF SDK
 * by function @link FSLibrary::registerSecurityCallback:callback: @endlink with <i>filter</i> "Adobe.PubSec".
 * Function @link FSLibrary::unregisterSecurityCallback: @endlink can be called to unregister the security
 * callback object with the registered filter name.
 */
@protocol FSCertificateSecurityCallback <FSSecurityCallback>
@required
/**
 * @brief A callback function used to get the key for decrypting certificate protected PDF document.
 *
 * @param[in] envelope_buffer  A buffer which represents a certificate envelope.
 *
 * @note User should implement this callback function.
 *
 * @return The decryption key.
 */
-(NSData*)getDecryptionKey:(NSData*)envelope_buffer;
@end

/**
 * This class represents a callback object for Foxit DRM decryption. If user wants to use
 * their own Foxit DRM security callback, user should inherit this callback class and implement
 * the pure virtual functions (as callback functions), and then register their own Foxit DRM security callback object
 * to Foxit PDF SDK by function @link FSLibrary::registerSecurityCallback:callback: @endlink with <i>filter</i> "FoxitDRM".
 * Function @link FSLibrary::unregisterSecurityCallback: @endlink can be called to unregister the security callback object
 * with the registered filter name.
 */
@protocol FSDRMSecurityCallback <FSSecurityCallback>
@required
/**
 * @brief A callback function used to check if current user is the owner of the PDF document.
 *
 * @param[in] document    A PDF document object.
 * @param[in] sub_filter  The sub filter name that specifies the syntax of the encryption dictionary contents.
 *
 * @note User should implement this callback function.
 *
 * @return <b>YES</b> means current user is the owner of the PDF document, while <b>NO</b> means not.
 */
-(BOOL)isOwner: (FSPDFDoc *)document sub_filter:(NSString*)sub_filter;
/**
 * @brief A callback function used to get the current user permissions.
 *
 * @param[in] document    A PDF document object.
 * @param[in] sub_filter  The sub filter name that specifies the syntax of the encryption dictionary contents.
 *
 * @note User should implement this callback function.
 *
 * @return Current user permissions. Please refer to values starting from @link FSPDFDocPermPrint @endlink and
 *         this can be one or combination of these values.
 */
-(unsigned int)getUserPermissions:(FSPDFDoc*)document sub_filter:(NSString*)sub_filter;
/**
 * @brief A callback function used to get the cipher type for encryption algorithm.
 *
 * @param[in] document    A PDF document object.
 * @param[in] sub_filter  The sub filter name that specifies the syntax of the encryption dictionary contents.
 *
 * @note User should implement this callback function.
 *
 * @return The cipher type. Please refer to values starting from @link FSSecurityHandlerCipherNone @endlink and
 *         this should be one of these values.
 */
-(FSSecurityHandlerCipherType)getCipherType:(FSPDFDoc*)document sub_filter:(NSString*)sub_filter;
/**
 * @brief A callback function used to get the length of cipher key.
 *
 * @param[in] document    A PDF document object.
 * @param[in] sub_filter  The sub filter name that specifies the syntax of the encryption dictionary contents.
 *
 * @note User should implement this callback function.
 *
 * @return The key length. <br>
 *         For @link FSSecurityHandlerCipherRC4 @endlink cipher, this value should
 *         be between 5 and 16.<br>
 *         For @link FSSecurityHandlerCipherAES @endlink cipher, this value should be 16 or 32.
 */
-(int)getKeyLength:(FSPDFDoc*)document sub_filter:(NSString*)sub_filter;
/**
 * @brief A callback function used to get the file identity string.
 *
 * @param[in] document    A PDF document object.
 * @param[in] sub_filter  The sub filter name that specifies the syntax of the encryption dictionary contents.
 *
 * @note User should implement this callback function.
 *
 * @return The identity string, used to identify the file.
 */
-(NSString*)getFileID:(FSPDFDoc*)document sub_filter:(NSString*)sub_filter;
/**
 * @brief A callback function used to get the initial key to decrypt the DRM protected document.
 *
 * @param[in] document    A PDF document object.
 * @param[in] sub_filter  The sub filter name that specifies the syntax of the encryption dictionary contents.
 *
 * @note User should implement this callback function.
 *
 * @return The initial key.
 */
-(NSData*)getInitialKey:(FSPDFDoc*)document sub_filter:(NSString*)sub_filter;
@end

/**
 * This class represents a callback object for custom decryption and encryption. If user wants to use
 * custom security callback, user should inherit this callback class and implement the pure virtual functions
 * (as callback functions), and then register the custom security callback object to Foxit PDF SDK by function
 * @link FSLibrary::registerSecurityCallback:callback: @endlink with with any custom filter name (following the PDF name
 * conventions). Function @link FSLibrary::unregisterSecurityCallback: @endlink can be called to unregister the
 * security callback object with the registered filter name.
 */
@protocol FSCustomSecurityCallback <FSSecurityCallback>
@required
/**
 * @brief A callback function used to create context for encryption and decryption.
 *
 * @param[in] filter        The filter name of the custom security callback object.
 * @param[in] sub_filter    The sub filter name that specifies the syntax of the encryption dictionary contents.
 * @param[in] encrypt_info  The encryption information of the PDF document.
 *
 * @note User should implement this callback function.
 *
 * @return The encryption context.
 */
-(void *)createContext: (NSString*)filter sub_filter: (NSString*)sub_filter encrypt_info: (NSString*)encrypt_info;
/**
 * @brief A callback function used to release the context for encryption and decryption.
 *
 * @param[in] context  The context for encryption and decryption, returned by callback function
 *                     @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 *
 * @note User should implement this callback function.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)releaseContext: (void *)context;
/**
 * @brief A callback function used to get the user permissions.
 *
 * @param[in] context          The context for encryption and decryption, returned by callback function
 *                             @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 * @param[in] user_permission  Original permission settings of the document. Please refer to values starting from
 *                             @link FSPDFDocPermPrint @endlink and this would be one or combination of these values.
 *
 * @note User should implement this callback function.
 *
 * @return The new user permissions. Please refer to values starting from @link FSPDFDocPermPrint @endlink and
 *         this should be one or combination of these values.
 */
-(unsigned int)getUserPermissions: (void *)context user_permission: (FSPDFDocUserPermissions)user_permission;
/**
 * @brief A callback function used to check if current user is the owner of the PDF document.
 *
 * @param[in] context  The context for encryption and decryption, returned by callback function
 *                     @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 *
 * @note User should implement this callback function.
 *
 * @return <b>YES</b> means current user is the owner, and <b>NO</b> means current user is not the owner.
 */
-(BOOL)isOwner: (void *)context;
/**
 * @brief A callback function used to get the cipher type.
 *
 * @param[in] context  The context for encryption and decryption, returned by callback function
 *                     @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 *
 * @note User should implement this callback function.
 *
 * @return The cipher type. Please refer to values starting from @link FSSecurityHandlerCipherNone @endlink and
 *         this should be one of these values.
 */
-(FSSecurityHandlerCipherType)getCipher: (void *)context;
/**
 * @brief A callback function used to get the encryption key.
 *
 * @param[in] context  The context for encryption and decryption, returned by callback function
 *                     @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 *
 * @note User should implement this callback function.
 *
 * @return The encryption key.
 */
-(NSData *)getEncryptKey: (void *)context;
/**
 * @brief A callback function used to get the estimated decrypted data size.
 *
 * @param[in] context        The context for encryption and decryption, returned by callback function
 *                           @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 * @param[in] src_data_size  Size of source data which is to be decrypted.
 *
 * @note User should implement this callback function.
 *
 * @return The estimated decrypted data size.
 */
-(unsigned int)getDecryptedSize: (void *)context src_data_size: (unsigned int)src_data_size;
/**
 * @brief A callback function used to start a decryption.
 *
 * @param[in] context  The context for encryption and decryption, returned by callback function
 *                     @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 * @param[in] obj_num  The object number for a PDF object.
 * @param[in] gen_num  The generation number for a PDF object.
 *
 * @note User should implement this callback function.
 *
 * @return A decryptor implemented and created by user.
 */
-(void *)startDecryptor: (void *)context obj_num: (int)obj_num gen_num: (int)gen_num;
/**
 * @brief A callback function used to decrypt the encrypted data.
 *
 * @param[in] decryptor           The decryptor implemented and created by user, returned by callback function
 *                                @link FSCustomSecurityCallback::startDecryptor:obj_num:gen_num: @endlink.
 * @param[in] encrypted_data      The buffer which stores the encrypted data.
 * @param[in] encrypted_data_len  The length of encrypted data, in bytes.
 *
 * @note User should implement this callback function.
 *
 * @return The decrypted data content.
 */
-(NSData*)decryptData: (void *)decryptor encrypted_data: (void *)encrypted_data encrypted_data_len: (unsigned int)encrypted_data_len;
/**
 * @brief A callback function used to finish the decryption.
 *
 * @param[in] decryptor  The decryptor implemented and created by user, returned by callback function
 *                       @link FSCustomSecurityCallback::startDecryptor:obj_num:gen_num: @endlink.
 *
 * @note User should implement this callback function.
 *
 * @return The decrypted data content.
 */
-(NSData *)finishDecryptor: (void *)decryptor;
/**
 * @brief A callback function used to get the estimated encrypted size.
 *
 * @param[in] context       The context for encryption and decryption, returned by callback function
 *                          @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 * @param[in] obj_num       The object number for a PDF object.
 * @param[in] gen_num       The generation number for a PDF object.
 * @param[in] src_data      The buffer which stores the plain text to be encrypted.
 * @param[in] src_data_len  The length of the buffer.
 *
 * @note User should implement this callback function.
 *
 * @return The estimated encrypted size.
 */
-(unsigned int)getEncryptedSize: (void *)context obj_num: (int)obj_num gen_num: (int)gen_num src_data: (void *)src_data src_data_len: (unsigned int)src_data_len;
/**
 * @brief A callback function used to get encrypted data.
 *
 * @param[in] context              The context for encryption and decryption, returned by callback function
 *                                 @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 * @param[in] obj_num              The object number for a PDF object.
 * @param[in] gen_num              The generation number for a PDF object.
 * @param[in] src_data             The buffer which stores the plain text to be encrypted.
 * @param[in] src_data_len         The length of the buffer.
 * @param[out] out_dst_buffer      Output parameter used to receives the encrypted content.
 * @param[out] out_dst_buffer_len  Output parameter used to received the length of the encrypted data.
 *
 * @note User should implement this callback function.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)encryptData: (void *)context obj_num: (int)obj_num gen_num: (int)gen_num src_data: (void *)src_data src_data_len: (unsigned int)src_data_len out_dst_buffer: (void *)out_dst_buffer out_dst_buffer_len: (unsigned int*)out_dst_buffer_len;

/**
 * @brief A callback function to check if to use stanard crypto method or custom crypto method.
 *
 * @param[in] context  The context for encryption and decryption, returned by callback function
 *                     @link FSCustomSecurityCallback::createContext:sub_filter:encrypt_info: @endlink.
 *
 * @return <ul>
 *         <li><b>YES</b> means to use standard crypto method. In this case, callback functions
 *             @link FSCustomSecurityCallback::getDecryptedSize:src_data_size: @endlink,
 *             @link FSCustomSecurityCallback::startDecryptor:obj_num:gen_num: @endlink,
 *             @link FSCustomSecurityCallback::decryptData:encrypted_data:encrypted_data_len: @endlink,
 *             @link FSCustomSecurityCallback::finishDecryptor: @endlink,
 *             @link FSCustomSecurityCallback::getEncryptedSize:obj_num:gen_num:src_data:src_data_len: @endlink,
 *             and @link FSCustomSecurityCallback::encryptData:obj_num:gen_num:src_data:src_data_len:out_dst_buffer:out_dst_buffer_len: @endlink will be uselss
 *             and user can just use empy implementation for them.</li>
 *         <li><b>NO</b> means use custom crypto method. In this case, please ensure callback functions mentioned above have all been implemented.</li>
 *         </ul>
 */
-(BOOL)useStandardCryptoMethod:(void*)context;

@end

/**
 * This class represents a callback object for RMS decryption and encryption. If user wants to use
 * RMS security callback, user should inherit this callback class and implement the pure virtual functions
 * (as callback functions), and then register the RMS security callback object to Foxit PDF SDK by function
 * @link FSLibrary::registerSecurityCallback:callback: @endlink with <i>filter</i> "MicrosoftIRMServices".
 * Function @link FSLibrary::unregisterSecurityCallback: @endlink can be called to unregister the security
 * callback object with the registered filter name.
 */
@protocol FSRMSSecurityCallback <FSCustomSecurityCallback>

@end

/**
 * This class represent a callback object to sign or verify signature.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user,
 * in order to sign or verify signature in a customized way.<br>
 * User can set register customized signature callback object to Foxit PDF SDK by function
 * @link FSLibrary::registerSignatureCallback:sub_filter:signature_callback: @endlink with filter and sub filter as the callback name.
 *
 * @see @link FSLibrary @endlink
 */
@protocol FSSignatureCallback <NSObject>
@required
/**
 * @brief A callback function used to start a custom digest calculation, mainly to initialize the calculation process.
 *
 * @param[in] file              When signing a signature, this represents the source file object to be signed.<br>
 *                              When verifying a signature field, this represents the source file object
 *                              to be verified.
 * @param[in] byte_range_array  A byte range array of the signed document(not the source document).<br>
 *                              Elements in this array always be in pairs of offset-size values in order of:
 *                              offset,size,offset,size...
 * @param[in] signature         A signature object.
 * @param[in] client_data       Pointer to a user-defined object, which is passed by user from function
 *                              @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink or
 *                              @link FSSignature::startVerify:pause: @endlink.
 *
 * @return <b>YES</b> means the calculation process is successfully started and then
 *         @link FSSignatureCallback::continueCalcDigest:client_data: @endlink will be triggered to continue the calculation process.
 *         <b>NO</b> means fail to start a calculation process.
 */
-(BOOL)startCalcDigest: (id<FSFileReaderCallback>)file byte_range_array: (NSArray<NSNumber *> *)byte_range_array signature: (FSSignature*)signature client_data: (void* )client_data;
/**
 * @brief A callback function used to continue the custom digest calculation process.
 *
 * @param[in] pause        Pause object which decides if the calculation process needs to be paused.
 *                         If this is <b>nil</b>, it means not to pause during the calculation process.
 *                         If this is not <b>nil</b>, please check the returned value of
 *                         function <b>FSPauseCallback::needPauseNow</b> and decide when to pause
 *                         the calculation process.
 * @param[in] client_data  Pointer to a user-defined object, which is passed by user from function
 *                         @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink or
 *                         @link FSSignature::startVerify:pause: @endlink.
 *
 * @return @link FSProgressiveFinished @endlink means the rendering is finished
 *         successfully.<br>
 *         @link FSProgressiveToBeContinued @endlink means the calculation
 *         process is not finished yet and callback function @link FSSignatureCallback::continueCalcDigest:client_data: @endlink
 *         would be triggered again to continue the process.<br>
 *         @link FSProgressiveError @endlink means any error occurs.
 */
-(FSProgressiveState)continueCalcDigest: (id<FSPauseCallback> )pause client_data: (void* )client_data;
/**
 * @brief A callback function used to get the digest after the calculation process is finished.
 *
 * @details This callback function will be triggered when the calculation process is finished successfully.
 *
 * @param[in] client_data  Pointer to a user-defined object, which is passed by user from function
 *                         @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink or @link FSSignature::startVerify:pause: @endlink.
 *
 * @return The digest string.
 *         If there is any error, please return an empty string.
 */
-(NSData *)getDigest: (void* )client_data;
/**
 * @brief A callback function used to do signing and return the signed data.
 *
 * @details Host application provides this callback function for custom sign mechanism.
 *          This callback function would be triggered during the signature signing process.
 *
 * @param[in] digest            The digest data buffer, for source file buffer to be signed.
 * @param[in] cert_path         The certificate file path, which will be used for signing.
 * @param[in] cert_password     The password string, used to open the cert file. If this is an empty string,
 *                              that means no password is required.
 * @param[in] digest_algorithm  The algorithm of message digest for signed data. Please refer to values
 *                              starting from @link FSSignatureDigestSHA1 @endlink and this would be one of these values.
 * @param[in] client_data       Pointer to a user-defined object, which is passed by user from function
 *                              @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink or @link FSSignature::startVerify:pause: @endlink.
 *
 * @return Signed data. If there is any error, please return an empty string.<br>
 *         The length of returned signed data should be within the default length of signature contents
 *         which is 7942 by default or specified by fucntion @link FSSignature::setDefaultContentsLength: @endlink
 *         before signing the unsigned signature.
 */
-(NSData *)sign: (NSData*)digest cert_path: (NSString* )cert_path cert_password: (NSString* )cert_password digest_algorithm: (FSSignatureDigestAlgorithm)digest_algorithm client_data: (void* )client_data;
/**
  * @brief A callback function used to do signing and return the signed data.
  *
  * @details Host application provides this callback function for custom sign mechanism.
  *          This callback function would be triggered during the signature signing process.
  *
  * @param[in] digest            The digest data buffer, for source file buffer to be signed.
  * @param[in] cert_file_stream  The certificate file stream, which will be used for signing.
  * @param[in] cert_password     The password string, used to open the cert file. If this is an empty string,
  *                              that means no password is required.
  * @param[in] digest_algorithm  The algorithm of message digest for signed data. Please refer to values
  *                              starting from @link FSSignatureDigestSHA1 @endlink and this would be one of these values.
  * @param[in] client_data       A user-defined object, which is passed by user from function
  *                              @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink or @link FSSignature::startVerify:pause: @endlink.
  *
  * @return Signed data. If there is any error, please return an empty string.<br>
  *         The length of returned signed data should be within the default length of signature contents
  *         which is 7942 by default or specified by fucntion @link FSSignature::setDefaultContentsLength: @endlink
  *         before signing the unsigned signature.
  */
-(NSData *)sign: (NSData*)digest cert_file_stream:(id<FSFileStreamCallback>)cert_file_stream cert_password: (NSString* )cert_password digest_algorithm: (FSSignatureDigestAlgorithm)digest_algorithm client_data: (void* )client_data;
/**
 * @brief A callback function used to verify the integrity of a signature and return the verify state.
*
 * @details Host application provides this callback function for custom sign mechanism.
 *          This callback function would be triggered during the signature verifying process.<br>
 *          From 7.0, this callback function is only used to verify the intergrity of a signature.
 *          Please check the comment about return value for more details.
 *
 * @param[in] digest           The digest data buffer, for source file buffer to be verified.
 * @param[in] signed_data      The signed data buffer.
 * @param[in] client_data      Pointer to a user-defined object, which is passed by user from function
 *                             @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink or @link FSSignature::startVerify:pause: @endlink.
 *
 * @return Verify state:
 *         <ul>
 *         <li>Please return @link FSSignatureStateVerifyNoChange @endlink alone to indicate that
 *             the document has not been changed within the scope of the signature.</li>
 *         <li>Otherwise, please return @link FSSignatureStateVerifyChange @endlink alone or combined with other error state value.</li>
 *         </ul>
 */
-(FSSignatureStates)verifySigState: (NSData*)digest signed_data: (NSData*)signed_data client_data: (void* )client_data;

/**
 * @brief A callback function used to check whether to return all contents with padding zero or not, when callback function
 *        @link FSSignatureCallback::verifySigState:signed_data:client_data: @endlink is called.
 *
 * @return <b>YES</b> means to return all data in contents steam (including padding zero),
 *         while <b>NO</b> means to return contents data without padding zero in stream end.
 */
-(BOOL)isNeedPadData;

/**
 * @brief A callback function used to check the validity of a certificate.
 *
 * @details This callback function will be triggered when function @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink is called.
 *          If no need to check the certificate, value @link FSSignatureCallbackCertValid @endlink can
 *          be returned directly.
 *
 * @param[in] cert_path      A full path of a PFX certificate file (including file name and extension),
 *                           which will be used for signing. This is passed by user from function
 *                           @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink.
 * @param[in] cert_password  A password string used to open the cert file. If this is an empty string,
 *                           that means no password is required.This is passed by user from function
 *                           @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink.
 * @param[in] client_data    A user-defined object, which is passed by user from function
 *                           @link FSSignature::startSign:cert_password:digest_algorithm:save_path:client_data:pause: @endlink.
 *
 * @return Certificate validity. Please refer to values starting from @link FSSignatureCallbackCertValid @endlink
 *         and it should be one of these values.
 */
-(FSSignatureCallbackCertValidity)checkCertificateValidity:(NSString*)cert_path cert_password:(NSString*)cert_password client_data:(void*)client_data;

@end

/**
 * This class represents a callback object for interacting with timestamp servers.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by users.
 */
@protocol FSTimeStampCallback <NSObject>
@required
 /**
  * @brief A callback function used to send time stamp request.
  *
  * @param[in] request  Time stamp request to be sent. It may be an empty string.
  *
  * @return Result value of the sending request process. Please refer to values starting from
  *         @link FSTimeStampServerSendResultSuccess @endlink and this would be one of these values.
  */
-(FSTimeStampServerSendRequestResult)sendTimeStampRequest:(NSString*)request;

 /**
  * @brief A callback function used to get time stamp message.
  *
  * @return Time stamp message.It can be an empty string.
  */
-(NSData *)getTimeStampMessage;
@end

/**
 * This class represents a callback object as an XFA application provider.
 * All the functions in this class are used as callback functions. Pure virtual functions should be implemented
 * by user.
 */
@protocol FSAppProviderCallback <NSObject>
@required
/**
 * @brief A callback function used to get application information for a specified information type.
 *
 * @param[in] app_info  The type of application information, whose information is to retrieved. Please refer to
 *                      values starting from @link FSAppProviderCallbackAppInfoType @endlink and this would be
 *                      one of these values.
 *
 * @return A string of application information.
 */
-(NSString*)getAppInfo:(FSActionCallbackAppInfoType)app_info;
/**
 * @brief A callback function used to beep for specified beep type.
 *
 * @param[in] type  The beep type. Please refer to values starting from @link FSAppProviderCallbackBeepTypeError @endlink
 *                  and this would be one of these values.
 *
 * @return None.
 */
-(void)beep:(FSAppProviderCallbackBeepType)type;
/**
 * @brief A callback function used to set message box.
 *
 * @param[in] message      A message string.
 * @param[in] title        The title of message box.
 * @param[in] icon_type    The icon type for message box. Please refer to values starting from
 *                         @link FSAppProviderCallbackMsgBoxIconError @endlink and this would be one of these values.
 * @param[in] button_type  The button type for message box. Please refer to values starting from
 *                         @link FSAppProviderCallbackMsgBtnTypeOK @endlink and this would be one of these values.
 *
 * @return The button ID for message box. Please refer to values starting from @link FSAppProviderCallbackMsgBtnIDOK @endlink
 *         and this should be one of these values.
 */
-(FSAppProviderCallbackMsgBoxButtonID)msgBox:(NSString*)message title:(NSString*)title icon_type: (FSAppProviderCallbackMsgBoxIconType) icon_type button_type: (FSAppProviderCallbackMsgBoxButtonType)button_type;
/**
 * @brief A callback function used to response.
 *
 * @param[in] question        A string that represents the question.
 * @param[in] title           A string that represents the title.
 * @param[in] default_answer  A string that represents the default answer. It could be an empty string
 *                            which means no default answer.
 * @param[in] is_mask         <b>YES</b> means the answer should be masked by '*',
 *                            while <b>NO</b> means the answer does not need to be masked by '*'.
 *
 * @return A string that represents the response answer.
 */
-(NSString*)response:(NSString*)question title:(NSString*)title default_answer:(NSString*)default_answer is_mask:(BOOL)is_mask;
/**
 * @brief A callback function used to download from specified URL.
 *
 * @param[in] url  A URL to be downloaded.
 *
 * @return Pointer to a ReaderCallback object which can be used to read the downloading result.
 */
-(id<FSFileReaderCallback>)downLoadUrl:(NSString*)url;
/**
 * @brief A callback function used to post data to the given URL.
 *
 * @param[in] url           A URL, to which the data will be posted.
 * @param[in] data          The data to be posted.
 * @param[in] content_type  A string that represents the content type of data. This string could be "text/html",
 *                          "text/xml", "text/plain", "multipart/form-data", "application/x-www-form-urlencoded",
 *                          "application/octet-stream", or any valid MIME type.
 * @param[in] encode        A string that represents the encoding of data. This string could be "UTF-8", "UTF-16",
 *                          "ISO8859-1", or any recognized [IANA]character encoding.
 * @param[in] header        A string that represents any additional HTTP headers to be included in the post.
 *
 * @return The response string.
 */
-(NSString*)postRequestURL:(NSString*)url data:(NSString*)data content_type:(NSString*)content_type encode:(NSString*)encode header:(NSString*)header;
/**
 * @brief A callback function used to put data to the given URL.
 *
 * @param[in] url     A URL, to which the data will be put.
 * @param[in] data    The data to be put.
 * @param[in] encode  A string that represents the encoding of data. This string could be "UTF-8", "UTF-16",
 *                    ISO8859-1", or any recognized [IANA]character encoding.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)putRequestURL:(NSString*)url data:(NSString*)data encode:(NSString*)encode;
/**
 * @brief A callback function used to load a string in local language for a specified case.
 *
 * @details This function is very useful for user to use local language for message of specified cases.
 *          User can re-write or translate the sample message (which is defined in the comment of
 *          values starting from @link FSAppProviderCallbackStringIDValidateFailed @endlink)
 *          into local language for the specified case, and return the result string to Foxit PDF SDK.
 *          Specially, Foxit PDF SDK will add some necessary information/data to the format part in
 *          the sample message, in order to make the message more useful. User is recommended to
 *          keep these format part in the re-written or translated result string; otherwise,
 *          these information/data will not be lost and will not be added to the message offered by user.
 *
 * @param[in] string_id  A string ID to specify a case. Please refer to values starting from
 *                       @link FSAppProviderCallbackStringIDValidateFailed @endlink and this would be one of these values.
 *
 * @return A string used for the specified case.
 */
-(NSString*)loadString:(FSAppProviderCallbackStringID)string_id;
/**
 * @brief A callback function used to show file dialog.
 *
 * @param[in] string_title        A string that represents the dialog title.
 * @param[in] string_filter       A string that represents the dialog file filter.
 * @param[in] is_openfile_dialog  <b>YES</b> means the dialog is an open-file-dialog,
 *                                while <b>NO</b> means the dialog is a save-as-dialog.
 *
 * @return An array of file paths.
 */
-(NSArray<NSString*>*)showFileDialog:(NSString*)string_title string_filter:(NSString*)string_filter is_openfile_dialog:(BOOL)is_openfile_dialog;
@end

/**
 * This class represents a callback object as an XFA document provider.
 * All the functions in this class are used as callback functions. Pure virtual functions should be implemented
 * by user.
 */
@protocol FSDocProviderCallback <NSObject>
@required
/**
 * @brief A callback function used to invalidate rectangle according the flag.
 *
 * @details This callback function would be used in dynamic XFA document.
 *
 * @param[in] page_index  The index of page.
 * @param[in] rect        A rectangle to be invalidate.
 * @param[in] flag        Invalidate flag. Please refer to values starting from
 *                        @link FSDocProviderCallbackInvalidateFlagAllPages @endlink
 *                        and this would be one of these values.
 *
 * @return None.
 */
-(void)invalidateRect:(int)page_index rect:(FSRectF*)rect flag:(FSDocProviderCallbackInvalidateFlag)flag;
/**
 * @brief A callback function used to display or hide caret.
 *
 * @param[in] page_index  The index of page.
 * @param[in] is_visible  Used to decide whether the caret is visible or not: <b>YES</b> means visible,
 *                        while <b>NO</b> means invisible.
 * @param[in] rect        A rectangle.
 *
 * @return None.
 */
-(void)displayCaret:(int)page_index is_visible:(BOOL)is_visible rect:(FSRectF*)rect;
/**
 * @brief A callback function used to get the pop-up position.
 *
 * @param[in] page_index            The index of page.
 * @param[in] min_popup             The minimum height of drop-down box.
 * @param[in] max_popup             The maximum height of drop-down box.
 * @param[in] rect_widget           The rectangle of current widget.
 * @param[in,out] inout_rect_popup  A rectangle. When this function calls, this is used as an input parameter
 *                                  that specifies the width of drop-down box.
 *                                  When this function returns, this is used as an output parameter that receives
 *                                  the height of drop-down box.
 *
 * @return <b>YES</b> means success, while <b>NO</b> means failure.
 */
-(BOOL)getPopupPos:(int)page_index min_popup:(float)min_popup max_popup:(float)max_popup rect_widget:(FSRectF*)rect_widget inout_rect_popup:(FSRectF*)inout_rect_popup;
/**
 * @brief A callback function used to pop up the context menu.
 *
 * @param[in] page_index  The index of page.
 * @param[in] rect_popup  The rectangle where to pop up menu.
 *
 * @return <b>YES</b> means success, otherwise <b>NO</b> means failure.
 */
-(BOOL)popupMenu:(int)page_index rect_popup:(FSPointF*)rect_popup;
/**
 * @brief A callback function used to get index of current page.
 *
 * @param[in] doc  Current XFA document.
 *
 * @return The index of current page.
 */
-(int)getCurrentPage:(FSPDFDoc*) doc;
/**
 * @brief A callback function used to set index of current page.
 *
 * @param[in] doc                 Current XFA document.
 * @param[in] current_page_index  The index would be set.
 *
 * @return None.
 */
-(void)setCurrentPage:(FSPDFDoc*) doc current_page_index:(int)current_page_index;
/**
 * @brief A callback function used to set change mark flag to current XFA document.
 *
 * @param[in] doc Current XFA document.
 *
 * @return None.
 */
-(void)setChangeMark:(FSXFADoc*) doc;
/**
 * @brief A callback function used to get title of current XFA document.
 *
 * @param[in] doc  Current XFA document.
 *
 * @return The title.
 */
-(NSString*)getTitle:(FSPDFDoc*) doc;
/**
 * @brief A callback function used to set focus widget.
 *
 * @param[in] xfa_widget   An XFA widget to be set focus on.
 * @param[in] is_relayout  <b>true</b> means the layout has changed,
 *                         while <b>false</b> means the layout has not changed.
 *
 * @return None.
 */
-(void)setFocus:(FSXFAWidget*)xfa_widget is_relayout:(BOOL) is_relayout;
/**
 * @brief A callback function used to export data to file.
 *
 * @param[in] doc        Current XFA document.
 * @param[in] file_path  A file path, to which the data should be exported.
 *                       If this is an empty string, user should specify a path as the exported file path.
 *                       In this case, application can show a dialog to user to let user select the file manually.
 *
 * @return None.
 */
-(void)exportData:(FSPDFDoc*)doc file_path:(NSString*) file_path;
/**
 * @brief A callback function used to import data from file.
 *
 * @param[in] doc        Current XFA document.
 * @param[in] file_path  A file path, from which the data would be imported.
 *                       If this is an empty string, user should specify a path as the imported file path.
 *                       In this case, application can show a dialog to user to let user select the file manually.
 *
 * @return None.
 */
-(void)importData:(FSPDFDoc*)doc file_path:(NSString*) file_path;
/**
 * @brief A callback function used to go to a specified URL.
 *
 * @param[in] doc  Current XFA document.
 * @param[in] url  A URL string.
 *
 * @return None.
 */
-(void)gotoURL:(FSPDFDoc*)doc url:(NSString*) url;
/**
 * @brief A callback function used to print.
 *
 * @param[in] doc               Current XFA document.
 * @param[in] start_page_index  The index of start page.
 * @param[in] end_page_index    The index of end page.
 * @param[in] options           Print options. Please refer to values starting from
 *                              @link FSDocProviderCallbackPrintOptionShowDialog @endlink
 *                              and this would be one or a combination of these values.
 *
 * @return None.
 */
-(void)print:(FSPDFDoc*)doc start_page_index:(int)start_page_index end_page_index:(int)end_page_index options:(int)options;
/**
 * @brief A callback function get the highlight color.
 *
 * @param[in] doc  Current XFA document.
 *
 * @return The highlight color.
 */
-(int)getHighlightColor:(FSPDFDoc*)doc;
/**
 * @brief A callback function to submit data.
 *
 * @param[in] doc            Current XFA document.
 * @param[in] target         A string that represents the target of data to be submit.
 * @param[in] format         The format of data to be submit. Please refer to values starting from
 *                           @link FSDocProviderCallbackSubmitInXDP @endlink and this would be one of these values.
 * @param[in] text_encoding  The text encoding of data to be submit. Please refer to values starting from
 *                           @link FSDocProviderCallbackTextEncodingNone @endlink and this would be one of these values.
 * @param[in] content        The content of data to be submit.
 *
 * @return <b>YES</b> means success, otherwise <b>NO</b> means failure.
 */
-(BOOL)submitData:(FSPDFDoc*)doc target:(NSString*)target format:(FSDocProviderCallbackSubmitFormat)format text_encoding:(FSDocProviderCallbackTextEncoding)text_encoding content:(NSString*)content;
/**
 * @brief A callback function to execute page view event.
 *
 * @param[in] page_index            The page index.
 * @param[in] page_view_event_type  Page view event type. Please refer to values starting from
 *                                  @link FSDocProviderCallbackPageViewEventTypeAdded @endlink and this would be
 *                                  one of these values.
 *
 * @return None.
 */
-(void)pageViewEvent:(int)page_index page_view_event_type:(FSDocProviderCallbackPageViewEventType)page_view_event_type;
/**
 * @brief A callback function to execute XFA widget event.
 *
 * @param[in] xfa_widget         An XFA widget which sends the event.
 * @param[in] widget_event_type  Widget event type. Please refer to values starting from
 *                               @link FSDocProviderCallbackWidgetEventTypeAdded @endlink and
 *                               this would be one of these values.
 *
 * @return None.
 */
-(void)widgetEvent:(FSXFAWidget *) xfa_widget widget_event_type:(FSDocProviderCallbackWidgetEventType)widget_event_type;

/**
 * @brief A callback function to notify XFA widget change information.
 *
 * @param[in] doc          Current XFA document.
 * @param[in] change_info  The xfa widget change information.
 *
 * @return None.
 */
-(void)notifyWidgetChangeInfo:(FSXFADoc*) doc change_info:(FSXFAWidgetModifyInfo*)change_info;
@end

/**
 * This class represent a callback object to update the progress data to user.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 */
@protocol FSComplianceProgressCallback <NSObject>
@required
/**
 * @brief A callback function used to update current progress state data to user in order that user can update their progress bar.
 *
 * @param[in] current_rate          Current rate. It would be between 0 and 100 (inclusive). 100 means finished.
 * @param[in] current_state_string  A string that describing what current state is.
 *
 * @return None.
 */
-(void)updateCurrentStateData:(int)current_rate current_state_string:(NSString*)current_state_string;
@end

/**
 * This class represent a revocation callback object which is used for class @link FSLTVVerifier @endlink.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 * 
 * @see @link FSLTVVerifier @endlink
 */
@protocol FSRevocationCallback <NSObject>
@required
/**
 * @brief A callback function used to get the cert chain from the signature content.
 *
 * @param[in] signature_content  Signature content.
 *
 * @return An array that represents the cert chain.
 */
-(NSArray<NSData*>*)getCertChainFromSignature: (NSData*)signature_content;

/**
 * @brief A callback function used to get response online for a certificate.
 *
 * @param[in] cert_issuer_pair  A cert-issuer pair which represents a certificate and an issuer for the certificate.
 *
 * @return Response for the certificate.
 *
 */
-(FSResponse*)getResponseOnLineForSingleCert: (FSCertIssuerPair*)cert_issuer_pair;

/**
 * @brief A callback function used to verify whether the OCSP response matches the certificate and
 *        get the verify result for the certificate.
 *
 * @param[in] cert_issuer_pair  A cert-issuer pair which represents a certificate and an issuer for the certificate.
 * @param[in] ocsp_data         OCSP content.
 *
 * @return Certificate verify result that obtained from CRL.
 */
-(FSCertVerifyResult*)verifyOCSP:(FSCertIssuerPair*)cert_issuer_pair ocsp_data:(NSData*)ocsp_data;

/**
 * @brief A callback function used to verify whether the CRL response matches the certificate and
 *        get the verify result for the certificate.
 *
 * @param[in] cert_issuer_pair  A cert-issuer pair which represents a certificate and an issuer for the certificate.
 * @param[in] crl_data          CRL content.
 *
 * @return Certificate verify result that obtained from CRL.
 */
-(FSCertVerifyResult*)verifyCRL:(FSCertIssuerPair*)cert_issuer_pair crl_data:(NSData*)crl_data;

/**
 * @brief A callback function used to judge whether a certificate is a CA certificate.
 *
 * @param[in] cert  Certificate content.
 *
 * @return <b>YES</b> means the certificate is a CA certificate, while <b>NO</b> means not.
 */
-(BOOL)isCA:(NSData*)cert;

/**
 * @brief A callback function used to get the DTS (document time stamp signature) time from signature content.
 *
 * @param[in] signature_content  Signature content.
 *
 * @return DTS time. <i>utc_hour_offset</i> and <i>utc_minite_offset</i> of this time would be ignored.
 */
-(FSDateTime*)getDTSTime:(NSData*)signature_content;

/**
 * @brief A callback function used to get the time stamp token content from a signature content.
 *
 * @param[in] signature_content  Signature content.
 *
 * @return Time stamp token content.
 */
-(NSData*)getTSTSignature:(NSData*)signature_content;

/**
 * @brief A callback function used to get the time stamp token time from signature content.
 *
 * @param[in] signature_content  Signature content.
 *
 * @return Time of time stamp token of a signature. <i>utc_hour_offset</i> and <i>utc_minite_offset</i>
 *         of this time would be ignored.
 */
-(FSDateTime*)getTSTTime:(NSData*)signature_content;

/**
* @brief A callback function used to get the cert-issuer pair of OCSP response
*
* @param[in] ocsp_data         OCSP response data.
* @param[in] trust_cert_chain  The trust cert chain used to find the issuer of the OCSP cert.
*
* @return A cert-issuer pair that obtained from OCSP.
*/
-(FSCertIssuerPair*)getOCSPCertAndIssuer:(NSData*)ocsp_data trust_cert_chain:(NSArray<NSData*>*)trust_cert_chain;

/**
 * @brief A callback function used to get the produce time of the OCSP response.
 *
 * @param[in] ocsp_data  OCSP response content.
 *
 * @return Produce time of the OCSP response. <i>utc_hour_offset</i> and <i>utc_minite_offset</i>
 *         of this time would be ignored.
 */
-(FSDateTime*)getOCSPProducedAtTime:(NSData*)ocsp_data;

/**
 * @brief A callback function used to get flag which decides if need to check OCSP response.
 *
 * @param[in] ocsp_data  OCSP response content.
 *
 * @return <b>YES</b> means need to check OCSP response, while <b>NO</b> means no need.
 */
-(BOOL)isOCSPNeedCheck:(NSData*)ocsp_data;

/**
 * @brief A callback function used to get the time range that represents validity period of a certificate.
 *
 * @param[in] cert  Certificate content.
 *
 * @return Time range that represents validity period of the certificate.
 */
-(FSTimeRange*)getCertValidTimeRange:(NSData*)cert;

/**
 * @brief A callback function used to get the signature content from a OCSP response.
 *
 * @param[in] ocsp_data  OCSP response content.
 *
 * @return Signature content .
 */
-(NSData*)getOCSPSignature:(NSData*)ocsp_data;

/**
 * @brief A callback function used to get the signature content from a CRL response.
 *
 * @param[in] crl_data  CRL response content.
 *
 * @return Signature content.
 */
-(NSData*)getCRLSignature:(NSData*)crl_data;

/**
 * @brief A callback function used to get the revocation information (in array type) from a signature.
 *
 * @param[in] signature_content  Signature content.
 *
 * @return Information in array type of revocation information.
 */
-(FSRevocationArrayInfo*)getRevocationInfoFromSignatureData:(NSData*)signature_content;

/**
 * @brief A callback function used to check if an issuer matches a certificate.
 *
 * @param[in] cert_issuer_pair  A cert-issuer pair. Issuer in this pair is to be checked
 *                              if it matches the ceritificate in this pair.
 *
 * @return <b>YES</b> means issuer matches the certificate, while <b>NO</b> means not.
 */
-(BOOL)isIssuerMatchCert:(FSCertIssuerPair*)cert_issuer_pair;

@end

/**
 * This class represent a callback object as trusted cert store.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.<br>
 * If user wants to trust some certificate during LTV verify process, user can set a customized trusted cert store callback object
 * by function @link FSLTVVerifier::setTrustedCertStoreCallback: @endlink before doint LTV verifying process.
 *
 * @see @link FSLTVVerifier @endlink
 */
@protocol FSTrustedCertStoreCallback <NSObject>
@required
/**
 * @brief A callback function used to check if input certificate is trusted.
 *
 * @param[in] cert  Certificate content.
 *
 * @return <b>YES</b> means input certificate is trusted, while <b>NO</b> means input certificated is not trusted.
 */
-(BOOL)isCertTrusted:(NSData*)cert;
/**
 * @brief A callback function used to check if input certificate is used as a trusted root.
 *
 * @param[in] cert  Certificate content.
 *
 * @return <b>YES</b> means input certificate is used as a trusted root, while <b>NO</b> means input certificated is not used as a trusted root.
 */
-(BOOL)isCertTrustedRoot:(NSData*)cert;

@end

/**
 * This class represents a callback object that supplies extra certificates to complete the certificate chain.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.<br>
 * If user wants to supply extra certificates during LTV verify process, a customized certificate chain resolver callback object can be set via
 * @link LTVVerifier::SetCertChainResolverCallback @endlink before doing LTV verifying process.<br>
 * Only available when using the default internal revocation callback of Foxit PDF SDK.
 *
 * @see @link pdf::LTVVerifier @endlink
 */
@protocol FSCertChainResolverCallback <NSObject>
@required
  /**
   * @brief Retrieve the array of certificates available for completing the certificate chain.
   * 
   * @return An array of certificates.
   *
   * @note User may return the certificates currently needed or all available system certificates. 
   *       These certificates are used to complete and validate the certificate chain.
   * 
   */
-(NSArray<NSData*>*) GetCertificates;

@end

/**
 * This class represents a callback object to map font in customized way.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 * An implemented @link FSFontMapperCallback @endlink object can be set to Foxit PDF SDK by
 * function @link FSLibrary::setFontMapperCallback: @endlink.
 *
 * @see @link FSLibrary @endlink
 */
@protocol FSFontMapperCallback <NSObject>
@required

/**
 * @brief A callback function used to map a suitable font according to input parameters.
 *
 * @param[in] font_name     Font name.
 * @param[in] is_truetype   <b>YES</b> means the font is expected to be a TrueType font, while <b>NO</b> means the font is expected to be a Type1 font.
 * @param[in] styles        Font styles. Please refer to values starting from @link FSFontStyleFixedPitch @endlink and
 *                          this would be one or a combination of these values.
 * @param[in] weight        Original font weight. 0 means unspecified.
 * @param[in] italic_angle  Italic angle.
 * @param[in] charset       The charset of the font to be mapped. Please refer to values starting from
 *                          @link FSFontCharsetANSI @endlink and this would be one of these values.
 *
 * @return Font map result object. If any member in the returned @link FSFontMapResult @endlink is invalid,
 *         that means no mapped font is found. Then Foxit PDF SDK will do font mapping.
 */
-(FSFontMapResult*)mapFont:(NSString*)font_name is_truetype:(BOOL)is_truetype styles:(unsigned int)styles weight:(int)weight italic_angle:(int)italic_angle charset:(FSFontCharset)charset;

/**
 * @brief A callback function used to map a suitable font according to input parameters.
 * 
 * @param[in] font_family_name  Font family name.
 * @param[in] charset           The charset of the font to be mapped. Please refer to values starting from
 *                              @link FSFontCharsetANSI @endlink and this would be one of these values.
 * @param[in] styles        Font styles. Please refer to values starting from @link FSFontStyleFixedPitch @endlink and
 *                          this would be one or a combination of these values.
 * @param[in] weight        Original font weight. 0 means unspecified.
 * @param[in] italic_angle  Italic angle.
 *
 * @return Font family name array. If the returned array is empty, that means no mapped font is found.
 */
-(NSArray<NSData *> *) mapFont:(NSString*)font_family_name charset:(FSFontCharset)charset styles:(unsigned int)styles weight:(int)weight italic_angle:(int)italic_angle;

@end

/**
* This class represents a callback object which is used during summarizing annotation to allow user to decide some format/data.
* All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 * An implemented @link FSAnnotationSummaryCallback @endlink object can be set to Foxit PDF SDK by
 * function @link FSAnnotationSummary::setCallback: @endlink.
 *
 * @see @link FSAnnotationSummary @endlink
 */
@protocol FSAnnotationSummaryCallback <NSObject>
@required

/**
 * @brief A callback function used to specify current locale id.
 *
 * @details Locale ID is used to decide locale format for some information, such as date format.
 *
 * @return A locale ID. Please refer to values starting from @link FSLocaleIDUnspecified @endlink
 *         and this should be one of these values. If returned locale ID is not supported, Foxit PDF SDK will use
 *         value @link FSLocaleIDUnspecified @endlink by default.
 */
-(FSLocaleID)getCurrentLocaleID;

/**
   * @brief A callback function used to specify the font name used locally.
   *
   * @details This function is very useful for user to specify the font used in result document.
   *
   * @return Font name string. If an empty string is returned, Foxit PDF SDK will use "Helvetica" as default font name.
   *         If returned font name is invalid, this name will not take any effect.
   */
-(NSString*)getLocalFontName;

/**
   * @brief A callback function used to load a string in local language for a specified case.
   *
   * @details This function is very useful for user to use local language for some string content in result document.
   *          By using this function, user can re-write or translate default output strings to local language for specified case
   *          in result document. Default output strings for these specified cases can be found in comment for values
   *          starting from @link FSAnnotationSummaryCallbackAnnotationSummaryStringIDAuthor @endlink.<br>
   *          Specially, Foxit PDF SDK will add some necessary information/data to the format part in
   *          the result document, in order to make content in the result document more useful.
   *
   * @param[in] id  An annotation summary string ID to specify a summary case. Please refer to
   *                values starting from @link FSAnnotationSummaryCallbackAnnotationSummaryStringIDAuthor @endlink and this would be
   *                one of these values.
   *
   * @return A string used for the specified case.
   */
 -(NSString*)loadString:(FSAnnotationSummaryCallbackAnnotationSummaryStringID)id;

@end

/**
 * This class represents a callback object which is used during tag PDF document to allow user to get tag result info.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 * An implemented @link FSTaggedPDFCallback @endlink object can be set to Foxit PDF SDK by
 * function @link FSTaggedPDF::setCallback: @endlink.
 *
 * @see @link FSTaggedPDF @endlink
 */
@protocol FSTaggedPDFCallback <NSObject>
@required

/**
  * @brief A callback function used to get the tagged PDF document result information, triggered when the document will be tagged.
  *
  * @details This function is very useful for user to get the tagged PDF document result information.
  *
  * @param[in] category    The report category for tagged PDF. Please refer to values starting
  *                        from @link FSTaggedPDFCallbackReportCategoryRegion @endlink and this would be
  *                        one of these values.
  * @param[in] confidence  The report confidence for tagged PDF. Please refer to values starting
  *                        from @link FSTaggedPDFCallbackReportConfidenceHigh @endlink and this would be
  *                        one of these values.
  * @param[in] page_index  The page index of current report item belongs to.
  * @param[in] rect        The rectangle of current report item.
  *
  * @return None.
  */
-(void)report:(FSTaggedPDFCallbackReportCategory)category confidence:(FSTaggedPDFCallbackReportConfidence)confidence page_index:(int)page_index rect:(FSRectF*)rect;

@end

/**
 * This class represents a callback object for replacing.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 */
@protocol FSReplaceCallback <NSObject>
@required

/**
 * @brief A callback function to verify whether need to replace text.
 *
 * @param[in] search_text             The search text. It will not be empty.
 * @param[in] replace_text            The text will be replaced with. It will not be empty.
 * @param[in] current_page_index      The current page index.Valid range: from 0 to (<i>count</i>-1). <i>count</i> is returned by function
 *                                    @link FSPDFDoc::getPageCount @endlink for PDF document.
 * @param[in] text_rect_array         The found text rect array.
 *
 * @return <b>true</b> means to replace, while <b>false</b> means not.
 */
-(BOOL)needToReplace:(NSString*)search_text replace_text:(NSString*)replace_text current_page_index:(int)current_page_index text_rect_array:(FSRectFArray*)text_rect_array;

@end

/**
 * This class represents a callback object for generating table.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 */
@protocol FSTableGeneratorCallback <NSObject>
@required

/**
 * @brief A callback function to get the top margin for generating table to an new page.
 *
 * @param[in] page_index The page index. It would start from 0.
 *
 * @return The table top margin to page.
 */
-(float)getTableTopMarginToPage:(int)page_index;

/**
 * @brief A callback function to get new page basic information to be generated to a new page.
 *
 * @details This callback function is only used for @link FSTableGenerator::insertTablePagesToDocument @endlink.
 *          It will be triggered if the page width or page height is less than or equal to zero.
 *          Users must ensure that the text size is greater than zero in @link FSRichTextStyle @endlink if the content of cell is text.
 *
 * @param[in] page_index        The page index. It would start from 0.
 * @param[in] rest_table_height The rest table height(unit is 1/72 inch).
 * @param[in] table_width       The table width(unit is 1/72 inch).
 *
 * @return The basic page information.(The <i>rotation</i> will not be unsupported currently).
 */
-(FSPageBasicInfo*)GetNewPageBasicInfo:(int)page_index rest_table_height:(float)rest_table_height table_width:(float)table_width;
@end

/**
 * This class represents a callback object for paragraph edit provider.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 */
@protocol FSParagraphEditingProviderCallback <NSObject>
@required
/**
 * @brief A callback function get the render matrix.
 *
 * @param[in] document  The valid pdf document.
 * @param[in] page_index  A valid editor page object.
 *
 * @return The matrix.
 */
-(FSMatrix2D*)getRenderMatrix:(FSPDFDoc*)document page_index:(int)page_index;

/**
 * @brief A callback function to get the page view window handle.
 *
 * @param[in] document  The valid pdf document.
 * @param[in] page_index  The page index.
 *
 * @return The page view window handle.
 */
-(void*) getPageViewHandle:(FSPDFDoc*)document page_index:(int)page_index;

/**
 * @brief A callback function get the client rectangle in device coordinate system.
 *
 * @param[in] document  The valid pdf document.
 * @return The client rectangle.
 */
-(FSRectF*)getClientRect:(FSPDFDoc*)document;

/**
 * @brief A callback function get the scale of page.
 *
 * @param[in] document  The valid pdf document.
 * @param[in] page_index  The page index.
 *
 * @return The scale value. The returned value should be greater than 0.
 */
-(float)getScale:(FSPDFDoc*)document page_index:(int)page_index;

/**
 * @brief A callback function to go to page view.
 *
 * @param[in] document  The valid pdf document.
 * @param[in] page_index   The page index.
 * @param[in] left         The left point where left mouse button is up in the page, in pdf coordination system.
 * @param[in] top          The top point where left mouse button is up in the page, in pdf coordination system.
 *
 * @return <b>true</b> means successful, while <b>false</b> means not.
 */
-(BOOL)gotoPageView:(FSPDFDoc*)document page_index:(int)page_index left:(float)left top:(float)top;

/**
 * @brief A callback function used to get visible page indexes.
 *
 * @param[in] document  The valid pdf document.
 * @return The visble page index array.
 */
-(NSArray<NSNumber *> *)getVisiblePageIndexArray:(FSPDFDoc*)document;

/**
 * @brief A callback function used to get visible page rectangle in device coordinate system.
 *
 * @param[in] document  The valid pdf document.
 * @param[in] page_index The page index.
 *
 * @return The page visble rectangle.
 */
-(FSRectF*)getPageVisibleRect:(FSPDFDoc*)document page_index:(int)page_index;

/**
 * @brief A callback function used to get page rectangle in device coordinate system.
 *
 * @param[in] document  The valid pdf document.
 * @param[in] page_index The page index.
 *
 * @return The page rectangle.
 */
-(FSRectF*)getPageRect:(FSPDFDoc*)document page_index:(int)page_index;

/**
 * @brief A callback function used to get current page index.
 *
 * @param[in] document  The valid pdf document.
 * @return The page index.
 */
-(int)getCurrentPageIndex:(FSPDFDoc*)document;

/**
 * @brief A callback function used to get the page view rotate.
 *
 * @param[in] document  The valid pdf document.
 * @param[in] page_index The page index.
 *
 * @return The indent value.
 */
-(FSRotation)getRotation:(FSPDFDoc*)document page_index:(int)page_index;

/**
 * @brief A callback function used to invalidate page rectangle.
 *
 * @param[in] document  The valid pdf document.
 * @param[in] page_index The page index.
 * @param[in] rects      The invalid areas. The rectangle in <i>invalid_rects</i> is in device coordination system.
 *
 * @return None.
 */
-(void)invalidateRect:(FSPDFDoc*)document page_index:(int)page_index invalid_rects:(FSRectFArray*)invalid_rects;

/**
 * @brief A callback function used to notify the page to add undo operation.
 *
 * @param[in] undo_item  The undo item object.
 *
 * @return None.
 */
-(void)addUndoItem:(FSParagraphEditingUndoItem*)undo_item;

/**
 * @brief A callback function used to notify the document have changed.
 *
 * @param[in] document  The valid pdf document.
 *
 * @return None.
 */
-(void)setDocChangeMark:(FSPDFDoc*)document;

/**
 * @brief A callback function used to notify text input reach limit.
 *
 * @param[in] document  The valid pdf document.
 *
 * @param[in] editor_page  The editor page.
 *
 * @return None.
 */
-(void)notifyTextInputReachLimit:(FSPDFDoc*)document page_index:(int)page_index;

@end

/**
 * This class represent a callback object used during the process to optimizie PDF document.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 */
@protocol FSImageCompressionCallback <NSObject>
@required
  /**
   * @brief A callback function used to release current callback object itself.
   *
   * @return None.
   */
 -(void)release;
  /**
   * @brief Get temporary file stream. The file stream is used for saving the encoding result of JPEG2000 and JBIG2 temporarily.
   *
   * @param[in] bitmap  A bitmap object need to be encoded.
   *
   * @return A @link common::file::StreamCallback @endlink object which is implemented by user. This callback would be used to save image data.
   *         Callback fucntion @link common::file::StreamCallback::Release @endlink of returned callback object will be called by Foxit PDF SDK,
   *         when Foxit PDF SDK does not need to use returned callback object anymore.
   */
 -(id<FSFileStreamCallback>)GetTemporaryFileStream:(FSBitmap*)bitmap;
 @end

/**
 * This class represents a callback object for applying redaction callback.
 * All the pure virtual functions in this class are used as callback functions and should be implemented by user.
 */
@protocol FSApplyRedactionCallback <NSObject>
@required
  /**
   * @brief A callback function used to release current callback object itself.
   *
   * @return None.
   */
 -(void)release;
  /**
   * @brief A callback function used to check whether to generate stream file or not.
   *
   * @return <b>true</b> means needs to generate stream file, while <b>false</b> not.
   */
 -(BOOL)needToGenerateStreamFile;
 @end

#ifdef __cplusplus
}
#endif

