@sqsoffice/slide 0.0.0-stage → 0.1.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.
Files changed (47) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +81 -2
  3. package/dist/THIRD-PARTY-NOTICES.txt +19871 -0
  4. package/dist/api-CLyi4j4N.js +4030 -0
  5. package/dist/api.js +1 -0
  6. package/dist/assets/engine/files-worker.js +1 -0
  7. package/dist/assets/engine/host-artifact-jgAXg8CH.js +1 -0
  8. package/dist/assets/engine/host-load-wasm-DyYR5qIL.js +1 -0
  9. package/dist/assets/engine/host-manifest.json +42 -0
  10. package/dist/assets/engine/host-pdf-import-BOPMPpUS.js +1 -0
  11. package/dist/assets/engine/host.js +1 -0
  12. package/dist/assets/engine/manifest.json +66 -0
  13. package/dist/assets/engine/office_web.js +1491 -0
  14. package/dist/assets/engine/office_web_bg.wasm +4 -0
  15. package/dist/assets/engine/worker.js +1 -0
  16. package/dist/assets/fonts/source-han-sans/2.005/LICENSE.txt +96 -0
  17. package/dist/assets/fonts/source-han-sans/2.005/SourceHanSansCN-Bold.otf +0 -0
  18. package/dist/assets/fonts/source-han-sans/2.005/SourceHanSansCN-Regular.otf +0 -0
  19. package/dist/assets/fonts/source-han-sans/2.005/manifest.json +20 -0
  20. package/dist/index.js +835 -0
  21. package/dist/package-manifest.json +181 -0
  22. package/dist/style.css +2 -0
  23. package/dist/types/app/lib/automation/protocol.d.ts +25 -0
  24. package/dist/types/app/lib/engine/client.d.ts +129 -0
  25. package/dist/types/app/lib/engine/docx.d.ts +67 -0
  26. package/dist/types/app/lib/engine/grid.d.ts +330 -0
  27. package/dist/types/app/lib/engine/image.d.ts +15 -0
  28. package/dist/types/app/lib/engine/markdown.d.ts +220 -0
  29. package/dist/types/app/lib/engine/pdf-import.d.ts +18 -0
  30. package/dist/types/app/lib/engine/pdf-ocr.d.ts +70 -0
  31. package/dist/types/app/lib/engine/pdf-output.d.ts +22 -0
  32. package/dist/types/app/lib/engine/pdf.d.ts +191 -0
  33. package/dist/types/app/lib/engine/presentation-clipboard.d.ts +26 -0
  34. package/dist/types/app/lib/engine/presentation-media.d.ts +156 -0
  35. package/dist/types/app/lib/engine/presentation.d.ts +145 -0
  36. package/dist/types/app/lib/engine/printing.d.ts +91 -0
  37. package/dist/types/app/lib/engine/protocol.d.ts +233 -0
  38. package/dist/types/app/lib/engine/script.d.ts +46 -0
  39. package/dist/types/app/lib/engine/sheet-clipboard.d.ts +42 -0
  40. package/dist/types/app/lib/engine/sheet-validation.d.ts +19 -0
  41. package/dist/types/app/lib/engine/view.d.ts +186 -0
  42. package/dist/types/app/lib/files/session.d.ts +114 -0
  43. package/dist/types/app/lib/files/storage.d.ts +20 -0
  44. package/dist/types/packages/slide/api.d.ts +4 -0
  45. package/dist/types/packages/slide/index.d.ts +5 -0
  46. package/dist/types/sdk/types.d.ts +59 -0
  47. package/package.json +40 -3
@@ -0,0 +1,330 @@
1
+ /** Spreadsheet geometry is computed by Rust; row/column and visible sheet indices are zero-based. */
2
+ import type { Json } from './protocol';
3
+ export interface GridCell {
4
+ row: number;
5
+ column: number;
6
+ }
7
+ export interface GridSelection {
8
+ sheet: number;
9
+ anchor: GridCell;
10
+ focus: GridCell;
11
+ active?: GridCell;
12
+ additional_ranges?: GridRange[];
13
+ }
14
+ export interface GridRange {
15
+ first_row: number;
16
+ last_row: number;
17
+ first_column: number;
18
+ last_column: number;
19
+ }
20
+ export interface GridRect {
21
+ x: number;
22
+ y: number;
23
+ width: number;
24
+ height: number;
25
+ }
26
+ export interface GridAxisSpan {
27
+ index: number;
28
+ start: number;
29
+ size: number;
30
+ }
31
+ export interface GridSheet {
32
+ index: number;
33
+ id: number;
34
+ name: string;
35
+ width: number;
36
+ height: number;
37
+ rows: number;
38
+ columns: number;
39
+ frozen_rows: number;
40
+ frozen_columns: number;
41
+ frozen_width: number;
42
+ frozen_height: number;
43
+ view: {
44
+ zeros: boolean;
45
+ grid_lines: boolean;
46
+ headings: boolean;
47
+ formulas: boolean;
48
+ };
49
+ protected: boolean;
50
+ tab_color: string | null;
51
+ }
52
+ export interface GridChange {
53
+ revision: number;
54
+ generation: number;
55
+ full: boolean;
56
+ /** Stable sheet IDs whose geometry or structure invalidates all of their tiles. */
57
+ sheet_ids: number[];
58
+ ranges: {
59
+ sheet_id: number;
60
+ rect: GridRect;
61
+ }[];
62
+ }
63
+ export interface GridSemantics {
64
+ cells: {
65
+ row: number;
66
+ column: number;
67
+ address: string;
68
+ text: string;
69
+ formula: boolean;
70
+ row_span: number;
71
+ column_span: number;
72
+ }[];
73
+ truncated: boolean;
74
+ }
75
+ export interface GridLayout {
76
+ revision: number;
77
+ font_epoch: number;
78
+ generation: number;
79
+ change: GridChange;
80
+ sheet: number;
81
+ sheets: GridSheet[];
82
+ rows: GridAxisSpan[];
83
+ columns: GridAxisSpan[];
84
+ frozen_row_spans: GridAxisSpan[];
85
+ frozen_column_spans: GridAxisSpan[];
86
+ semantics: GridSemantics;
87
+ diagnostics: string[];
88
+ }
89
+ export interface GridHitResult {
90
+ revision: number;
91
+ cell: GridCell | null;
92
+ drawing?: GridDrawing | null;
93
+ }
94
+ export interface GridDrawing {
95
+ kind: 'image' | 'shape' | 'chart' | 'slicer';
96
+ index: number;
97
+ rect: GridRect;
98
+ }
99
+ /** Same field names as the shared xlsx batch_update set_format operation. */
100
+ export interface GridCellFormat {
101
+ [key: string]: Json | undefined;
102
+ number_format?: string;
103
+ bold?: boolean;
104
+ italic?: boolean;
105
+ underline?: 'none' | 'single' | 'double' | 'single_accounting' | 'double_accounting';
106
+ strikethrough?: boolean;
107
+ background?: string;
108
+ font_color?: string;
109
+ font_family?: string;
110
+ font_size?: number;
111
+ automatic_font_color?: boolean;
112
+ horizontal_alignment?: 'general' | 'left' | 'center' | 'center_across' | 'right';
113
+ vertical_alignment?: 'top' | 'center' | 'bottom';
114
+ wrap_text?: boolean;
115
+ shrink_to_fit?: boolean;
116
+ indent?: number;
117
+ text_rotation?: number;
118
+ locked?: boolean;
119
+ checkbox?: boolean;
120
+ }
121
+ export interface GridStatistics {
122
+ count: number;
123
+ numeric_count: number;
124
+ sum: number | null;
125
+ average: number | null;
126
+ minimum: number | null;
127
+ maximum: number | null;
128
+ pending: number;
129
+ }
130
+ export interface GridContext {
131
+ hyperlink?: {
132
+ target: string | null;
133
+ location: string;
134
+ display: string | null;
135
+ tooltip: string;
136
+ } | null;
137
+ note?: {
138
+ author: string;
139
+ text: string;
140
+ truncated: boolean;
141
+ } | null;
142
+ validation?: {
143
+ dropdown: boolean;
144
+ title: string;
145
+ prompt: string;
146
+ truncated: boolean;
147
+ } | null;
148
+ sheet_id: number;
149
+ format: GridCellFormat;
150
+ mixed: string[];
151
+ format_error?: string | null;
152
+ merged: boolean;
153
+ frozen_rows: number;
154
+ frozen_columns: number;
155
+ read_only_reason: string | null;
156
+ statistics: GridStatistics | null;
157
+ statistics_error?: string | null;
158
+ }
159
+ export interface GridFunctionInfo {
160
+ name: string;
161
+ category: string;
162
+ arguments: string;
163
+ description: string;
164
+ }
165
+ export interface GridForestryEntry {
166
+ id: string;
167
+ title: string;
168
+ category: string;
169
+ section: string;
170
+ latex: string;
171
+ variables: string;
172
+ context: string;
173
+ review: string;
174
+ correction: string;
175
+ calculation: {
176
+ parameters: {
177
+ label: string;
178
+ series: boolean;
179
+ }[];
180
+ expression: string;
181
+ notes: string;
182
+ checks: string[];
183
+ };
184
+ }
185
+ export interface GridForestryCatalog {
186
+ source: string;
187
+ entries: GridForestryEntry[];
188
+ }
189
+ export interface GridFormulaPreview {
190
+ src: string;
191
+ width: number;
192
+ height: number;
193
+ }
194
+ export interface GridFormulaAssistance {
195
+ completion: {
196
+ start: number;
197
+ end: number;
198
+ items: GridFunctionInfo[];
199
+ } | null;
200
+ function: (GridFunctionInfo & {
201
+ argument: number;
202
+ }) | null;
203
+ references: {
204
+ start: number;
205
+ end: number;
206
+ reference: string;
207
+ }[];
208
+ cycled: {
209
+ text: string;
210
+ start: number;
211
+ end: number;
212
+ } | null;
213
+ pick_span: {
214
+ start: number;
215
+ end: number;
216
+ } | null;
217
+ completed: string | null;
218
+ reference: string;
219
+ highlights?: {
220
+ rect: GridRect;
221
+ index: number;
222
+ }[];
223
+ }
224
+ export interface GridSelectionResult {
225
+ revision: number;
226
+ selection: GridSelection;
227
+ /** A1 with the escaped sheet name, ready for the shared xlsx_write protocol. */
228
+ range: string;
229
+ ranges: string[];
230
+ cell: string;
231
+ rect: GridRect;
232
+ active_rect: GridRect;
233
+ rects: GridRect[];
234
+ input: string;
235
+ display: string;
236
+ read_only: boolean;
237
+ context: GridContext;
238
+ formula?: GridFormulaAssistance | null;
239
+ catalog?: GridFunctionInfo[] | null;
240
+ aggregate?: {
241
+ selection: GridSelection;
242
+ text: string;
243
+ start: number;
244
+ end: number;
245
+ } | null;
246
+ forestry_catalog?: GridForestryCatalog | null;
247
+ forestry_formula?: string | null;
248
+ forestry_preview?: GridFormulaPreview | null;
249
+ parsed_input?: {
250
+ value: Json;
251
+ number_format: string | null;
252
+ } | null;
253
+ pivot_source?: Json;
254
+ object_preview?: Json;
255
+ data_range?: {
256
+ range: string;
257
+ has_header: boolean;
258
+ column: number;
259
+ } | null;
260
+ drawing_positions?: {
261
+ anchor: string;
262
+ offset_x: number;
263
+ offset_y: number;
264
+ }[] | null;
265
+ clipboard?: string | null;
266
+ }
267
+ export interface GridTileRequest {
268
+ sheet: number;
269
+ x: number;
270
+ y: number;
271
+ width: number;
272
+ height: number;
273
+ scale: number;
274
+ }
275
+ export type GridDirection = 'left' | 'right' | 'up' | 'down' | 'home' | 'end' | 'tab' | 'enter';
276
+ export type GridViewRequest = ({
277
+ kind: 'grid_layout';
278
+ sheet: number;
279
+ } & GridRect) | {
280
+ kind: 'grid_tile';
281
+ tile: GridTileRequest;
282
+ } | {
283
+ kind: 'grid_hit';
284
+ sheet: number;
285
+ x: number;
286
+ y: number;
287
+ } | {
288
+ kind: 'grid_selection';
289
+ selection: GridSelection;
290
+ direction?: GridDirection;
291
+ extend?: boolean;
292
+ target?: string;
293
+ data_edge?: boolean;
294
+ sheet_start?: boolean;
295
+ reverse?: boolean;
296
+ include_clipboard?: boolean;
297
+ formula_catalog?: boolean;
298
+ forestry_catalog?: boolean;
299
+ forestry_preview?: string;
300
+ parse_input?: {
301
+ text: string;
302
+ };
303
+ pivot_source?: Record<string, Json>;
304
+ object_preview?: Record<string, Json>;
305
+ data_range?: {
306
+ kind: 'sort' | 'filter' | 'advanced';
307
+ };
308
+ drawing_positions?: {
309
+ anchor: string;
310
+ offsets: {
311
+ x: number;
312
+ y: number;
313
+ }[];
314
+ };
315
+ forestry?: {
316
+ id: string;
317
+ values: string[];
318
+ expression?: string;
319
+ };
320
+ aggregate?: 'SUM' | 'AVERAGE' | 'COUNT' | 'MAX' | 'MIN';
321
+ /** DOM selection positions, measured in UTF-16 code units. */
322
+ draft?: {
323
+ text: string;
324
+ cursor: number;
325
+ start?: number;
326
+ cycle_references?: boolean;
327
+ target_sheet?: number;
328
+ };
329
+ };
330
+ export type GridViewResult = GridLayout | GridHitResult | GridSelectionResult;
@@ -0,0 +1,15 @@
1
+ export interface ImageInfo {
2
+ kind: 'svg' | 'image';
3
+ format: string;
4
+ width: number;
5
+ height: number;
6
+ width_points: number;
7
+ height_points: number;
8
+ source_bytes: number;
9
+ read_only: true;
10
+ diagnostics: string[];
11
+ text?: string;
12
+ }
13
+ export type ImageViewRequest = {
14
+ kind: 'image_info';
15
+ };
@@ -0,0 +1,220 @@
1
+ import type { PageInfo } from './view';
2
+ import type { Json } from './protocol';
3
+ export type SourceMode = 'source' | 'visual';
4
+ export type MarkdownMode = SourceMode | 'preview';
5
+ /** Source and projection coordinates are UTF-16 offsets, as used by browser inputs. */
6
+ export interface SourceSelection {
7
+ anchor: number;
8
+ head: number;
9
+ }
10
+ export interface SourceInputResult extends SourceSelection {
11
+ selections?: SourceSelection[];
12
+ }
13
+ /** Stored source offsets are UTF-8 bytes, independent of a browser projection. */
14
+ export interface SourceSelectionHistory {
15
+ before: SourceSelection;
16
+ after: SourceSelection;
17
+ }
18
+ export interface SourceParagraphStyle {
19
+ align: number;
20
+ indent: number;
21
+ first_indent: number;
22
+ line_height: number;
23
+ before: number;
24
+ after: number;
25
+ }
26
+ export interface SourceStyle {
27
+ strong?: boolean;
28
+ emphasis?: boolean;
29
+ strike?: boolean;
30
+ code?: boolean;
31
+ heading?: number;
32
+ link?: boolean;
33
+ underline?: boolean;
34
+ color?: [number, number, number] | null;
35
+ background?: [number, number, number] | null;
36
+ size?: number | null;
37
+ monospace?: boolean;
38
+ serif?: boolean;
39
+ superscript?: boolean;
40
+ subscript?: boolean;
41
+ html?: boolean;
42
+ task?: boolean | null;
43
+ paragraph?: SourceParagraphStyle | null;
44
+ }
45
+ export interface SourceSpan {
46
+ start: number;
47
+ end: number;
48
+ style: SourceStyle;
49
+ source_start: number;
50
+ source_end: number;
51
+ task_source?: number;
52
+ radio?: boolean;
53
+ }
54
+ export interface SourceObject {
55
+ kind: 'table' | 'image' | 'formula' | 'diagram' | 'html' | 'rule';
56
+ start: number;
57
+ end: number;
58
+ source_start: number;
59
+ source_end: number;
60
+ text: string;
61
+ }
62
+ export interface SourceState {
63
+ revision: number;
64
+ format: 'markdown' | 'text';
65
+ mode: SourceMode;
66
+ folded?: boolean;
67
+ text: string;
68
+ start: number;
69
+ end: number;
70
+ total: number;
71
+ selection: SourceSelection;
72
+ line_count: number;
73
+ characters: number;
74
+ encoding: string;
75
+ can_undo: boolean;
76
+ can_redo: boolean;
77
+ spans?: SourceSpan[];
78
+ objects?: SourceObject[];
79
+ paragraph_ranges?: {
80
+ start: number;
81
+ end: number;
82
+ style: SourceParagraphStyle;
83
+ }[];
84
+ }
85
+ export interface SourcePreview {
86
+ revision: number;
87
+ font_epoch: number;
88
+ pages: PageInfo[];
89
+ known_pages: number;
90
+ complete: boolean;
91
+ diagnostics: string[];
92
+ remote?: SourceRemoteState;
93
+ }
94
+ export interface SourceRemoteState {
95
+ enabled: boolean;
96
+ epoch: number;
97
+ pending: string[];
98
+ }
99
+ export interface SourceContext {
100
+ revision: number;
101
+ style: SourceStyle | null;
102
+ mixed: string[];
103
+ paragraph: SourceParagraphStyle | null;
104
+ paragraph_mixed: string[];
105
+ heading: number | null;
106
+ }
107
+ export interface SourceSelectionResult {
108
+ revision: number;
109
+ mode: SourceMode;
110
+ selection: SourceSelection;
111
+ }
112
+ export interface SourceHit {
113
+ source: number | null;
114
+ }
115
+ export type SourceViewRequest = {
116
+ kind: 'source_state';
117
+ start?: number;
118
+ length?: number;
119
+ mode?: SourceMode;
120
+ folded?: boolean;
121
+ line?: number;
122
+ } | {
123
+ kind: 'source_selection';
124
+ mode: SourceMode;
125
+ folded?: boolean;
126
+ selection: SourceSelection;
127
+ } | {
128
+ kind: 'source_context' | 'source_copy' | 'source_footnote';
129
+ mode: SourceMode;
130
+ folded?: boolean;
131
+ selection: SourceSelection;
132
+ } | {
133
+ kind: 'source_multi_next';
134
+ mode: 'source';
135
+ selections: SourceSelection[];
136
+ window: {
137
+ start: number;
138
+ end: number;
139
+ };
140
+ } | {
141
+ kind: 'source_objects';
142
+ request: Json;
143
+ } | {
144
+ kind: 'source_remote_config';
145
+ enabled: boolean;
146
+ } | {
147
+ kind: 'source_remote_resource';
148
+ epoch: number;
149
+ url: string;
150
+ bytes?: ArrayBuffer;
151
+ error?: string;
152
+ } | {
153
+ kind: 'source_preview';
154
+ from?: number;
155
+ budget?: number;
156
+ width?: number;
157
+ refresh?: boolean;
158
+ } | {
159
+ kind: 'source_hit';
160
+ page: number;
161
+ x: number;
162
+ y: number;
163
+ };
164
+ export type SourceViewResult = SourceState | SourcePreview | SourceSelectionResult | SourceHit | SourceContext | SourceRemoteState | SourceInputResult | {
165
+ revision: number;
166
+ text: string;
167
+ } | {
168
+ revision: number;
169
+ selection: SourceSelection | null;
170
+ } | Json;
171
+ export type SourceCommandName = 'bold' | 'italic' | 'underline' | 'strike' | 'code' | 'clear_format' | 'heading' | 'bullet_list' | 'ordered_list' | 'task_list' | 'quote' | 'code_block' | 'link' | 'image' | 'formula' | 'diagram' | 'table' | 'rule' | 'superscript' | 'subscript' | 'inline_style' | 'apply_format' | 'paragraph' | 'radio_list' | 'task_toggle' | 'radio_clear' | 'radio_split' | 'footnote' | 'paste_rich' | 'insert_markdown';
172
+ export interface SourceCommand {
173
+ command: SourceCommandName;
174
+ level?: number;
175
+ url?: string;
176
+ label?: string;
177
+ text?: string;
178
+ language?: string;
179
+ rows?: number;
180
+ columns?: number;
181
+ inline?: boolean;
182
+ display?: boolean;
183
+ style?: Partial<SourceStyle> | Partial<SourceParagraphStyle>;
184
+ source?: number;
185
+ html?: string;
186
+ }
187
+ export type SourceInput = {
188
+ kind: 'source_edit';
189
+ mode: SourceMode;
190
+ folded?: boolean;
191
+ start: number;
192
+ end: number;
193
+ text: string;
194
+ selection?: SourceSelection;
195
+ } | ({
196
+ kind: 'source_command';
197
+ mode: SourceMode;
198
+ folded?: boolean;
199
+ selection: SourceSelection;
200
+ } & SourceCommand) | {
201
+ kind: 'source_smart';
202
+ mode: SourceMode;
203
+ folded?: boolean;
204
+ selection: SourceSelection;
205
+ action: 'enter' | 'indent' | 'outdent' | 'pair';
206
+ text?: string;
207
+ } | {
208
+ kind: 'source_multi_edit';
209
+ mode: 'source';
210
+ selections: SourceSelection[];
211
+ action: 'insert' | 'backspace' | 'delete';
212
+ text?: string;
213
+ };
214
+ /** A toolbar dialog stays attached to the selection and revision at opening. */
215
+ export interface SourceTarget {
216
+ mode: SourceMode;
217
+ folded?: boolean;
218
+ selection: SourceSelection;
219
+ revision: number;
220
+ }
@@ -0,0 +1,18 @@
1
+ export interface PdfImportRequest {
2
+ at: number;
3
+ sources: {
4
+ name: string;
5
+ bytes: ArrayBuffer;
6
+ password?: string;
7
+ pages?: number[];
8
+ }[];
9
+ }
10
+ export interface PdfImportResult {
11
+ at: number;
12
+ imported: number;
13
+ page_count: number;
14
+ source_page_counts: number[];
15
+ }
16
+ export declare function pdfImportBytes(request: PdfImportRequest): number;
17
+ export declare function pdfImportMetadata(request: PdfImportRequest): string;
18
+ export declare function validatePdfImport(value: PdfImportRequest, recovery?: boolean): void;
@@ -0,0 +1,70 @@
1
+ import type { BrowserFileSession } from '../files/session';
2
+ import { type Json } from './protocol';
3
+ export interface PdfOcrSettings {
4
+ pages: number[] | null;
5
+ backend: string;
6
+ language: string;
7
+ dpi: number;
8
+ skip_text_pages: boolean;
9
+ }
10
+ export interface PdfOcrCapabilities {
11
+ loaded: boolean;
12
+ backend: string;
13
+ languages: string[];
14
+ model: string;
15
+ model_bytes: number;
16
+ engine_license: string;
17
+ cancellation: string;
18
+ }
19
+ export interface PdfOcrWord {
20
+ line: number;
21
+ text: string;
22
+ origin: [number, number];
23
+ across: [number, number];
24
+ up: [number, number];
25
+ confidence: number | null;
26
+ }
27
+ export interface PdfOcrPagePreview {
28
+ page: number;
29
+ page_id: [number, number];
30
+ status: 'ready' | 'skipped' | 'error';
31
+ reason: string | null;
32
+ dpi: number;
33
+ pixel_size: [number, number];
34
+ model: Json;
35
+ existing_text_coverage: number;
36
+ words: PdfOcrWord[];
37
+ }
38
+ export interface PdfOcrPreview {
39
+ source_revision: number;
40
+ source_hash: string;
41
+ view_fingerprint: string;
42
+ settings: PdfOcrSettings;
43
+ pages: PdfOcrPagePreview[];
44
+ }
45
+ export type PdfOcrViewRequest = {
46
+ kind: 'pdf_ocr_capabilities';
47
+ } | {
48
+ kind: 'pdf_ocr_load';
49
+ detection: ArrayBuffer;
50
+ recognition: ArrayBuffer;
51
+ dictionary: ArrayBuffer;
52
+ } | {
53
+ kind: 'pdf_ocr_preview';
54
+ settings: PdfOcrSettings;
55
+ };
56
+ export type PdfOcrViewResult = PdfOcrCapabilities | PdfOcrPreview;
57
+ export interface PdfOcrProgress {
58
+ phase: string;
59
+ completed: number;
60
+ total: number;
61
+ }
62
+ /** Only public model weights are fetched; document bytes never leave the local worker. */
63
+ export declare function loadPdfOcrModels(signal: AbortSignal, progress: (value: PdfOcrProgress) => void, resourceBase?: string): Promise<{
64
+ detection: ArrayBuffer;
65
+ recognition: ArrayBuffer;
66
+ dictionary: ArrayBuffer;
67
+ }>;
68
+ export declare function clearPdfOcrCache(): Promise<void>;
69
+ export declare function parsePdfOcrPages(value: string, count: number): number[];
70
+ export declare function previewPdfOcr(session: BrowserFileSession, settings: PdfOcrSettings, signal: AbortSignal, progress: (value: PdfOcrProgress) => void): Promise<PdfOcrPreview>;
@@ -0,0 +1,22 @@
1
+ import type { CopyExport, Json } from './protocol';
2
+ export type PdfOutputViewRequest = {
3
+ kind: 'pdf_output';
4
+ spec: Record<string, Json>;
5
+ } | {
6
+ kind: 'pdf_merge_copy';
7
+ sources: ArrayBuffer[];
8
+ passwords?: string[];
9
+ } | {
10
+ kind: 'pdf_signed_output';
11
+ certificate: ArrayBuffer;
12
+ privateKey: ArrayBuffer;
13
+ options: Record<string, Json>;
14
+ } | {
15
+ kind: 'pdf_authenticate';
16
+ password: string;
17
+ };
18
+ export type PdfOutputViewResult = CopyExport | {
19
+ authenticated: boolean;
20
+ };
21
+ export declare function pdfOutputName(source: string, spec: Record<string, Json>, report: Json): string;
22
+ export declare function downloadPdfOutput(output: CopyExport, name: string): void;