#ifndef _FS_TAGGEDPDF_C_H_
#define _FS_TAGGEDPDF_C_H_

#ifdef __cplusplus
extern "C" {
#endif



typedef enum _FSReportCategory {
e_FSReportCategoryRegion = 0,
e_FSReportCategoryArtifact = 1,
e_FSReportCategoryParagraph = 2,
e_FSReportCategoryListItem = 3,
e_FSReportCategoryFigure = 4,
e_FSReportCategoryTable = 5,
e_FSReportCategoryTableRow = 6,
e_FSReportCategoryTableHeader = 7,
e_FSReportCategoryTocItem = 8,
}FSReportCategory;



typedef enum _FSReportConfidence {
e_FSReportConfidenceHigh = 0,
e_FSReportConfidenceMediumHigh = 1,
e_FSReportConfidenceMedium = 2,
e_FSReportConfidenceMediumLow = 3,
e_FSReportConfidenceLow = 4,
}FSReportConfidence;


typedef struct _FSTaggedPDFCallback {
  void* user_data;
  void (*Release)(void* user_data);
  void (*Report)(void* user_data, FSReportCategory category, FSReportConfidence confidence, int page_index, const FSRectF rect);
  
}FSTaggedPDFCallback;

FSErrorCode FSDK_TaggedPDF_Create(const FS_PDFDOC_HANDLE doc, FS_TAGGEDPDF_HANDLE* taggedpdf_return_value);
FSErrorCode FSDK_TaggedPDF_Release(FS_TAGGEDPDF_HANDLE taggedpdf_handle);
FSErrorCode FSDK_TaggedPDF_IsEmpty(FS_TAGGEDPDF_HANDLE taggedpdf_handle, FS_BOOL* return_value);
FSErrorCode FSDK_TaggedPDF_SetCallback(FS_TAGGEDPDF_HANDLE taggedpdf_handle, FSTaggedPDFCallback* callback);
FSErrorCode FSDK_TaggedPDF_StartTagDocument(FS_TAGGEDPDF_HANDLE taggedpdf_handle,  FSPauseCallback* pause, FS_PROGRESSIVE_HANDLE* return_value);
FSErrorCode FSDK_TaggedPDF_GetFigureCount(FS_TAGGEDPDF_HANDLE taggedpdf_handle, int* return_value);
FSErrorCode FSDK_TaggedPDF_SetAsDecorativeFigure(FS_TAGGEDPDF_HANDLE taggedpdf_handle, int figure_index, FS_BOOL* return_value);
FSErrorCode FSDK_TaggedPDF_SetFigureAlternateText(FS_TAGGEDPDF_HANDLE taggedpdf_handle, int figure_index, const wchar_t*  alternate_text);
FSErrorCode FSDK_TaggedPDF_GetFigureAlternateText(FS_TAGGEDPDF_HANDLE taggedpdf_handle, int figure_index, FS_WSTR* return_value);
FSErrorCode FSDK_TaggedPDF_GetFigureRect(FS_TAGGEDPDF_HANDLE taggedpdf_handle, int figure_index, FSRectF* return_value);
FSErrorCode FSDK_TaggedPDF_GetFigurePageIndex(FS_TAGGEDPDF_HANDLE taggedpdf_handle, int figure_index, int* return_value);
#ifdef __cplusplus
}
#endif
#endif
