@docmentis/udoc-viewer 0.5.3 → 0.5.6

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.
Files changed (211) hide show
  1. package/dist/package.json +57 -0
  2. package/dist/src/UDocClient.d.ts +383 -0
  3. package/dist/src/UDocClient.d.ts.map +1 -0
  4. package/dist/src/UDocClient.js +441 -0
  5. package/dist/src/UDocClient.js.map +1 -0
  6. package/dist/src/UDocViewer.d.ts +275 -0
  7. package/dist/src/UDocViewer.d.ts.map +1 -0
  8. package/dist/src/UDocViewer.js +796 -0
  9. package/dist/src/UDocViewer.js.map +1 -0
  10. package/dist/src/fonts.d.ts +29 -0
  11. package/dist/src/fonts.d.ts.map +1 -0
  12. package/dist/src/fonts.js +30 -0
  13. package/dist/src/fonts.js.map +1 -0
  14. package/dist/src/index.d.ts +9 -0
  15. package/dist/src/index.d.ts.map +1 -0
  16. package/dist/src/index.js +8 -0
  17. package/dist/src/index.js.map +1 -0
  18. package/dist/src/performance/PerformanceCounter.d.ts +132 -0
  19. package/dist/src/performance/PerformanceCounter.d.ts.map +1 -0
  20. package/dist/src/performance/PerformanceCounter.js +129 -0
  21. package/dist/src/performance/PerformanceCounter.js.map +1 -0
  22. package/dist/src/performance/index.d.ts +2 -0
  23. package/dist/src/performance/index.d.ts.map +1 -0
  24. package/dist/src/performance/index.js +2 -0
  25. package/dist/src/performance/index.js.map +1 -0
  26. package/dist/src/ui/framework/component.d.ts +68 -0
  27. package/dist/src/ui/framework/component.d.ts.map +1 -0
  28. package/dist/src/ui/framework/component.js +97 -0
  29. package/dist/src/ui/framework/component.js.map +1 -0
  30. package/dist/src/ui/framework/dom.d.ts +19 -0
  31. package/dist/src/ui/framework/dom.d.ts.map +1 -0
  32. package/dist/src/ui/framework/dom.js +29 -0
  33. package/dist/src/ui/framework/dom.js.map +1 -0
  34. package/dist/src/ui/framework/events.d.ts +18 -0
  35. package/dist/src/ui/framework/events.d.ts.map +1 -0
  36. package/dist/src/ui/framework/events.js +23 -0
  37. package/dist/src/ui/framework/events.js.map +1 -0
  38. package/dist/src/ui/framework/index.d.ts +15 -0
  39. package/dist/src/ui/framework/index.d.ts.map +1 -0
  40. package/dist/src/ui/framework/index.js +15 -0
  41. package/dist/src/ui/framework/index.js.map +1 -0
  42. package/dist/src/ui/framework/selectors.d.ts +51 -0
  43. package/dist/src/ui/framework/selectors.d.ts.map +1 -0
  44. package/dist/src/ui/framework/selectors.js +30 -0
  45. package/dist/src/ui/framework/selectors.js.map +1 -0
  46. package/dist/src/ui/framework/store.d.ts +37 -0
  47. package/dist/src/ui/framework/store.d.ts.map +1 -0
  48. package/dist/src/ui/framework/store.js +66 -0
  49. package/dist/src/ui/framework/store.js.map +1 -0
  50. package/dist/src/ui/viewer/actions.d.ts +132 -0
  51. package/dist/src/ui/viewer/actions.d.ts.map +1 -0
  52. package/dist/src/ui/viewer/actions.js +2 -0
  53. package/dist/src/ui/viewer/actions.js.map +1 -0
  54. package/dist/src/ui/viewer/annotation/LinkRenderer.d.ts +9 -0
  55. package/dist/src/ui/viewer/annotation/LinkRenderer.d.ts.map +1 -0
  56. package/dist/src/ui/viewer/annotation/LinkRenderer.js +17 -0
  57. package/dist/src/ui/viewer/annotation/LinkRenderer.js.map +1 -0
  58. package/dist/src/ui/viewer/annotation/MarkupRenderer.d.ts +21 -0
  59. package/dist/src/ui/viewer/annotation/MarkupRenderer.d.ts.map +1 -0
  60. package/dist/src/ui/viewer/annotation/MarkupRenderer.js +138 -0
  61. package/dist/src/ui/viewer/annotation/MarkupRenderer.js.map +1 -0
  62. package/dist/src/ui/viewer/annotation/ShapeRenderer.d.ts +33 -0
  63. package/dist/src/ui/viewer/annotation/ShapeRenderer.d.ts.map +1 -0
  64. package/dist/src/ui/viewer/annotation/ShapeRenderer.js +378 -0
  65. package/dist/src/ui/viewer/annotation/ShapeRenderer.js.map +1 -0
  66. package/dist/src/ui/viewer/annotation/TextRenderer.d.ts +23 -0
  67. package/dist/src/ui/viewer/annotation/TextRenderer.d.ts.map +1 -0
  68. package/dist/src/ui/viewer/annotation/TextRenderer.js +196 -0
  69. package/dist/src/ui/viewer/annotation/TextRenderer.js.map +1 -0
  70. package/dist/src/ui/viewer/annotation/index.d.ts +8 -0
  71. package/dist/src/ui/viewer/annotation/index.d.ts.map +1 -0
  72. package/dist/src/ui/viewer/annotation/index.js +8 -0
  73. package/dist/src/ui/viewer/annotation/index.js.map +1 -0
  74. package/dist/src/ui/viewer/annotation/render.d.ts +24 -0
  75. package/dist/src/ui/viewer/annotation/render.d.ts.map +1 -0
  76. package/dist/src/ui/viewer/annotation/render.js +184 -0
  77. package/dist/src/ui/viewer/annotation/render.js.map +1 -0
  78. package/dist/src/ui/viewer/annotation/types.d.ts +239 -0
  79. package/dist/src/ui/viewer/annotation/types.d.ts.map +1 -0
  80. package/dist/src/ui/viewer/annotation/types.js +7 -0
  81. package/dist/src/ui/viewer/annotation/types.js.map +1 -0
  82. package/dist/src/ui/viewer/annotation/utils.d.ts +37 -0
  83. package/dist/src/ui/viewer/annotation/utils.d.ts.map +1 -0
  84. package/dist/src/ui/viewer/annotation/utils.js +82 -0
  85. package/dist/src/ui/viewer/annotation/utils.js.map +1 -0
  86. package/dist/src/ui/viewer/components/AnnotationPanel.d.ts +19 -0
  87. package/dist/src/ui/viewer/components/AnnotationPanel.d.ts.map +1 -0
  88. package/dist/src/ui/viewer/components/AnnotationPanel.js +284 -0
  89. package/dist/src/ui/viewer/components/AnnotationPanel.js.map +1 -0
  90. package/dist/src/ui/viewer/components/FloatingToolbar.d.ts +9 -0
  91. package/dist/src/ui/viewer/components/FloatingToolbar.d.ts.map +1 -0
  92. package/dist/src/ui/viewer/components/FloatingToolbar.js +305 -0
  93. package/dist/src/ui/viewer/components/FloatingToolbar.js.map +1 -0
  94. package/dist/src/ui/viewer/components/LeftPanel.d.ts +10 -0
  95. package/dist/src/ui/viewer/components/LeftPanel.d.ts.map +1 -0
  96. package/dist/src/ui/viewer/components/LeftPanel.js +165 -0
  97. package/dist/src/ui/viewer/components/LeftPanel.js.map +1 -0
  98. package/dist/src/ui/viewer/components/LoadingOverlay.d.ts +12 -0
  99. package/dist/src/ui/viewer/components/LoadingOverlay.d.ts.map +1 -0
  100. package/dist/src/ui/viewer/components/LoadingOverlay.js +88 -0
  101. package/dist/src/ui/viewer/components/LoadingOverlay.js.map +1 -0
  102. package/dist/src/ui/viewer/components/OutlinePanel.d.ts +10 -0
  103. package/dist/src/ui/viewer/components/OutlinePanel.d.ts.map +1 -0
  104. package/dist/src/ui/viewer/components/OutlinePanel.js +169 -0
  105. package/dist/src/ui/viewer/components/OutlinePanel.js.map +1 -0
  106. package/dist/src/ui/viewer/components/PasswordDialog.d.ts +15 -0
  107. package/dist/src/ui/viewer/components/PasswordDialog.d.ts.map +1 -0
  108. package/dist/src/ui/viewer/components/PasswordDialog.js +143 -0
  109. package/dist/src/ui/viewer/components/PasswordDialog.js.map +1 -0
  110. package/dist/src/ui/viewer/components/RightPanel.d.ts +9 -0
  111. package/dist/src/ui/viewer/components/RightPanel.d.ts.map +1 -0
  112. package/dist/src/ui/viewer/components/RightPanel.js +102 -0
  113. package/dist/src/ui/viewer/components/RightPanel.js.map +1 -0
  114. package/dist/src/ui/viewer/components/Spread.d.ts +43 -0
  115. package/dist/src/ui/viewer/components/Spread.d.ts.map +1 -0
  116. package/dist/src/ui/viewer/components/Spread.js +345 -0
  117. package/dist/src/ui/viewer/components/Spread.js.map +1 -0
  118. package/dist/src/ui/viewer/components/ThumbnailPanel.d.ts +11 -0
  119. package/dist/src/ui/viewer/components/ThumbnailPanel.d.ts.map +1 -0
  120. package/dist/src/ui/viewer/components/ThumbnailPanel.js +240 -0
  121. package/dist/src/ui/viewer/components/ThumbnailPanel.js.map +1 -0
  122. package/dist/src/ui/viewer/components/Toolbar.d.ts +9 -0
  123. package/dist/src/ui/viewer/components/Toolbar.d.ts.map +1 -0
  124. package/dist/src/ui/viewer/components/Toolbar.js +93 -0
  125. package/dist/src/ui/viewer/components/Toolbar.js.map +1 -0
  126. package/dist/src/ui/viewer/components/ViewModeMenu.d.ts +9 -0
  127. package/dist/src/ui/viewer/components/ViewModeMenu.d.ts.map +1 -0
  128. package/dist/src/ui/viewer/components/ViewModeMenu.js +178 -0
  129. package/dist/src/ui/viewer/components/ViewModeMenu.js.map +1 -0
  130. package/dist/src/ui/viewer/components/Viewport.d.ts +10 -0
  131. package/dist/src/ui/viewer/components/Viewport.d.ts.map +1 -0
  132. package/dist/src/ui/viewer/components/Viewport.js +1082 -0
  133. package/dist/src/ui/viewer/components/Viewport.js.map +1 -0
  134. package/dist/src/ui/viewer/effects.d.ts +8 -0
  135. package/dist/src/ui/viewer/effects.d.ts.map +1 -0
  136. package/dist/src/ui/viewer/effects.js +240 -0
  137. package/dist/src/ui/viewer/effects.js.map +1 -0
  138. package/dist/src/ui/viewer/icons.d.ts +32 -0
  139. package/dist/src/ui/viewer/icons.d.ts.map +1 -0
  140. package/dist/src/ui/viewer/icons.js +44 -0
  141. package/dist/src/ui/viewer/icons.js.map +1 -0
  142. package/dist/src/ui/viewer/index.d.ts +6 -0
  143. package/dist/src/ui/viewer/index.d.ts.map +1 -0
  144. package/dist/src/ui/viewer/index.js +6 -0
  145. package/dist/src/ui/viewer/index.js.map +1 -0
  146. package/dist/src/ui/viewer/layout/index.d.ts +3 -0
  147. package/dist/src/ui/viewer/layout/index.d.ts.map +1 -0
  148. package/dist/src/ui/viewer/layout/index.js +3 -0
  149. package/dist/src/ui/viewer/layout/index.js.map +1 -0
  150. package/dist/src/ui/viewer/layout/pixelAlign.d.ts +7 -0
  151. package/dist/src/ui/viewer/layout/pixelAlign.d.ts.map +1 -0
  152. package/dist/src/ui/viewer/layout/pixelAlign.js +22 -0
  153. package/dist/src/ui/viewer/layout/pixelAlign.js.map +1 -0
  154. package/dist/src/ui/viewer/layout/spreadLayout.d.ts +93 -0
  155. package/dist/src/ui/viewer/layout/spreadLayout.d.ts.map +1 -0
  156. package/dist/src/ui/viewer/layout/spreadLayout.js +315 -0
  157. package/dist/src/ui/viewer/layout/spreadLayout.js.map +1 -0
  158. package/dist/src/ui/viewer/navigation.d.ts +80 -0
  159. package/dist/src/ui/viewer/navigation.d.ts.map +1 -0
  160. package/dist/src/ui/viewer/navigation.js +59 -0
  161. package/dist/src/ui/viewer/navigation.js.map +1 -0
  162. package/dist/src/ui/viewer/reducer.d.ts +4 -0
  163. package/dist/src/ui/viewer/reducer.d.ts.map +1 -0
  164. package/dist/src/ui/viewer/reducer.js +317 -0
  165. package/dist/src/ui/viewer/reducer.js.map +1 -0
  166. package/dist/src/ui/viewer/shell.d.ts +34 -0
  167. package/dist/src/ui/viewer/shell.d.ts.map +1 -0
  168. package/dist/src/ui/viewer/shell.js +101 -0
  169. package/dist/src/ui/viewer/shell.js.map +1 -0
  170. package/dist/src/ui/viewer/state.d.ts +105 -0
  171. package/dist/src/ui/viewer/state.d.ts.map +1 -0
  172. package/dist/src/ui/viewer/state.js +65 -0
  173. package/dist/src/ui/viewer/state.js.map +1 -0
  174. package/dist/src/ui/viewer/styles-inline.d.ts +2 -0
  175. package/dist/src/ui/viewer/styles-inline.d.ts.map +1 -0
  176. package/dist/src/ui/viewer/styles-inline.js +1584 -0
  177. package/dist/src/ui/viewer/styles-inline.js.map +1 -0
  178. package/dist/src/ui/viewer/text/index.d.ts +7 -0
  179. package/dist/src/ui/viewer/text/index.d.ts.map +1 -0
  180. package/dist/src/ui/viewer/text/index.js +3 -0
  181. package/dist/src/ui/viewer/text/index.js.map +1 -0
  182. package/dist/src/ui/viewer/text/render.d.ts +19 -0
  183. package/dist/src/ui/viewer/text/render.d.ts.map +1 -0
  184. package/dist/src/ui/viewer/text/render.js +228 -0
  185. package/dist/src/ui/viewer/text/render.js.map +1 -0
  186. package/dist/src/ui/viewer/text/selection.d.ts +12 -0
  187. package/dist/src/ui/viewer/text/selection.d.ts.map +1 -0
  188. package/dist/src/ui/viewer/text/selection.js +70 -0
  189. package/dist/src/ui/viewer/text/selection.js.map +1 -0
  190. package/dist/src/ui/viewer/text/types.d.ts +37 -0
  191. package/dist/src/ui/viewer/text/types.d.ts.map +1 -0
  192. package/dist/src/ui/viewer/text/types.js +7 -0
  193. package/dist/src/ui/viewer/text/types.js.map +1 -0
  194. package/dist/src/wasm/LICENSE +104 -0
  195. package/dist/src/wasm/udoc.d.ts +480 -0
  196. package/dist/src/wasm/udoc.js +1738 -0
  197. package/dist/src/wasm/udoc_bg.wasm +0 -0
  198. package/dist/src/wasm/udoc_bg.wasm.d.ts +45 -0
  199. package/dist/src/worker/WorkerClient.d.ts +335 -0
  200. package/dist/src/worker/WorkerClient.d.ts.map +1 -0
  201. package/dist/src/worker/WorkerClient.js +906 -0
  202. package/dist/src/worker/WorkerClient.js.map +1 -0
  203. package/dist/src/worker/index.d.ts +4 -0
  204. package/dist/src/worker/index.d.ts.map +1 -0
  205. package/dist/src/worker/index.js +2 -0
  206. package/dist/src/worker/index.js.map +1 -0
  207. package/dist/src/worker/worker.d.ts +437 -0
  208. package/dist/src/worker/worker.d.ts.map +1 -0
  209. package/dist/src/worker/worker.js +237 -0
  210. package/dist/src/worker/worker.js.map +1 -0
  211. package/package.json +5 -4
@@ -0,0 +1,480 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ export class UDoc {
5
+ free(): void;
6
+ [Symbol.dispose](): void;
7
+ /**
8
+ * Load an image file and return its ID.
9
+ *
10
+ * Supports various image formats: JPEG, PNG, GIF, BMP, TIFF, WebP, etc.
11
+ * Multi-page TIFF files will create a document with multiple pages.
12
+ *
13
+ * # Arguments
14
+ * * `bytes` - Raw image file data
15
+ *
16
+ * # Returns
17
+ * A unique document ID that can be used to reference this document.
18
+ */
19
+ load_image(bytes: Uint8Array): string;
20
+ /**
21
+ * Get the page count of a document.
22
+ */
23
+ page_count(id: string): number;
24
+ /**
25
+ * Get the document outline (bookmarks/table of contents).
26
+ *
27
+ * Returns an array of outline items, where each item has:
28
+ * - `title`: Display text for the item
29
+ * - `destination`: Optional navigation destination with `pageIndex` and display parameters
30
+ * - `children`: Nested child items
31
+ *
32
+ * Returns an empty array if the document has no outline.
33
+ */
34
+ get_outline(id: string): any;
35
+ /**
36
+ * Check if a feature is enabled by the current license.
37
+ */
38
+ has_feature(feature: string): boolean;
39
+ /**
40
+ * Get the preferred page layout for two-page viewing modes.
41
+ *
42
+ * Returns one of:
43
+ * - `"default"` - Viewer decides based on document type
44
+ * - `"odd-pages-right"` - Odd pages on right (page 1 alone, then 2|3, 4|5...)
45
+ * - `"odd-pages-left"` - Odd pages on left (1|2, 3|4, 5|6...)
46
+ */
47
+ page_layout(id: string): string;
48
+ /**
49
+ * Compose new PDF documents by cherry-picking pages from source documents.
50
+ *
51
+ * The original documents remain unchanged.
52
+ *
53
+ * # Arguments
54
+ * * `compositions` - Array of compositions. Each composition is an array of picks.
55
+ * Each pick is `{ doc: docIndex, pages: "0-2,4" }` where `docIndex` is the index
56
+ * in the `doc_ids` array and `pages` is a page range string (0-based).
57
+ * * `doc_ids` - Array of document IDs to use as sources (order matters for doc indices)
58
+ *
59
+ * # Example
60
+ * ```js
61
+ * // Create two documents: first has pages 0-2 from doc A, second has page 0 from A and 1 from B
62
+ * const newDocIds = udoc.pdf_compose(
63
+ * [
64
+ * [{ doc: 0, pages: "0-2" }],
65
+ * [{ doc: 0, pages: "0" }, { doc: 1, pages: "1" }]
66
+ * ],
67
+ * ["doc_0", "doc_1"]
68
+ * );
69
+ * ```
70
+ *
71
+ * # Returns
72
+ * Array of IDs for the newly created documents (one per composition).
73
+ */
74
+ pdf_compose(compositions: any, doc_ids: any): any;
75
+ /**
76
+ * Set the license key.
77
+ *
78
+ * # Arguments
79
+ * * `license_key` - The license key string
80
+ * * `domain` - The current domain (from window.location.hostname)
81
+ *
82
+ * # Returns
83
+ * License validation result as JSON.
84
+ */
85
+ set_license(license_key: string, domain: string): any;
86
+ /**
87
+ * Authenticate with a password to unlock an encrypted document.
88
+ *
89
+ * # Arguments
90
+ * * `id` - Document ID
91
+ * * `password` - Password to try
92
+ *
93
+ * # Returns
94
+ * `true` if authentication succeeded, `false` if the password was incorrect.
95
+ */
96
+ authenticate(id: string, password: string): boolean;
97
+ /**
98
+ * Get all document IDs.
99
+ */
100
+ document_ids(): string[];
101
+ /**
102
+ * Check if a document with the given ID exists.
103
+ */
104
+ has_document(id: string): boolean;
105
+ /**
106
+ * Compress a PDF document.
107
+ *
108
+ * Saves the document with full compression options enabled:
109
+ * - Compress stream data using FlateDecode
110
+ * - Pack objects into compressed object streams (PDF 1.5+)
111
+ * - Use compressed xref streams (PDF 1.5+)
112
+ * - Remove unreferenced objects
113
+ *
114
+ * # Arguments
115
+ * * `doc_id` - Document ID to compress
116
+ *
117
+ * # Returns
118
+ * Compressed PDF data as Uint8Array
119
+ */
120
+ pdf_compress(doc_id: string): Uint8Array;
121
+ /**
122
+ * Get info for all pages in one call.
123
+ *
124
+ * Returns an array of `{width, height, rotation}` objects, one per page.
125
+ * More efficient than calling `page_info` for each page.
126
+ */
127
+ all_page_info(id: string): any;
128
+ /**
129
+ * Get text content for a specific page (for text selection).
130
+ *
131
+ * Returns an array of text runs, each containing:
132
+ * - `text`: Unicode text string
133
+ * - `glyphs`: Positioned glyphs with character mappings
134
+ * - `fontSize`: Font size in points
135
+ * - `transform`: Combined transform matrix
136
+ */
137
+ get_page_text(id: string, page_index: number): any;
138
+ /**
139
+ * Register a font from raw bytes.
140
+ *
141
+ * Use this to register external fonts (e.g., fetched from Google Fonts)
142
+ * so they can be used for document rendering.
143
+ *
144
+ * # Arguments
145
+ * * `id` - Document ID
146
+ * * `typeface` - The typeface name (must match what's in the document)
147
+ * * `bold` - Whether this is a bold variant
148
+ * * `italic` - Whether this is an italic variant
149
+ * * `bytes` - Raw font file data (TTF, OTF, WOFF, or WOFF2)
150
+ *
151
+ * # Example (JavaScript)
152
+ * ```js
153
+ * // Get required fonts
154
+ * const fonts = udoc.getRequiredFonts(docId);
155
+ *
156
+ * // Fetch and register each font
157
+ * for (const font of fonts) {
158
+ * const url = `https://fonts.googleapis.com/css2?family=${font.typeface}`;
159
+ * const fontBytes = await fetchFontBytes(url, font.bold, font.italic);
160
+ * udoc.registerFont(docId, font.typeface, font.bold, font.italic, fontBytes);
161
+ * }
162
+ *
163
+ * // Now render with the registered fonts
164
+ * const pixels = udoc.renderPageToRgba(docId, 0, 800, 600);
165
+ * ```
166
+ */
167
+ registerFont(id: string, typeface: string, bold: boolean, italic: boolean, bytes: Uint8Array): void;
168
+ /**
169
+ * Get current license status.
170
+ */
171
+ license_status(): any;
172
+ /**
173
+ * Check if a document requires a password to open.
174
+ *
175
+ * Returns `true` if the document is encrypted and requires authentication
176
+ * before pages can be loaded or rendered.
177
+ */
178
+ needs_password(id: string): boolean;
179
+ /**
180
+ * Decompress a PDF document.
181
+ *
182
+ * Removes all filter encodings from streams, resulting in raw,
183
+ * uncompressed stream data. Useful for debugging or inspection.
184
+ *
185
+ * # Arguments
186
+ * * `doc_id` - Document ID to decompress
187
+ *
188
+ * # Returns
189
+ * Decompressed PDF data as Uint8Array
190
+ */
191
+ pdf_decompress(doc_id: string): Uint8Array;
192
+ /**
193
+ * Remove a document by ID.
194
+ *
195
+ * Returns true if the document was removed, false if it didn't exist.
196
+ */
197
+ remove_document(id: string): boolean;
198
+ /**
199
+ * Extract all embedded fonts from a PDF document.
200
+ *
201
+ * # Arguments
202
+ * * `doc_id` - Document ID to extract fonts from
203
+ *
204
+ * # Returns
205
+ * Array of extracted font objects, each with:
206
+ * - `name`: Font name from the resource dictionary
207
+ * - `fontType`: Font type (Type1, TrueType, etc.)
208
+ * - `extension`: File extension (ttf, cff, t1, etc.)
209
+ * - `data`: Raw font data as Uint8Array
210
+ */
211
+ pdf_extract_fonts(doc_id: string): any;
212
+ /**
213
+ * Get all external fonts required by the document.
214
+ *
215
+ * This scans all text content in loaded pages and returns font descriptors
216
+ * for fonts that are:
217
+ * - Not embedded in the document
218
+ * - Not standard PDF fonts (Helvetica, Times, Courier, etc.)
219
+ *
220
+ * Use this to determine which fonts need to be fetched from external sources
221
+ * (e.g., Google Fonts) before rendering.
222
+ *
223
+ * Note: This only scans pages that have been loaded. Call appropriate loading
224
+ * methods first to ensure the pages you need are scanned.
225
+ *
226
+ * # Arguments
227
+ * * `id` - Document ID
228
+ *
229
+ * # Returns
230
+ * Array of font descriptors: `[{ typeface: "Roboto", bold: false, italic: false }, ...]`
231
+ *
232
+ * # Example (JavaScript)
233
+ * ```js
234
+ * // Load document
235
+ * const docId = udoc.loadPdf(pdfBytes);
236
+ *
237
+ * // Load all pages to scan for fonts
238
+ * const pageCount = udoc.pageCount(docId);
239
+ * for (let i = 0; i < pageCount; i++) {
240
+ * udoc.renderPageToRgba(docId, i, 1, 1); // Minimal render to load page
241
+ * }
242
+ *
243
+ * // Get required fonts
244
+ * const fonts = udoc.getRequiredFonts(docId);
245
+ * // fonts: [{ typeface: "Roboto", bold: false, italic: false }, ...]
246
+ * ```
247
+ */
248
+ getRequiredFonts(id: string): any;
249
+ /**
250
+ * Extract all embedded images from a PDF document.
251
+ *
252
+ * # Arguments
253
+ * * `doc_id` - Document ID to extract images from
254
+ * * `convert_raw_to_png` - When true, converts raw pixel data to PNG format
255
+ *
256
+ * # Returns
257
+ * Array of extracted image objects, each with:
258
+ * - `name`: Image name from the resource dictionary
259
+ * - `format`: Image format (jpeg, png, jp2, etc.)
260
+ * - `width`: Width in pixels
261
+ * - `height`: Height in pixels
262
+ * - `data`: Raw image data as Uint8Array
263
+ */
264
+ pdf_extract_images(doc_id: string, convert_raw_to_png: boolean): any;
265
+ /**
266
+ * Render a page to PNG bytes.
267
+ *
268
+ * # Arguments
269
+ * * `id` - Document ID
270
+ * * `page_index` - Zero-based page index
271
+ * * `width` - Output width in pixels
272
+ * * `height` - Output height in pixels
273
+ *
274
+ * # Returns
275
+ * PNG-encoded image data as a byte array.
276
+ */
277
+ render_page_to_png(id: string, page_index: number, width: number, height: number): Uint8Array;
278
+ /**
279
+ * Enable Google Fonts for a document.
280
+ *
281
+ * When enabled, fonts that are not embedded in the document will be
282
+ * automatically fetched from Google Fonts during rendering.
283
+ *
284
+ * # Arguments
285
+ * * `id` - Document ID
286
+ *
287
+ * # Example (JavaScript)
288
+ * ```js
289
+ * // Enable Google Fonts for the document
290
+ * udoc.enableGoogleFonts(docId);
291
+ *
292
+ * // Now render pages - fonts will be fetched automatically
293
+ * const pixels = udoc.renderPageToRgba(docId, 0, 800, 600);
294
+ * ```
295
+ */
296
+ enableGoogleFonts(id: string): void;
297
+ /**
298
+ * Get all annotations in the document, grouped by page index.
299
+ *
300
+ * Returns an object mapping page indices (as strings) to arrays of annotations.
301
+ */
302
+ get_all_annotations(id: string): any;
303
+ /**
304
+ * Check if a font is registered for a document.
305
+ *
306
+ * # Arguments
307
+ * * `id` - Document ID
308
+ * * `typeface` - The typeface name
309
+ * * `bold` - Whether to check for bold variant
310
+ * * `italic` - Whether to check for italic variant
311
+ *
312
+ * # Returns
313
+ * `true` if the font is registered, `false` otherwise.
314
+ */
315
+ hasRegisteredFont(id: string, typeface: string, bold: boolean, italic: boolean): boolean;
316
+ /**
317
+ * Render a page to raw RGBA pixel data.
318
+ *
319
+ * The returned data is in premultiplied alpha format, suitable for
320
+ * use with `ImageData` and canvas rendering.
321
+ *
322
+ * # Arguments
323
+ * * `id` - Document ID
324
+ * * `page_index` - Zero-based page index
325
+ * * `width` - Output width in pixels
326
+ * * `height` - Output height in pixels
327
+ *
328
+ * # Returns
329
+ * Raw RGBA pixel data (width * height * 4 bytes).
330
+ */
331
+ render_page_to_rgba(id: string, page_index: number, width: number, height: number): Uint8Array;
332
+ /**
333
+ * Get annotations for a specific page.
334
+ *
335
+ * Returns an array of annotation objects for the given page.
336
+ * Uses per-page loading for efficiency (only loads the requested page).
337
+ */
338
+ get_page_annotations(id: string, page_index: number): any;
339
+ /**
340
+ * Split a PDF document by its outline (bookmarks) structure.
341
+ *
342
+ * Creates multiple documents, one for each outline section at the specified level.
343
+ *
344
+ * # Arguments
345
+ * * `doc_id` - Document ID to split
346
+ * * `max_level` - Maximum outline level to consider (1 = top level only)
347
+ * * `split_mid_page` - When true, filters page content when sections share a page
348
+ *
349
+ * # Returns
350
+ * Object with:
351
+ * - `documentIds`: Array of IDs for the newly created documents
352
+ * - `sections`: Array of section info objects with `title`, `startPage`, `level`
353
+ */
354
+ pdf_split_by_outline(doc_id: string, max_level: number, split_mid_page: boolean): any;
355
+ /**
356
+ * Get the number of fonts registered for a document.
357
+ *
358
+ * # Arguments
359
+ * * `id` - Document ID
360
+ *
361
+ * # Returns
362
+ * The number of registered fonts.
363
+ */
364
+ registeredFontCount(id: string): number;
365
+ /**
366
+ * Create a new document viewer.
367
+ */
368
+ constructor();
369
+ /**
370
+ * Load a PDF document and return its ID.
371
+ *
372
+ * # Arguments
373
+ * * `bytes` - Raw PDF file data
374
+ *
375
+ * # Returns
376
+ * A unique document ID that can be used to reference this document.
377
+ */
378
+ load_pdf(bytes: Uint8Array): string;
379
+ /**
380
+ * Get the raw PDF bytes of a document.
381
+ *
382
+ * Returns the original PDF file data for the document.
383
+ * Returns an error if the document is not a PDF.
384
+ */
385
+ get_bytes(id: string): Uint8Array;
386
+ /**
387
+ * Get a numeric limit from the current license.
388
+ *
389
+ * Returns the limit value if set in the license, otherwise returns the default.
390
+ */
391
+ get_limit(limit_name: string, _default: bigint): bigint;
392
+ /**
393
+ * Load a PPTX (PowerPoint) document and return its ID.
394
+ *
395
+ * # Arguments
396
+ * * `bytes` - Raw PPTX file data
397
+ *
398
+ * # Returns
399
+ * A unique document ID that can be used to reference this document.
400
+ */
401
+ load_pptx(bytes: Uint8Array): string;
402
+ /**
403
+ * Get info for a specific page.
404
+ */
405
+ page_info(id: string, page_index: number): any;
406
+ /**
407
+ * Get the number of documents currently loaded.
408
+ */
409
+ readonly document_count: number;
410
+ }
411
+
412
+ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
413
+
414
+ export interface InitOutput {
415
+ readonly memory: WebAssembly.Memory;
416
+ readonly __wbg_udoc_free: (a: number, b: number) => void;
417
+ readonly udoc_all_page_info: (a: number, b: number, c: number, d: number) => void;
418
+ readonly udoc_authenticate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
419
+ readonly udoc_document_count: (a: number) => number;
420
+ readonly udoc_document_ids: (a: number, b: number) => void;
421
+ readonly udoc_enableGoogleFonts: (a: number, b: number, c: number, d: number) => void;
422
+ readonly udoc_getRequiredFonts: (a: number, b: number, c: number, d: number) => void;
423
+ readonly udoc_get_all_annotations: (a: number, b: number, c: number, d: number) => void;
424
+ readonly udoc_get_bytes: (a: number, b: number, c: number, d: number) => void;
425
+ readonly udoc_get_limit: (a: number, b: number, c: number, d: bigint) => bigint;
426
+ readonly udoc_get_outline: (a: number, b: number, c: number, d: number) => void;
427
+ readonly udoc_get_page_annotations: (a: number, b: number, c: number, d: number, e: number) => void;
428
+ readonly udoc_get_page_text: (a: number, b: number, c: number, d: number, e: number) => void;
429
+ readonly udoc_hasRegisteredFont: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
430
+ readonly udoc_has_document: (a: number, b: number, c: number) => number;
431
+ readonly udoc_has_feature: (a: number, b: number, c: number) => number;
432
+ readonly udoc_license_status: (a: number, b: number) => void;
433
+ readonly udoc_load_image: (a: number, b: number, c: number, d: number) => void;
434
+ readonly udoc_load_pdf: (a: number, b: number, c: number, d: number) => void;
435
+ readonly udoc_load_pptx: (a: number, b: number, c: number, d: number) => void;
436
+ readonly udoc_needs_password: (a: number, b: number, c: number, d: number) => void;
437
+ readonly udoc_new: () => number;
438
+ readonly udoc_page_count: (a: number, b: number, c: number, d: number) => void;
439
+ readonly udoc_page_info: (a: number, b: number, c: number, d: number, e: number) => void;
440
+ readonly udoc_page_layout: (a: number, b: number, c: number, d: number) => void;
441
+ readonly udoc_pdf_compose: (a: number, b: number, c: number, d: number) => void;
442
+ readonly udoc_pdf_compress: (a: number, b: number, c: number, d: number) => void;
443
+ readonly udoc_pdf_decompress: (a: number, b: number, c: number, d: number) => void;
444
+ readonly udoc_pdf_extract_fonts: (a: number, b: number, c: number, d: number) => void;
445
+ readonly udoc_pdf_extract_images: (a: number, b: number, c: number, d: number, e: number) => void;
446
+ readonly udoc_pdf_split_by_outline: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
447
+ readonly udoc_registerFont: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
448
+ readonly udoc_registeredFontCount: (a: number, b: number, c: number, d: number) => void;
449
+ readonly udoc_remove_document: (a: number, b: number, c: number) => number;
450
+ readonly udoc_render_page_to_png: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
451
+ readonly udoc_render_page_to_rgba: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
452
+ readonly udoc_set_license: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
453
+ readonly __wbindgen_export: (a: number, b: number) => number;
454
+ readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
455
+ readonly __wbindgen_export3: (a: number) => void;
456
+ readonly __wbindgen_export4: (a: number, b: number, c: number) => void;
457
+ readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
458
+ }
459
+
460
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
461
+
462
+ /**
463
+ * Instantiates the given `module`, which can either be bytes or
464
+ * a precompiled `WebAssembly.Module`.
465
+ *
466
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
467
+ *
468
+ * @returns {InitOutput}
469
+ */
470
+ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
471
+
472
+ /**
473
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
474
+ * for everything else, calls `WebAssembly.instantiate` directly.
475
+ *
476
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
477
+ *
478
+ * @returns {Promise<InitOutput>}
479
+ */
480
+ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;