@embedpdf/pdfium 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,200 @@
1
+ /// <reference types="emscripten" />
2
+ declare const functions: {
3
+ PDFiumExt_Init: readonly [readonly [], null];
4
+ PDFiumExt_OpenFileWriter: readonly [readonly [], "number"];
5
+ PDFiumExt_CloseFileWriter: readonly [readonly ["number"], null];
6
+ PDFiumExt_GetFileWriterSize: readonly [readonly ["number"], "number"];
7
+ PDFiumExt_GetFileWriterData: readonly [readonly ["number", "number", "number"], null];
8
+ PDFiumExt_OpenFormFillInfo: readonly [readonly [], "number"];
9
+ PDFiumExt_CloseFormFillInfo: readonly [readonly ["number"], null];
10
+ PDFiumExt_InitFormFillEnvironment: readonly [readonly ["number", "number"], "number"];
11
+ PDFiumExt_ExitFormFillEnvironment: readonly [readonly ["number"], null];
12
+ PDFiumExt_SaveAsCopy: readonly [readonly ["number", "number"], null];
13
+ FPDF_LoadCustomDocument: readonly [readonly ["number", "number"], "number"];
14
+ FPDF_LoadMemDocument: readonly [readonly ["number", "number", "number"], "number"];
15
+ FPDF_GetPageSizeByIndexF: readonly [readonly ["number", "number", "number"], "number"];
16
+ FPDF_GetLastError: readonly [readonly [], "number"];
17
+ FPDF_GetPageCount: readonly [readonly ["number"], "number"];
18
+ FPDF_GetPageWidthF: readonly [readonly ["number"], "number"];
19
+ FPDF_GetPageHeightF: readonly [readonly ["number"], "number"];
20
+ FPDF_CloseDocument: readonly [readonly ["number"], null];
21
+ FPDF_GetDocPermissions: readonly [readonly ["number"], "number"];
22
+ FPDF_GetDocUserPermissions: readonly [readonly ["number"], "number"];
23
+ FPDF_DestroyLibrary: readonly [readonly [], null];
24
+ FPDF_GetMetaText: readonly [readonly ["number", "string", "number", "number"], "number"];
25
+ FPDFBitmap_FillRect: readonly [readonly ["number", "number", "number", "number", "number", "number"], null];
26
+ FPDFBitmap_Create: readonly [readonly ["number", "number", "number"], "number"];
27
+ FPDFBitmap_CreateEx: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
28
+ FPDFBitmap_GetBuffer: readonly [readonly ["number"], "number"];
29
+ FPDFBitmap_GetWidth: readonly [readonly ["number"], "number"];
30
+ FPDFBitmap_GetHeight: readonly [readonly ["number"], "number"];
31
+ FPDFBitmap_GetFormat: readonly [readonly ["number"], "number"];
32
+ FPDFBitmap_Destroy: readonly [readonly ["number"], null];
33
+ FPDFPageObj_Destroy: readonly [readonly ["number"], null];
34
+ FPDFPageObj_NewImageObj: readonly [readonly ["number"], "number"];
35
+ FPDFPageObj_GetMatrix: readonly [readonly ["number", "number"], "boolean"];
36
+ FPDFPageObj_SetMatrix: readonly [readonly ["number", "number"], "boolean"];
37
+ FPDFPageObj_GetBounds: readonly [readonly ["number", "number", "number", "number", "number"], "boolean"];
38
+ FPDFPageObj_Transform: readonly [readonly ["number", "number", "number", "number", "number", "number", "number"], null];
39
+ FPDFImageObj_SetBitmap: readonly [readonly ["number", "number", "number", "number"], "boolean"];
40
+ FPDFImageObj_GetBitmap: readonly [readonly ["number"], "number"];
41
+ FPDFPath_CountSegments: readonly [readonly ["number"], "number"];
42
+ FPDFPath_GetPathSegment: readonly [readonly ["number", "number"], "number"];
43
+ FPDFPathSegment_GetType: readonly [readonly ["number"], "number"];
44
+ FPDFPathSegment_GetPoint: readonly [readonly ["number", "number", "number"], "boolean"];
45
+ FPDFPathSegment_GetClose: readonly [readonly ["number"], "boolean"];
46
+ FPDFFormObj_CountObjects: readonly [readonly ["number"], "number"];
47
+ FPDFFormObj_GetObject: readonly [readonly ["number", "number"], "number"];
48
+ FPDFBookmark_GetFirstChild: readonly [readonly ["number", "number"], "number"];
49
+ FPDFBookmark_GetNextSibling: readonly [readonly ["number", "number"], "number"];
50
+ FPDFBookmark_Find: readonly [readonly ["number", "string"], "number"];
51
+ FPDFBookmark_GetTitle: readonly [readonly ["number", "number", "number"], "number"];
52
+ FPDFBookmark_GetAction: readonly [readonly ["number"], "number"];
53
+ FPDFBookmark_GetDest: readonly [readonly ["number", "number"], "number"];
54
+ FPDFAction_GetType: readonly [readonly ["number"], "number"];
55
+ FPDFAction_GetFilePath: readonly [readonly ["number", "number", "number"], "number"];
56
+ FPDFAction_GetDest: readonly [readonly ["number", "number"], "number"];
57
+ FPDFAction_GetURIPath: readonly [readonly ["number", "number", "number", "number"], "number"];
58
+ FPDFDest_GetDestPageIndex: readonly [readonly ["number", "number"], "number"];
59
+ FPDFDest_GetView: readonly [readonly ["number", "number", "number"], "number"];
60
+ FPDFDest_GetLocationInPage: readonly [readonly ["number", "number", "number", "number", "number", "number", "number"], "boolean"];
61
+ FPDF_LoadPage: readonly [readonly ["number", "number"], "number"];
62
+ FPDF_RenderPageBitmap: readonly [readonly ["number", "number", "number", "number", "number", "number", "number", "number"], null];
63
+ FPDF_PageToDevice: readonly [readonly ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"], null];
64
+ FPDF_DeviceToPage: readonly [readonly ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"], "boolean"];
65
+ FPDFPage_GetAnnotCount: readonly [readonly ["number"], "number"];
66
+ FPDFPage_GetAnnot: readonly [readonly ["number", "number"], "number"];
67
+ FPDFPage_CreateAnnot: readonly [readonly ["number", "number"], "number"];
68
+ FPDFPage_InsertObject: readonly [readonly ["number", "number"], "boolean"];
69
+ FPDFPage_RemoveAnnot: readonly [readonly ["number", "number"], "boolean"];
70
+ FPDFPage_GenerateContent: readonly [readonly ["number"], "boolean"];
71
+ FPDFPage_Flatten: readonly [readonly ["number", "number"], "number"];
72
+ FPDF_ClosePage: readonly [readonly ["number"], null];
73
+ FPDFAnnot_GetSubtype: readonly [readonly ["number"], "number"];
74
+ FPDFAnnot_GetAP: readonly [readonly ["number", "number", "number", "number"], "number"];
75
+ FPDFAnnot_GetObjectCount: readonly [readonly ["number"], "number"];
76
+ FPDFAnnot_GetObject: readonly [readonly ["number", "number"], "number"];
77
+ FPDFAnnot_AppendObject: readonly [readonly ["number", "number"], "boolean"];
78
+ FPDFAnnot_GetRect: readonly [readonly ["number", "number"], "boolean"];
79
+ FPDFAnnot_SetRect: readonly [readonly ["number", "number"], "boolean"];
80
+ FPDFAnnot_GetLink: readonly [readonly ["number"], "number"];
81
+ FPDFAnnot_GetFormFieldType: readonly [readonly ["number", "number"], "number"];
82
+ FPDFAnnot_GetFormFieldFlags: readonly [readonly ["number", "number"], "number"];
83
+ FPDFAnnot_GetFormFieldName: readonly [readonly ["number", "number", "number", "number"], "number"];
84
+ FPDFAnnot_GetFormFieldAlternateName: readonly [readonly ["number", "number", "number", "number"], "number"];
85
+ FPDFAnnot_GetFormFieldValue: readonly [readonly ["number", "number", "number", "number"], "number"];
86
+ FPDFAnnot_GetOptionCount: readonly [readonly ["number", "number"], "number"];
87
+ FPDFAnnot_GetOptionLabel: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
88
+ FPDFAnnot_IsOptionSelected: readonly [readonly ["number", "number", "number"], "boolean"];
89
+ FPDFAnnot_IsChecked: readonly [readonly ["number", "number"], "boolean"];
90
+ FPDFAnnot_GetStringValue: readonly [readonly ["number", "string", "number", "number"], "number"];
91
+ FPDFAnnot_GetColor: readonly [readonly ["number", "number", "number", "number", "number", "number"], "number"];
92
+ FPDFAnnot_GetLinkedAnnot: readonly [readonly ["number", "string"], "number"];
93
+ FPDFAnnot_GetInkListCount: readonly [readonly ["number"], "number"];
94
+ FPDFAnnot_GetInkListPath: readonly [readonly ["number", "number", "number", "number"], "number"];
95
+ FPDFAnnot_AddInkStroke: readonly [readonly ["number", "number", "number"], "number"];
96
+ FPDFAnnot_RemoveInkList: readonly [readonly ["number"], "boolean"];
97
+ FPDFAnnot_GetVertices: readonly [readonly ["number", "number", "number"], "number"];
98
+ FPDFAnnot_GetLine: readonly [readonly ["number", "number", "number"], "number"];
99
+ FPDFPageObj_GetType: readonly [readonly ["number"], "number"];
100
+ FPDFLink_GetDest: readonly [readonly ["number", "number"], "number"];
101
+ FPDFLink_GetAction: readonly [readonly ["number"], "number"];
102
+ FPDFText_LoadPage: readonly [readonly ["number"], "number"];
103
+ FPDFText_CountChars: readonly [readonly ["number"], "number"];
104
+ FPDFText_CountRects: readonly [readonly ["number", "number", "number"], "number"];
105
+ FPDFText_GetRect: readonly [readonly ["number", "number", "number", "number", "number", "number"], "boolean"];
106
+ FPDFText_GetCharIndexAtPos: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
107
+ FPDFText_GetFontSize: readonly [readonly ["number", "number"], "number"];
108
+ FPDFText_GetFontInfo: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
109
+ FPDFText_GetBoundedText: readonly [readonly ["number", "number", "number", "number", "number", "number", "number"], "number"];
110
+ FPDFText_FindStart: readonly [readonly ["number", "number", "number", "number"], "number"];
111
+ FPDFText_FindNext: readonly [readonly ["number"], "boolean"];
112
+ FPDFText_FindPrev: readonly [readonly ["number"], "boolean"];
113
+ FPDFText_GetSchResultIndex: readonly [readonly ["number"], "number"];
114
+ FPDFText_GetSchCount: readonly [readonly ["number"], "number"];
115
+ FPDFText_FindClose: readonly [readonly ["number"], null];
116
+ FPDFText_ClosePage: readonly [readonly ["number"], null];
117
+ FPDFText_GetText: readonly [readonly ["number", "number", "number", "number"], "number"];
118
+ FPDFText_GetCharBox: readonly [readonly ["number", "number", "number", "number", "number", "number"], "boolean"];
119
+ FPDFPage_CloseAnnot: readonly [readonly ["number"], null];
120
+ FPDFDoc_GetAttachmentCount: readonly [readonly ["number"], "number"];
121
+ FPDFDoc_GetAttachment: readonly [readonly ["number", "number"], "number"];
122
+ FPDFAttachment_GetName: readonly [readonly ["number", "number", "number"], "number"];
123
+ FPDFAttachment_GetStringValue: readonly [readonly ["number", "string", "number", "number"], "number"];
124
+ FPDFAttachment_GetFile: readonly [readonly ["number", "number", "number", "number"], "boolean"];
125
+ FORM_OnAfterLoadPage: readonly [readonly ["number", "number"], null];
126
+ FORM_OnBeforeClosePage: readonly [readonly ["number", "number"], null];
127
+ FPDFAnnot_SetFocusableSubtypes: readonly [readonly ["number", "number", "number"], "boolean"];
128
+ FPDFAnnot_GetFocusableSubtypesCount: readonly [readonly ["number"], "number"];
129
+ FPDFAnnot_GetFocusableSubtypes: readonly [readonly ["number", "number", "number"], "boolean"];
130
+ FORM_SetFocusedAnnot: readonly [readonly ["number", "number"], "boolean"];
131
+ FORM_SetIndexSelected: readonly [readonly ["number", "number", "number", "boolean"], "boolean"];
132
+ FORM_OnKeyDown: readonly [readonly ["number", "number", "number", "number"], "boolean"];
133
+ FORM_OnKeyUp: readonly [readonly ["number", "number", "number", "number"], "boolean"];
134
+ FORM_OnChar: readonly [readonly ["number", "number", "number", "number"], "boolean"];
135
+ FORM_SelectAllText: readonly [readonly ["number", "number"], "boolean"];
136
+ FORM_ReplaceSelection: readonly [readonly ["number", "number", "number"], null];
137
+ FORM_ForceToKillFocus: readonly [readonly ["number"], "boolean"];
138
+ FPDF_GetSignatureCount: readonly [readonly ["number"], "number"];
139
+ FPDF_GetSignatureObject: readonly [readonly ["number", "number"], "number"];
140
+ FPDFSignatureObj_GetContents: readonly [readonly ["number", "number", "number"], "number"];
141
+ FPDFSignatureObj_GetByteRange: readonly [readonly ["number", "number", "number"], "number"];
142
+ FPDFSignatureObj_GetSubFilter: readonly [readonly ["number", "number", "number"], "number"];
143
+ FPDFSignatureObj_GetReason: readonly [readonly ["number", "number", "number"], "number"];
144
+ FPDFSignatureObj_GetTime: readonly [readonly ["number", "number", "number"], "number"];
145
+ FPDFSignatureObj_GetDocMDPPermission: readonly [readonly ["number"], "number"];
146
+ FPDF_CreateNewDocument: readonly [readonly [], "number"];
147
+ FPDF_ImportPagesByIndex: readonly [readonly ["number", "number", "number", "number", "number"], "boolean"];
148
+ FPDF_ImportPages: readonly [readonly ["number", "number", "number", "number"], "boolean"];
149
+ };
150
+
151
+ interface PdfiumModule extends EmscriptenModule {}
152
+
153
+ interface WasmExports {
154
+ malloc: (size: number) => number;
155
+ free: (ptr: number) => void;
156
+ }
157
+ interface PdfiumRuntimeMethods {
158
+ wasmExports: WasmExports;
159
+ cwrap: typeof cwrap;
160
+ addFunction: typeof addFunction;
161
+ removeFunction: typeof removeFunction;
162
+ ccall: typeof ccall;
163
+ setValue: typeof setValue;
164
+ getValue: typeof getValue;
165
+ UTF8ToString: typeof UTF8ToString;
166
+ UTF16ToString: typeof UTF16ToString;
167
+ stringToUTF8: typeof stringToUTF8;
168
+ stringToUTF16: typeof stringToUTF16;
169
+ }
170
+
171
+ /**
172
+ * Name of JavaScript type
173
+ */
174
+ type Type = null | 'number' | 'string' | 'boolean' | null;
175
+ /**
176
+ * Type of wrapped function
177
+ */
178
+ type CWrappedFunc<I extends readonly Type[], R extends Type> = (...args: NamesToType<I>) => NameToType<R>;
179
+ /**
180
+ * Convert name to type
181
+ */
182
+ type NameToType<R extends Type> = R extends 'number' ? number : R extends 'string' ? string : R extends 'boolean' ? boolean : R extends null ? null : never;
183
+ /**
184
+ * Convert array of names to JavaScript types
185
+ */
186
+ type NamesToType<T extends readonly Type[]> = T extends [] ? [] : T extends readonly [infer U extends Type] ? [NameToType<U>] : T extends readonly [
187
+ infer U extends Type,
188
+ ...infer Rest extends readonly Type[]
189
+ ] ? [NameToType<U>, ...NamesToType<Rest>] : [];
190
+ type Functions = typeof functions;
191
+ type Wrapped<T extends Record<string, readonly [readonly Type[], Type]>> = {
192
+ [P in keyof T]: CWrappedFunc<T[P][0], T[P][1]>;
193
+ };
194
+ type Methods = Wrapped<Functions>;
195
+ type WrappedPdfiumModule = {
196
+ pdfium: PdfiumModule & PdfiumRuntimeMethods;
197
+ } & Methods;
198
+ declare function init(moduleOverrides: Partial<PdfiumModule>): Promise<WrappedPdfiumModule>;
199
+
200
+ export { type CWrappedFunc, type Functions, type Methods, type NameToType, type NamesToType, type PdfiumModule, type PdfiumRuntimeMethods, type Type, type Wrapped, type WrappedPdfiumModule, init };
@@ -0,0 +1,200 @@
1
+ /// <reference types="emscripten" />
2
+ declare const functions: {
3
+ PDFiumExt_Init: readonly [readonly [], null];
4
+ PDFiumExt_OpenFileWriter: readonly [readonly [], "number"];
5
+ PDFiumExt_CloseFileWriter: readonly [readonly ["number"], null];
6
+ PDFiumExt_GetFileWriterSize: readonly [readonly ["number"], "number"];
7
+ PDFiumExt_GetFileWriterData: readonly [readonly ["number", "number", "number"], null];
8
+ PDFiumExt_OpenFormFillInfo: readonly [readonly [], "number"];
9
+ PDFiumExt_CloseFormFillInfo: readonly [readonly ["number"], null];
10
+ PDFiumExt_InitFormFillEnvironment: readonly [readonly ["number", "number"], "number"];
11
+ PDFiumExt_ExitFormFillEnvironment: readonly [readonly ["number"], null];
12
+ PDFiumExt_SaveAsCopy: readonly [readonly ["number", "number"], null];
13
+ FPDF_LoadCustomDocument: readonly [readonly ["number", "number"], "number"];
14
+ FPDF_LoadMemDocument: readonly [readonly ["number", "number", "number"], "number"];
15
+ FPDF_GetPageSizeByIndexF: readonly [readonly ["number", "number", "number"], "number"];
16
+ FPDF_GetLastError: readonly [readonly [], "number"];
17
+ FPDF_GetPageCount: readonly [readonly ["number"], "number"];
18
+ FPDF_GetPageWidthF: readonly [readonly ["number"], "number"];
19
+ FPDF_GetPageHeightF: readonly [readonly ["number"], "number"];
20
+ FPDF_CloseDocument: readonly [readonly ["number"], null];
21
+ FPDF_GetDocPermissions: readonly [readonly ["number"], "number"];
22
+ FPDF_GetDocUserPermissions: readonly [readonly ["number"], "number"];
23
+ FPDF_DestroyLibrary: readonly [readonly [], null];
24
+ FPDF_GetMetaText: readonly [readonly ["number", "string", "number", "number"], "number"];
25
+ FPDFBitmap_FillRect: readonly [readonly ["number", "number", "number", "number", "number", "number"], null];
26
+ FPDFBitmap_Create: readonly [readonly ["number", "number", "number"], "number"];
27
+ FPDFBitmap_CreateEx: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
28
+ FPDFBitmap_GetBuffer: readonly [readonly ["number"], "number"];
29
+ FPDFBitmap_GetWidth: readonly [readonly ["number"], "number"];
30
+ FPDFBitmap_GetHeight: readonly [readonly ["number"], "number"];
31
+ FPDFBitmap_GetFormat: readonly [readonly ["number"], "number"];
32
+ FPDFBitmap_Destroy: readonly [readonly ["number"], null];
33
+ FPDFPageObj_Destroy: readonly [readonly ["number"], null];
34
+ FPDFPageObj_NewImageObj: readonly [readonly ["number"], "number"];
35
+ FPDFPageObj_GetMatrix: readonly [readonly ["number", "number"], "boolean"];
36
+ FPDFPageObj_SetMatrix: readonly [readonly ["number", "number"], "boolean"];
37
+ FPDFPageObj_GetBounds: readonly [readonly ["number", "number", "number", "number", "number"], "boolean"];
38
+ FPDFPageObj_Transform: readonly [readonly ["number", "number", "number", "number", "number", "number", "number"], null];
39
+ FPDFImageObj_SetBitmap: readonly [readonly ["number", "number", "number", "number"], "boolean"];
40
+ FPDFImageObj_GetBitmap: readonly [readonly ["number"], "number"];
41
+ FPDFPath_CountSegments: readonly [readonly ["number"], "number"];
42
+ FPDFPath_GetPathSegment: readonly [readonly ["number", "number"], "number"];
43
+ FPDFPathSegment_GetType: readonly [readonly ["number"], "number"];
44
+ FPDFPathSegment_GetPoint: readonly [readonly ["number", "number", "number"], "boolean"];
45
+ FPDFPathSegment_GetClose: readonly [readonly ["number"], "boolean"];
46
+ FPDFFormObj_CountObjects: readonly [readonly ["number"], "number"];
47
+ FPDFFormObj_GetObject: readonly [readonly ["number", "number"], "number"];
48
+ FPDFBookmark_GetFirstChild: readonly [readonly ["number", "number"], "number"];
49
+ FPDFBookmark_GetNextSibling: readonly [readonly ["number", "number"], "number"];
50
+ FPDFBookmark_Find: readonly [readonly ["number", "string"], "number"];
51
+ FPDFBookmark_GetTitle: readonly [readonly ["number", "number", "number"], "number"];
52
+ FPDFBookmark_GetAction: readonly [readonly ["number"], "number"];
53
+ FPDFBookmark_GetDest: readonly [readonly ["number", "number"], "number"];
54
+ FPDFAction_GetType: readonly [readonly ["number"], "number"];
55
+ FPDFAction_GetFilePath: readonly [readonly ["number", "number", "number"], "number"];
56
+ FPDFAction_GetDest: readonly [readonly ["number", "number"], "number"];
57
+ FPDFAction_GetURIPath: readonly [readonly ["number", "number", "number", "number"], "number"];
58
+ FPDFDest_GetDestPageIndex: readonly [readonly ["number", "number"], "number"];
59
+ FPDFDest_GetView: readonly [readonly ["number", "number", "number"], "number"];
60
+ FPDFDest_GetLocationInPage: readonly [readonly ["number", "number", "number", "number", "number", "number", "number"], "boolean"];
61
+ FPDF_LoadPage: readonly [readonly ["number", "number"], "number"];
62
+ FPDF_RenderPageBitmap: readonly [readonly ["number", "number", "number", "number", "number", "number", "number", "number"], null];
63
+ FPDF_PageToDevice: readonly [readonly ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"], null];
64
+ FPDF_DeviceToPage: readonly [readonly ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"], "boolean"];
65
+ FPDFPage_GetAnnotCount: readonly [readonly ["number"], "number"];
66
+ FPDFPage_GetAnnot: readonly [readonly ["number", "number"], "number"];
67
+ FPDFPage_CreateAnnot: readonly [readonly ["number", "number"], "number"];
68
+ FPDFPage_InsertObject: readonly [readonly ["number", "number"], "boolean"];
69
+ FPDFPage_RemoveAnnot: readonly [readonly ["number", "number"], "boolean"];
70
+ FPDFPage_GenerateContent: readonly [readonly ["number"], "boolean"];
71
+ FPDFPage_Flatten: readonly [readonly ["number", "number"], "number"];
72
+ FPDF_ClosePage: readonly [readonly ["number"], null];
73
+ FPDFAnnot_GetSubtype: readonly [readonly ["number"], "number"];
74
+ FPDFAnnot_GetAP: readonly [readonly ["number", "number", "number", "number"], "number"];
75
+ FPDFAnnot_GetObjectCount: readonly [readonly ["number"], "number"];
76
+ FPDFAnnot_GetObject: readonly [readonly ["number", "number"], "number"];
77
+ FPDFAnnot_AppendObject: readonly [readonly ["number", "number"], "boolean"];
78
+ FPDFAnnot_GetRect: readonly [readonly ["number", "number"], "boolean"];
79
+ FPDFAnnot_SetRect: readonly [readonly ["number", "number"], "boolean"];
80
+ FPDFAnnot_GetLink: readonly [readonly ["number"], "number"];
81
+ FPDFAnnot_GetFormFieldType: readonly [readonly ["number", "number"], "number"];
82
+ FPDFAnnot_GetFormFieldFlags: readonly [readonly ["number", "number"], "number"];
83
+ FPDFAnnot_GetFormFieldName: readonly [readonly ["number", "number", "number", "number"], "number"];
84
+ FPDFAnnot_GetFormFieldAlternateName: readonly [readonly ["number", "number", "number", "number"], "number"];
85
+ FPDFAnnot_GetFormFieldValue: readonly [readonly ["number", "number", "number", "number"], "number"];
86
+ FPDFAnnot_GetOptionCount: readonly [readonly ["number", "number"], "number"];
87
+ FPDFAnnot_GetOptionLabel: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
88
+ FPDFAnnot_IsOptionSelected: readonly [readonly ["number", "number", "number"], "boolean"];
89
+ FPDFAnnot_IsChecked: readonly [readonly ["number", "number"], "boolean"];
90
+ FPDFAnnot_GetStringValue: readonly [readonly ["number", "string", "number", "number"], "number"];
91
+ FPDFAnnot_GetColor: readonly [readonly ["number", "number", "number", "number", "number", "number"], "number"];
92
+ FPDFAnnot_GetLinkedAnnot: readonly [readonly ["number", "string"], "number"];
93
+ FPDFAnnot_GetInkListCount: readonly [readonly ["number"], "number"];
94
+ FPDFAnnot_GetInkListPath: readonly [readonly ["number", "number", "number", "number"], "number"];
95
+ FPDFAnnot_AddInkStroke: readonly [readonly ["number", "number", "number"], "number"];
96
+ FPDFAnnot_RemoveInkList: readonly [readonly ["number"], "boolean"];
97
+ FPDFAnnot_GetVertices: readonly [readonly ["number", "number", "number"], "number"];
98
+ FPDFAnnot_GetLine: readonly [readonly ["number", "number", "number"], "number"];
99
+ FPDFPageObj_GetType: readonly [readonly ["number"], "number"];
100
+ FPDFLink_GetDest: readonly [readonly ["number", "number"], "number"];
101
+ FPDFLink_GetAction: readonly [readonly ["number"], "number"];
102
+ FPDFText_LoadPage: readonly [readonly ["number"], "number"];
103
+ FPDFText_CountChars: readonly [readonly ["number"], "number"];
104
+ FPDFText_CountRects: readonly [readonly ["number", "number", "number"], "number"];
105
+ FPDFText_GetRect: readonly [readonly ["number", "number", "number", "number", "number", "number"], "boolean"];
106
+ FPDFText_GetCharIndexAtPos: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
107
+ FPDFText_GetFontSize: readonly [readonly ["number", "number"], "number"];
108
+ FPDFText_GetFontInfo: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
109
+ FPDFText_GetBoundedText: readonly [readonly ["number", "number", "number", "number", "number", "number", "number"], "number"];
110
+ FPDFText_FindStart: readonly [readonly ["number", "number", "number", "number"], "number"];
111
+ FPDFText_FindNext: readonly [readonly ["number"], "boolean"];
112
+ FPDFText_FindPrev: readonly [readonly ["number"], "boolean"];
113
+ FPDFText_GetSchResultIndex: readonly [readonly ["number"], "number"];
114
+ FPDFText_GetSchCount: readonly [readonly ["number"], "number"];
115
+ FPDFText_FindClose: readonly [readonly ["number"], null];
116
+ FPDFText_ClosePage: readonly [readonly ["number"], null];
117
+ FPDFText_GetText: readonly [readonly ["number", "number", "number", "number"], "number"];
118
+ FPDFText_GetCharBox: readonly [readonly ["number", "number", "number", "number", "number", "number"], "boolean"];
119
+ FPDFPage_CloseAnnot: readonly [readonly ["number"], null];
120
+ FPDFDoc_GetAttachmentCount: readonly [readonly ["number"], "number"];
121
+ FPDFDoc_GetAttachment: readonly [readonly ["number", "number"], "number"];
122
+ FPDFAttachment_GetName: readonly [readonly ["number", "number", "number"], "number"];
123
+ FPDFAttachment_GetStringValue: readonly [readonly ["number", "string", "number", "number"], "number"];
124
+ FPDFAttachment_GetFile: readonly [readonly ["number", "number", "number", "number"], "boolean"];
125
+ FORM_OnAfterLoadPage: readonly [readonly ["number", "number"], null];
126
+ FORM_OnBeforeClosePage: readonly [readonly ["number", "number"], null];
127
+ FPDFAnnot_SetFocusableSubtypes: readonly [readonly ["number", "number", "number"], "boolean"];
128
+ FPDFAnnot_GetFocusableSubtypesCount: readonly [readonly ["number"], "number"];
129
+ FPDFAnnot_GetFocusableSubtypes: readonly [readonly ["number", "number", "number"], "boolean"];
130
+ FORM_SetFocusedAnnot: readonly [readonly ["number", "number"], "boolean"];
131
+ FORM_SetIndexSelected: readonly [readonly ["number", "number", "number", "boolean"], "boolean"];
132
+ FORM_OnKeyDown: readonly [readonly ["number", "number", "number", "number"], "boolean"];
133
+ FORM_OnKeyUp: readonly [readonly ["number", "number", "number", "number"], "boolean"];
134
+ FORM_OnChar: readonly [readonly ["number", "number", "number", "number"], "boolean"];
135
+ FORM_SelectAllText: readonly [readonly ["number", "number"], "boolean"];
136
+ FORM_ReplaceSelection: readonly [readonly ["number", "number", "number"], null];
137
+ FORM_ForceToKillFocus: readonly [readonly ["number"], "boolean"];
138
+ FPDF_GetSignatureCount: readonly [readonly ["number"], "number"];
139
+ FPDF_GetSignatureObject: readonly [readonly ["number", "number"], "number"];
140
+ FPDFSignatureObj_GetContents: readonly [readonly ["number", "number", "number"], "number"];
141
+ FPDFSignatureObj_GetByteRange: readonly [readonly ["number", "number", "number"], "number"];
142
+ FPDFSignatureObj_GetSubFilter: readonly [readonly ["number", "number", "number"], "number"];
143
+ FPDFSignatureObj_GetReason: readonly [readonly ["number", "number", "number"], "number"];
144
+ FPDFSignatureObj_GetTime: readonly [readonly ["number", "number", "number"], "number"];
145
+ FPDFSignatureObj_GetDocMDPPermission: readonly [readonly ["number"], "number"];
146
+ FPDF_CreateNewDocument: readonly [readonly [], "number"];
147
+ FPDF_ImportPagesByIndex: readonly [readonly ["number", "number", "number", "number", "number"], "boolean"];
148
+ FPDF_ImportPages: readonly [readonly ["number", "number", "number", "number"], "boolean"];
149
+ };
150
+
151
+ interface PdfiumModule extends EmscriptenModule {}
152
+
153
+ interface WasmExports {
154
+ malloc: (size: number) => number;
155
+ free: (ptr: number) => void;
156
+ }
157
+ interface PdfiumRuntimeMethods {
158
+ wasmExports: WasmExports;
159
+ cwrap: typeof cwrap;
160
+ addFunction: typeof addFunction;
161
+ removeFunction: typeof removeFunction;
162
+ ccall: typeof ccall;
163
+ setValue: typeof setValue;
164
+ getValue: typeof getValue;
165
+ UTF8ToString: typeof UTF8ToString;
166
+ UTF16ToString: typeof UTF16ToString;
167
+ stringToUTF8: typeof stringToUTF8;
168
+ stringToUTF16: typeof stringToUTF16;
169
+ }
170
+
171
+ /**
172
+ * Name of JavaScript type
173
+ */
174
+ type Type = null | 'number' | 'string' | 'boolean' | null;
175
+ /**
176
+ * Type of wrapped function
177
+ */
178
+ type CWrappedFunc<I extends readonly Type[], R extends Type> = (...args: NamesToType<I>) => NameToType<R>;
179
+ /**
180
+ * Convert name to type
181
+ */
182
+ type NameToType<R extends Type> = R extends 'number' ? number : R extends 'string' ? string : R extends 'boolean' ? boolean : R extends null ? null : never;
183
+ /**
184
+ * Convert array of names to JavaScript types
185
+ */
186
+ type NamesToType<T extends readonly Type[]> = T extends [] ? [] : T extends readonly [infer U extends Type] ? [NameToType<U>] : T extends readonly [
187
+ infer U extends Type,
188
+ ...infer Rest extends readonly Type[]
189
+ ] ? [NameToType<U>, ...NamesToType<Rest>] : [];
190
+ type Functions = typeof functions;
191
+ type Wrapped<T extends Record<string, readonly [readonly Type[], Type]>> = {
192
+ [P in keyof T]: CWrappedFunc<T[P][0], T[P][1]>;
193
+ };
194
+ type Methods = Wrapped<Functions>;
195
+ type WrappedPdfiumModule = {
196
+ pdfium: PdfiumModule & PdfiumRuntimeMethods;
197
+ } & Methods;
198
+ declare function init(moduleOverrides: Partial<PdfiumModule>): Promise<WrappedPdfiumModule>;
199
+
200
+ export { type CWrappedFunc, type Functions, type Methods, type NameToType, type NamesToType, type PdfiumModule, type PdfiumRuntimeMethods, type Type, type Wrapped, type WrappedPdfiumModule, init };