domotion-svg 0.28.2 → 0.29.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 (52) hide show
  1. package/README.md +10 -1
  2. package/dist/animation/overlay-schema.d.ts +14 -14
  3. package/dist/animation/transition-schema.d.ts +2 -2
  4. package/dist/capture/paged-capture-bundle-json-schema.d.ts +4 -0
  5. package/dist/capture/paged-capture-bundle-json-schema.js +21 -0
  6. package/dist/capture/paged-capture-bundle.d.ts +295 -0
  7. package/dist/capture/paged-capture-bundle.js +283 -0
  8. package/dist/capture/paged-capture-helper-json-schema.d.ts +4 -0
  9. package/dist/capture/paged-capture-helper-json-schema.js +21 -0
  10. package/dist/capture/paged-capture-helper.d.ts +254 -0
  11. package/dist/capture/paged-capture-helper.js +907 -0
  12. package/dist/capture/paged-capture.d.ts +40 -0
  13. package/dist/capture/paged-capture.js +299 -0
  14. package/dist/capture/paged-collapsed-table-record.d.ts +28 -1
  15. package/dist/capture/paged-collapsed-table-record.js +151 -22
  16. package/dist/capture/paged-page-record.d.ts +183 -0
  17. package/dist/capture/paged-page-record.js +857 -0
  18. package/dist/capture/script/walker/collapsed-border.d.ts +9 -1
  19. package/dist/capture/script/walker/collapsed-border.js +19 -8
  20. package/dist/capture/script.generated.js +1 -1
  21. package/dist/capture/text-paint-geometry-cdp.d.ts +29 -2
  22. package/dist/capture/text-paint-geometry-cdp.js +35 -8
  23. package/dist/cli/animate-orchestrator.d.ts +77 -77
  24. package/dist/cli/capture.js +116 -4
  25. package/dist/cli/index.js +30 -0
  26. package/dist/cli/storyboard.d.ts +51 -51
  27. package/dist/index.d.ts +12 -0
  28. package/dist/index.js +7 -0
  29. package/dist/render/element-tree-to-svg.d.ts +16 -2
  30. package/dist/render/element-tree-to-svg.js +25 -7
  31. package/dist/render/font-resolution.d.ts +1 -1
  32. package/dist/render/font-resolution.js +21 -7
  33. package/dist/render/format.d.ts +1 -1
  34. package/dist/render/format.js +2 -2
  35. package/dist/render/paged-page-svg.d.ts +48 -0
  36. package/dist/render/paged-page-svg.js +187 -0
  37. package/dist/render/pseudo-fragments.js +2 -1
  38. package/dist/render/real-text-layer.d.ts +15 -0
  39. package/dist/render/real-text-layer.js +180 -0
  40. package/dist/render/text-run-provenance.d.ts +1 -1
  41. package/dist/render/text-to-path.d.ts +22 -0
  42. package/dist/render/text-to-path.js +78 -3
  43. package/dist/render/text.js +16 -3
  44. package/dist/render/vertical-text.js +2 -1
  45. package/dist/studio/agent-tools.d.ts +74 -74
  46. package/dist/studio/project-schema.d.ts +110 -110
  47. package/dist/studio/recording.d.ts +72 -72
  48. package/dist/studio/treatment-schema.d.ts +2 -2
  49. package/dist/templates/builtin/compare.d.ts +1 -1
  50. package/package.json +10 -2
  51. package/schemas/paged-capture-bundle.schema.json +628 -0
  52. package/schemas/paged-capture-helper-bundle.schema.json +384 -0
package/README.md CHANGED
@@ -200,7 +200,16 @@ const page = await browser.newPage();
200
200
  await page.setContent(`<div style="padding:20px;color:white;background:#0d1117">Hello</div>`);
201
201
 
202
202
  const tree = await captureElementTree(page, "body", { x: 0, y: 0, width: 800, height: 200 });
203
- const svg = elementTreeToSvg(tree, 800, 200);
203
+ const svg = elementTreeToSvg(tree, 800, 200, {
204
+ // Optional: searchable/selectable text when this SVG is embedded inline.
205
+ // This cannot expose text through <img src="…">.
206
+ realTextLayer: true,
207
+ // Optional: how text is emitted. Default "embedded-font" is self-contained
208
+ // and pixel-faithful. "system-font" instead emits authored <text> painted
209
+ // by the VIEWER's installed fonts — smaller output, but not pixel-faithful
210
+ // and only correct where the fonts are present (CLI: --text-mode system-font).
211
+ // renderTextMode: "system-font",
212
+ });
204
213
 
205
214
  console.log(svg);
206
215
  await browser.close();
@@ -28,10 +28,10 @@ import { z } from "zod";
28
28
  */
29
29
  export declare const overlaySlideSchema: z.ZodObject<{
30
30
  from: z.ZodEnum<{
31
- left: "left";
32
- right: "right";
33
31
  top: "top";
32
+ right: "right";
34
33
  bottom: "bottom";
34
+ left: "left";
35
35
  }>;
36
36
  duration: z.ZodNumber;
37
37
  easing: z.ZodOptional<z.ZodString>;
@@ -139,10 +139,10 @@ export declare const svgOverlaySchema: z.ZodObject<{
139
139
  animId: z.ZodString;
140
140
  enter: z.ZodOptional<z.ZodObject<{
141
141
  from: z.ZodEnum<{
142
- left: "left";
143
- right: "right";
144
142
  top: "top";
143
+ right: "right";
145
144
  bottom: "bottom";
145
+ left: "left";
146
146
  }>;
147
147
  duration: z.ZodNumber;
148
148
  easing: z.ZodOptional<z.ZodString>;
@@ -150,10 +150,10 @@ export declare const svgOverlaySchema: z.ZodObject<{
150
150
  }, z.core.$strip>>;
151
151
  exit: z.ZodOptional<z.ZodObject<{
152
152
  from: z.ZodEnum<{
153
- left: "left";
154
- right: "right";
155
153
  top: "top";
154
+ right: "right";
156
155
  bottom: "bottom";
156
+ left: "left";
157
157
  }>;
158
158
  duration: z.ZodNumber;
159
159
  easing: z.ZodOptional<z.ZodString>;
@@ -315,10 +315,10 @@ export declare const animationOverlaySchema: z.ZodDiscriminatedUnion<[z.ZodObjec
315
315
  animId: z.ZodString;
316
316
  enter: z.ZodOptional<z.ZodObject<{
317
317
  from: z.ZodEnum<{
318
- left: "left";
319
- right: "right";
320
318
  top: "top";
319
+ right: "right";
321
320
  bottom: "bottom";
321
+ left: "left";
322
322
  }>;
323
323
  duration: z.ZodNumber;
324
324
  easing: z.ZodOptional<z.ZodString>;
@@ -326,10 +326,10 @@ export declare const animationOverlaySchema: z.ZodDiscriminatedUnion<[z.ZodObjec
326
326
  }, z.core.$strip>>;
327
327
  exit: z.ZodOptional<z.ZodObject<{
328
328
  from: z.ZodEnum<{
329
- left: "left";
330
- right: "right";
331
329
  top: "top";
330
+ right: "right";
332
331
  bottom: "bottom";
332
+ left: "left";
333
333
  }>;
334
334
  duration: z.ZodNumber;
335
335
  easing: z.ZodOptional<z.ZodString>;
@@ -403,11 +403,11 @@ export type AnimationOverlay = z.infer<typeof animationOverlaySchema>;
403
403
  export declare const intraFrameAnimationSchema: z.ZodObject<{
404
404
  animId: z.ZodString;
405
405
  property: z.ZodEnum<{
406
- width: "width";
407
- height: "height";
408
406
  opacity: "opacity";
409
407
  transform: "transform";
410
408
  clipPath: "clipPath";
409
+ width: "width";
410
+ height: "height";
411
411
  scale: "scale";
412
412
  translateX: "translateX";
413
413
  translateY: "translateY";
@@ -427,11 +427,11 @@ export declare const intraFrameAnimationSchema: z.ZodObject<{
427
427
  alternate: z.ZodOptional<z.ZodBoolean>;
428
428
  fuse: z.ZodOptional<z.ZodArray<z.ZodObject<{
429
429
  property: z.ZodEnum<{
430
- width: "width";
431
- height: "height";
432
430
  opacity: "opacity";
433
431
  transform: "transform";
434
432
  clipPath: "clipPath";
433
+ width: "width";
434
+ height: "height";
435
435
  scale: "scale";
436
436
  translateX: "translateX";
437
437
  translateY: "translateY";
@@ -104,8 +104,8 @@ export declare const transitionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
104
104
  easing: z.ZodOptional<z.ZodString>;
105
105
  push: z.ZodUnion<readonly [z.ZodObject<{
106
106
  direction: z.ZodDefault<z.ZodEnum<{
107
- left: "left";
108
107
  right: "right";
108
+ left: "left";
109
109
  up: "up";
110
110
  down: "down";
111
111
  }>>;
@@ -264,8 +264,8 @@ export declare const storyboardTransitionSchema: z.ZodUnion<(z.ZodObject<{
264
264
  easing: z.ZodOptional<z.ZodString>;
265
265
  push: z.ZodUnion<readonly [z.ZodObject<{
266
266
  direction: z.ZodDefault<z.ZodEnum<{
267
- left: "left";
268
267
  right: "right";
268
+ left: "left";
269
269
  up: "up";
270
270
  down: "down";
271
271
  }>>;
@@ -0,0 +1,4 @@
1
+ /** Generate the published JSON Schema for the paged-capture bundle manifest. */
2
+ export declare const PAGED_CAPTURE_BUNDLE_SCHEMA_ID = "https://raw.githubusercontent.com/brianwestphal/domotion/main/schemas/paged-capture-bundle.schema.json";
3
+ export declare function buildPagedCaptureBundleJsonSchema(): Record<string, unknown>;
4
+ export declare function pagedCaptureBundleJsonSchemaText(): string;
@@ -0,0 +1,21 @@
1
+ /** Generate the published JSON Schema for the paged-capture bundle manifest. */
2
+ import { z } from "zod";
3
+ import { pagedCaptureBundleManifestSchema } from "./paged-capture-bundle.js";
4
+ export const PAGED_CAPTURE_BUNDLE_SCHEMA_ID = "https://raw.githubusercontent.com/brianwestphal/domotion/main/schemas/paged-capture-bundle.schema.json";
5
+ export function buildPagedCaptureBundleJsonSchema() {
6
+ const schema = z.toJSONSchema(pagedCaptureBundleManifestSchema, {
7
+ target: "draft-2020-12",
8
+ io: "input",
9
+ });
10
+ return {
11
+ $schema: "https://json-schema.org/draft/2020-12/schema",
12
+ $id: PAGED_CAPTURE_BUNDLE_SCHEMA_ID,
13
+ title: "Domotion paged-capture bundle manifest",
14
+ description: "Versioned authenticated/unavailable manifest for an opt-in paged-media capture bundle. " +
15
+ "Runtime validation additionally enforces consecutive pages, deterministic relative SVG paths, and content digests.",
16
+ ...schema,
17
+ };
18
+ }
19
+ export function pagedCaptureBundleJsonSchemaText() {
20
+ return `${JSON.stringify(buildPagedCaptureBundleJsonSchema(), null, 2)}\n`;
21
+ }
@@ -0,0 +1,295 @@
1
+ /**
2
+ * Versioned manifest contract for opt-in paged-media capture bundles.
3
+ *
4
+ * Chromium 7d859f271c exposes only PDF bytes/a stream through public
5
+ * Page.printToPDF. Authenticated manifests therefore require the separately
6
+ * supplied Blink-private PrintBegin-to-PrintEnd transport; PDF/vector/raster
7
+ * output is never accepted as logical page evidence. See docs/255.
8
+ */
9
+ import { z } from "zod";
10
+ export declare const PAGED_CAPTURE_BUNDLE_SCHEMA_VERSION: 1;
11
+ export declare const PAGED_CAPTURE_BUNDLE_ABI: "domotion-paged-capture-bundle-v1";
12
+ export declare const PAGED_CAPTURE_HELPER_ABI: "domotion-paged-capture-combined-v2";
13
+ export declare const PAGED_CAPTURE_SKIA_REVISION: "62efacd37737505732dbe3d8daa62abd679626a1";
14
+ export declare const PAGED_CAPTURE_HELPER_PATCH_SHA256: "a94cda690cb1b0b5d78438ed195b8f4b1df161054b9e8172e6fa26500b87bcba";
15
+ export declare const PAGED_CAPTURE_HELPER_SKIA_PATCH_SHA256: "c4a8ab1e0c6832a7bbde849e54d26cf9c396adbedec60a7bfba5bb24209b6792";
16
+ declare const authenticatedManifestSchema: z.ZodObject<{
17
+ status: z.ZodLiteral<"authenticated">;
18
+ helper: z.ZodObject<{
19
+ bundleManifestSha256: z.ZodString;
20
+ executableSha256: z.ZodString;
21
+ runtimeDependenciesSha256: z.ZodString;
22
+ browserProcessId: z.ZodNumber;
23
+ rendererProcessId: z.ZodNumber;
24
+ browserVersion: z.ZodString;
25
+ protocolVersion: z.ZodString;
26
+ }, z.core.$strict>;
27
+ printEpoch: z.ZodObject<{
28
+ epochId: z.ZodString;
29
+ frameId: z.ZodString;
30
+ documentLoaderId: z.ZodString;
31
+ printParametersSha256: z.ZodString;
32
+ lifecycle: z.ZodLiteral<"PrintBegin-to-PrintEnd">;
33
+ logicalTransport: z.ZodLiteral<"blink-private-paged-capture-physical-fragment-tree-v1">;
34
+ logicalFactsDerivedFromPdfVectorOrRaster: z.ZodLiteral<false>;
35
+ sourceRestoredExactly: z.ZodLiteral<true>;
36
+ }, z.core.$strict>;
37
+ pages: z.ZodArray<z.ZodObject<{
38
+ selectionIndex: z.ZodNumber;
39
+ pageIndex: z.ZodNumber;
40
+ pageNumber: z.ZodNumber;
41
+ pageName: z.ZodNullable<z.ZodString>;
42
+ emptyKind: z.ZodEnum<{
43
+ none: "none";
44
+ "forced-blank": "forced-blank";
45
+ "terminal-empty": "terminal-empty";
46
+ }>;
47
+ media: z.ZodLiteral<"print">;
48
+ widthCssPx: z.ZodNumber;
49
+ heightCssPx: z.ZodNumber;
50
+ pageRecordSha256: z.ZodString;
51
+ collapsedBorderConsistencySha256: z.ZodString;
52
+ svg: z.ZodObject<{
53
+ path: z.ZodString;
54
+ byteLength: z.ZodNumber;
55
+ sha256: z.ZodString;
56
+ selfContained: z.ZodLiteral<true>;
57
+ }, z.core.$strict>;
58
+ }, z.core.$strict>>;
59
+ bundleSha256: z.ZodString;
60
+ $schema: z.ZodOptional<z.ZodString>;
61
+ schemaVersion: z.ZodLiteral<1>;
62
+ abi: z.ZodLiteral<"domotion-paged-capture-bundle-v1">;
63
+ bundleStem: z.ZodString;
64
+ source: z.ZodObject<{
65
+ url: z.ZodString;
66
+ root: z.ZodObject<{
67
+ selector: z.ZodString;
68
+ identitySha256: z.ZodString;
69
+ }, z.core.$strict>;
70
+ }, z.core.$strict>;
71
+ request: z.ZodObject<{
72
+ paper: z.ZodObject<{
73
+ widthInches: z.ZodNumber;
74
+ heightInches: z.ZodNumber;
75
+ landscape: z.ZodBoolean;
76
+ }, z.core.$strict>;
77
+ marginInches: z.ZodObject<{
78
+ top: z.ZodNumber;
79
+ right: z.ZodNumber;
80
+ bottom: z.ZodNumber;
81
+ left: z.ZodNumber;
82
+ }, z.core.$strict>;
83
+ pageRanges: z.ZodString;
84
+ scale: z.ZodNumber;
85
+ displayHeaderFooter: z.ZodLiteral<false>;
86
+ printBackground: z.ZodBoolean;
87
+ preferCSSPageSize: z.ZodBoolean;
88
+ }, z.core.$strict>;
89
+ sourcePins: z.ZodObject<{
90
+ chromiumRevision: z.ZodLiteral<"7d859f271cbda744098ac69f44978d4edfa62be3">;
91
+ skiaRevision: z.ZodLiteral<"62efacd37737505732dbe3d8daa62abd679626a1">;
92
+ helperAbi: z.ZodLiteral<"domotion-paged-capture-combined-v2">;
93
+ helperPatchSha256: z.ZodLiteral<"a94cda690cb1b0b5d78438ed195b8f4b1df161054b9e8172e6fa26500b87bcba">;
94
+ }, z.core.$strict>;
95
+ }, z.core.$strict>;
96
+ declare const unavailableManifestSchema: z.ZodObject<{
97
+ status: z.ZodLiteral<"unavailable">;
98
+ reasonCode: z.ZodEnum<{
99
+ "stock-chromium": "stock-chromium";
100
+ "helper-mismatch": "helper-mismatch";
101
+ "sidecar-invalid": "sidecar-invalid";
102
+ "page-records-unavailable": "page-records-unavailable";
103
+ "source-restoration-failed": "source-restoration-failed";
104
+ "unsupported-paint": "unsupported-paint";
105
+ }>;
106
+ detail: z.ZodString;
107
+ missingCapabilities: z.ZodArray<z.ZodString>;
108
+ observedRuntime: z.ZodOptional<z.ZodObject<{
109
+ product: z.ZodString;
110
+ revision: z.ZodString;
111
+ protocolVersion: z.ZodString;
112
+ helperAbi: z.ZodNullable<z.ZodString>;
113
+ }, z.core.$strict>>;
114
+ $schema: z.ZodOptional<z.ZodString>;
115
+ schemaVersion: z.ZodLiteral<1>;
116
+ abi: z.ZodLiteral<"domotion-paged-capture-bundle-v1">;
117
+ bundleStem: z.ZodString;
118
+ source: z.ZodObject<{
119
+ url: z.ZodString;
120
+ root: z.ZodObject<{
121
+ selector: z.ZodString;
122
+ identitySha256: z.ZodString;
123
+ }, z.core.$strict>;
124
+ }, z.core.$strict>;
125
+ request: z.ZodObject<{
126
+ paper: z.ZodObject<{
127
+ widthInches: z.ZodNumber;
128
+ heightInches: z.ZodNumber;
129
+ landscape: z.ZodBoolean;
130
+ }, z.core.$strict>;
131
+ marginInches: z.ZodObject<{
132
+ top: z.ZodNumber;
133
+ right: z.ZodNumber;
134
+ bottom: z.ZodNumber;
135
+ left: z.ZodNumber;
136
+ }, z.core.$strict>;
137
+ pageRanges: z.ZodString;
138
+ scale: z.ZodNumber;
139
+ displayHeaderFooter: z.ZodLiteral<false>;
140
+ printBackground: z.ZodBoolean;
141
+ preferCSSPageSize: z.ZodBoolean;
142
+ }, z.core.$strict>;
143
+ sourcePins: z.ZodObject<{
144
+ chromiumRevision: z.ZodLiteral<"7d859f271cbda744098ac69f44978d4edfa62be3">;
145
+ skiaRevision: z.ZodLiteral<"62efacd37737505732dbe3d8daa62abd679626a1">;
146
+ helperAbi: z.ZodLiteral<"domotion-paged-capture-combined-v2">;
147
+ helperPatchSha256: z.ZodLiteral<"a94cda690cb1b0b5d78438ed195b8f4b1df161054b9e8172e6fa26500b87bcba">;
148
+ }, z.core.$strict>;
149
+ }, z.core.$strict>;
150
+ export declare function pagedCaptureBundleDigest(manifest: Omit<AuthenticatedPagedCaptureBundleManifest, "bundleSha256">): string;
151
+ export declare const pagedCaptureBundleManifestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
152
+ status: z.ZodLiteral<"authenticated">;
153
+ helper: z.ZodObject<{
154
+ bundleManifestSha256: z.ZodString;
155
+ executableSha256: z.ZodString;
156
+ runtimeDependenciesSha256: z.ZodString;
157
+ browserProcessId: z.ZodNumber;
158
+ rendererProcessId: z.ZodNumber;
159
+ browserVersion: z.ZodString;
160
+ protocolVersion: z.ZodString;
161
+ }, z.core.$strict>;
162
+ printEpoch: z.ZodObject<{
163
+ epochId: z.ZodString;
164
+ frameId: z.ZodString;
165
+ documentLoaderId: z.ZodString;
166
+ printParametersSha256: z.ZodString;
167
+ lifecycle: z.ZodLiteral<"PrintBegin-to-PrintEnd">;
168
+ logicalTransport: z.ZodLiteral<"blink-private-paged-capture-physical-fragment-tree-v1">;
169
+ logicalFactsDerivedFromPdfVectorOrRaster: z.ZodLiteral<false>;
170
+ sourceRestoredExactly: z.ZodLiteral<true>;
171
+ }, z.core.$strict>;
172
+ pages: z.ZodArray<z.ZodObject<{
173
+ selectionIndex: z.ZodNumber;
174
+ pageIndex: z.ZodNumber;
175
+ pageNumber: z.ZodNumber;
176
+ pageName: z.ZodNullable<z.ZodString>;
177
+ emptyKind: z.ZodEnum<{
178
+ none: "none";
179
+ "forced-blank": "forced-blank";
180
+ "terminal-empty": "terminal-empty";
181
+ }>;
182
+ media: z.ZodLiteral<"print">;
183
+ widthCssPx: z.ZodNumber;
184
+ heightCssPx: z.ZodNumber;
185
+ pageRecordSha256: z.ZodString;
186
+ collapsedBorderConsistencySha256: z.ZodString;
187
+ svg: z.ZodObject<{
188
+ path: z.ZodString;
189
+ byteLength: z.ZodNumber;
190
+ sha256: z.ZodString;
191
+ selfContained: z.ZodLiteral<true>;
192
+ }, z.core.$strict>;
193
+ }, z.core.$strict>>;
194
+ bundleSha256: z.ZodString;
195
+ $schema: z.ZodOptional<z.ZodString>;
196
+ schemaVersion: z.ZodLiteral<1>;
197
+ abi: z.ZodLiteral<"domotion-paged-capture-bundle-v1">;
198
+ bundleStem: z.ZodString;
199
+ source: z.ZodObject<{
200
+ url: z.ZodString;
201
+ root: z.ZodObject<{
202
+ selector: z.ZodString;
203
+ identitySha256: z.ZodString;
204
+ }, z.core.$strict>;
205
+ }, z.core.$strict>;
206
+ request: z.ZodObject<{
207
+ paper: z.ZodObject<{
208
+ widthInches: z.ZodNumber;
209
+ heightInches: z.ZodNumber;
210
+ landscape: z.ZodBoolean;
211
+ }, z.core.$strict>;
212
+ marginInches: z.ZodObject<{
213
+ top: z.ZodNumber;
214
+ right: z.ZodNumber;
215
+ bottom: z.ZodNumber;
216
+ left: z.ZodNumber;
217
+ }, z.core.$strict>;
218
+ pageRanges: z.ZodString;
219
+ scale: z.ZodNumber;
220
+ displayHeaderFooter: z.ZodLiteral<false>;
221
+ printBackground: z.ZodBoolean;
222
+ preferCSSPageSize: z.ZodBoolean;
223
+ }, z.core.$strict>;
224
+ sourcePins: z.ZodObject<{
225
+ chromiumRevision: z.ZodLiteral<"7d859f271cbda744098ac69f44978d4edfa62be3">;
226
+ skiaRevision: z.ZodLiteral<"62efacd37737505732dbe3d8daa62abd679626a1">;
227
+ helperAbi: z.ZodLiteral<"domotion-paged-capture-combined-v2">;
228
+ helperPatchSha256: z.ZodLiteral<"a94cda690cb1b0b5d78438ed195b8f4b1df161054b9e8172e6fa26500b87bcba">;
229
+ }, z.core.$strict>;
230
+ }, z.core.$strict>, z.ZodObject<{
231
+ status: z.ZodLiteral<"unavailable">;
232
+ reasonCode: z.ZodEnum<{
233
+ "stock-chromium": "stock-chromium";
234
+ "helper-mismatch": "helper-mismatch";
235
+ "sidecar-invalid": "sidecar-invalid";
236
+ "page-records-unavailable": "page-records-unavailable";
237
+ "source-restoration-failed": "source-restoration-failed";
238
+ "unsupported-paint": "unsupported-paint";
239
+ }>;
240
+ detail: z.ZodString;
241
+ missingCapabilities: z.ZodArray<z.ZodString>;
242
+ observedRuntime: z.ZodOptional<z.ZodObject<{
243
+ product: z.ZodString;
244
+ revision: z.ZodString;
245
+ protocolVersion: z.ZodString;
246
+ helperAbi: z.ZodNullable<z.ZodString>;
247
+ }, z.core.$strict>>;
248
+ $schema: z.ZodOptional<z.ZodString>;
249
+ schemaVersion: z.ZodLiteral<1>;
250
+ abi: z.ZodLiteral<"domotion-paged-capture-bundle-v1">;
251
+ bundleStem: z.ZodString;
252
+ source: z.ZodObject<{
253
+ url: z.ZodString;
254
+ root: z.ZodObject<{
255
+ selector: z.ZodString;
256
+ identitySha256: z.ZodString;
257
+ }, z.core.$strict>;
258
+ }, z.core.$strict>;
259
+ request: z.ZodObject<{
260
+ paper: z.ZodObject<{
261
+ widthInches: z.ZodNumber;
262
+ heightInches: z.ZodNumber;
263
+ landscape: z.ZodBoolean;
264
+ }, z.core.$strict>;
265
+ marginInches: z.ZodObject<{
266
+ top: z.ZodNumber;
267
+ right: z.ZodNumber;
268
+ bottom: z.ZodNumber;
269
+ left: z.ZodNumber;
270
+ }, z.core.$strict>;
271
+ pageRanges: z.ZodString;
272
+ scale: z.ZodNumber;
273
+ displayHeaderFooter: z.ZodLiteral<false>;
274
+ printBackground: z.ZodBoolean;
275
+ preferCSSPageSize: z.ZodBoolean;
276
+ }, z.core.$strict>;
277
+ sourcePins: z.ZodObject<{
278
+ chromiumRevision: z.ZodLiteral<"7d859f271cbda744098ac69f44978d4edfa62be3">;
279
+ skiaRevision: z.ZodLiteral<"62efacd37737505732dbe3d8daa62abd679626a1">;
280
+ helperAbi: z.ZodLiteral<"domotion-paged-capture-combined-v2">;
281
+ helperPatchSha256: z.ZodLiteral<"a94cda690cb1b0b5d78438ed195b8f4b1df161054b9e8172e6fa26500b87bcba">;
282
+ }, z.core.$strict>;
283
+ }, z.core.$strict>], "status">;
284
+ export type PagedCaptureBundleManifest = z.infer<typeof pagedCaptureBundleManifestSchema>;
285
+ export type AuthenticatedPagedCaptureBundleManifest = z.infer<typeof authenticatedManifestSchema>;
286
+ export type UnavailablePagedCaptureBundleManifest = z.infer<typeof unavailableManifestSchema>;
287
+ export type AuthenticatedPagedCaptureBundleInput = Omit<AuthenticatedPagedCaptureBundleManifest, "bundleSha256">;
288
+ export declare function buildAuthenticatedPagedCaptureBundleManifest(input: AuthenticatedPagedCaptureBundleInput): AuthenticatedPagedCaptureBundleManifest;
289
+ export declare function parsePagedCaptureBundleManifest(input: unknown): PagedCaptureBundleManifest;
290
+ export interface PagedCaptureBundleAssetReader {
291
+ (relativePath: string): Uint8Array | string | null | undefined | Promise<Uint8Array | string | null | undefined>;
292
+ }
293
+ /** Verify that every declared SVG exists, re-hashes, and is self-contained. */
294
+ export declare function verifyPagedCaptureBundleAssets(input: unknown, readAsset: PagedCaptureBundleAssetReader): Promise<string[]>;
295
+ export {};