@protoyard/decks-ui 0.0.0-stage → 1.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 (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +172 -2
  3. package/dist/app/CustomSlide.svelte +42 -0
  4. package/dist/app/CustomSlide.svelte.d.ts +60 -0
  5. package/dist/app/DeckApp.svelte +527 -0
  6. package/dist/app/DeckApp.svelte.d.ts +41 -0
  7. package/dist/app/FreeBlock.svelte +66 -0
  8. package/dist/app/FreeBlock.svelte.d.ts +10 -0
  9. package/dist/app/FreeSlide.svelte +135 -0
  10. package/dist/app/FreeSlide.svelte.d.ts +5 -0
  11. package/dist/app/context.d.ts +14 -0
  12. package/dist/app/context.js +11 -0
  13. package/dist/app/fit.d.ts +39 -0
  14. package/dist/app/fit.js +97 -0
  15. package/dist/app/free-prefetch.d.ts +3 -0
  16. package/dist/app/free-prefetch.js +13 -0
  17. package/dist/app/index.d.ts +6 -0
  18. package/dist/app/index.js +5 -0
  19. package/dist/app/interactive.d.ts +3 -0
  20. package/dist/app/interactive.js +25 -0
  21. package/dist/app/renderers.d.ts +14 -0
  22. package/dist/app/renderers.js +49 -0
  23. package/dist/app/stage-deck.d.ts +40 -0
  24. package/dist/app/stage-deck.js +65 -0
  25. package/dist/debug/BlockOutline.svelte +117 -0
  26. package/dist/debug/BlockOutline.svelte.d.ts +12 -0
  27. package/dist/debug/DeckDebugPanel.svelte +205 -0
  28. package/dist/debug/DeckDebugPanel.svelte.d.ts +18 -0
  29. package/dist/debug/availability.d.ts +19 -0
  30. package/dist/debug/availability.js +27 -0
  31. package/dist/debug/format.d.ts +12 -0
  32. package/dist/debug/format.js +39 -0
  33. package/dist/debug/index.d.ts +10 -0
  34. package/dist/debug/index.js +10 -0
  35. package/dist/index.d.ts +1 -0
  36. package/dist/index.js +7 -0
  37. package/dist/layouts/CustomSlideHost.svelte +97 -0
  38. package/dist/layouts/CustomSlideHost.svelte.d.ts +14 -0
  39. package/dist/layouts/custom-slides.d.ts +28 -0
  40. package/dist/layouts/custom-slides.js +20 -0
  41. package/dist/layouts/index.d.ts +7 -0
  42. package/dist/layouts/index.js +7 -0
  43. package/dist/player.css +6 -0
  44. package/dist/player.css.d.ts +1 -0
  45. package/dist/studio/DeckStudioPanel.svelte +261 -0
  46. package/dist/studio/DeckStudioPanel.svelte.d.ts +8 -0
  47. package/dist/studio/StudioIcon.svelte +9 -0
  48. package/dist/studio/StudioIcon.svelte.d.ts +6 -0
  49. package/dist/studio/index.d.ts +26 -0
  50. package/dist/studio/index.js +21 -0
  51. package/dist/studio/studio.svelte.d.ts +565 -0
  52. package/dist/studio/studio.svelte.js +85 -0
  53. package/dist/styles.css +5 -0
  54. package/dist/styles.css.d.ts +1 -0
  55. package/package.json +106 -3
@@ -0,0 +1,565 @@
1
+ import { applyDeckEdits, type DeckStudioEdits, type DeckStudioSlideKey, type DeckStudioStyleKey } from '@protoyard/decks/patch';
2
+ import type { Deck } from '@protoyard/decks/schema';
3
+ type SlideEdit = NonNullable<DeckStudioEdits['slides']>[string];
4
+ type HashTarget = Pick<Window, 'addEventListener' | 'removeEventListener' | 'location'>;
5
+ type DeckPatch = ReturnType<typeof applyDeckEdits>['patch'];
6
+ export interface DeckStudioOptions {
7
+ /**
8
+ * JSON Pointer of the deck inside the file the patch is for: `/deck` for a
9
+ * deck blueprint (`{ "kind": "deck", "deck": { … } }`). Default: the patch
10
+ * targets the deck document itself.
11
+ */
12
+ pointer?: '' | `/${string}`;
13
+ }
14
+ /** Re-roots every operation of a deck patch under `pointer`. */
15
+ export declare function prefixDeckPatch(patch: DeckPatch, pointer?: DeckStudioOptions['pointer']): DeckPatch;
16
+ /**
17
+ * Deck Studio state: the source deck, the edits made so far, and everything
18
+ * derived from them — the live `preview` deck (hand it to `DeckApp`), the RFC
19
+ * 6902 `patch` that turns the source JSON into that preview, and any schema
20
+ * `issues`. Edits stay in memory: nothing is written to tables or files.
21
+ */
22
+ export declare function createDeckStudio(sourceDeck: Deck, studioOptions?: DeckStudioOptions): {
23
+ source: {
24
+ style: {
25
+ theme?: string | undefined;
26
+ paletteSeed?: number | undefined;
27
+ fontPair?: string | undefined;
28
+ aspect?: "16:9" | "4:3" | "9:16" | "1:1" | undefined;
29
+ density?: "compact" | "comfortable" | "spacious" | undefined;
30
+ radius?: "none" | "small" | "medium" | "large" | "full" | undefined;
31
+ motion?: "none" | "full" | "subtle" | undefined;
32
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
33
+ background?: string | undefined;
34
+ logo?: string | undefined;
35
+ footer?: string | undefined;
36
+ slideNumbers?: boolean | undefined;
37
+ progress?: "top" | "bottom" | "none" | undefined;
38
+ };
39
+ slides: ({
40
+ layout: string;
41
+ props: Record<string, string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
42
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
43
+ } | null)[] | {
44
+ [key: string]: string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null;
45
+ } | null)[] | {
46
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
47
+ } | null)[] | {
48
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
49
+ } | null)[] | {
50
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
51
+ } | null)[] | {
52
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
53
+ } | null)[] | {
54
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
55
+ } | null)[] | {
56
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
57
+ } | null)[] | {
58
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
59
+ } | null)[] | {
60
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
61
+ } | null)[] | {
62
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
63
+ } | null)[] | {
64
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
65
+ } | null>;
66
+ id: string;
67
+ title?: string | undefined;
68
+ background?: string | {
69
+ kind: "solid";
70
+ token?: "background" | "accent" | "surface" | "primary" | "muted" | "inverse" | undefined;
71
+ } | {
72
+ kind: "gradient";
73
+ gradient: "brand" | "dusk" | "dawn" | "forest" | "mist";
74
+ angle?: number | undefined;
75
+ } | {
76
+ kind: "pattern";
77
+ pattern: "dots" | "grid";
78
+ } | {
79
+ kind: "image" | "image-full";
80
+ src: string;
81
+ tone?: "dark" | "light" | undefined;
82
+ overlay?: number | undefined;
83
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
84
+ alt?: string | undefined;
85
+ fit?: "cover" | "contain" | undefined;
86
+ } | {
87
+ kind: "video" | "video-full";
88
+ src: string;
89
+ tone?: "dark" | "light" | undefined;
90
+ overlay?: number | undefined;
91
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
92
+ poster?: string | undefined;
93
+ } | undefined;
94
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
95
+ steps?: string[] | undefined;
96
+ notes?: string | undefined;
97
+ hidden?: boolean | undefined;
98
+ } | {
99
+ layout: "free";
100
+ blocks: import("@protoyard/blocks").Block[];
101
+ id: string;
102
+ title?: string | undefined;
103
+ background?: string | {
104
+ kind: "solid";
105
+ token?: "background" | "accent" | "surface" | "primary" | "muted" | "inverse" | undefined;
106
+ } | {
107
+ kind: "gradient";
108
+ gradient: "brand" | "dusk" | "dawn" | "forest" | "mist";
109
+ angle?: number | undefined;
110
+ } | {
111
+ kind: "pattern";
112
+ pattern: "dots" | "grid";
113
+ } | {
114
+ kind: "image" | "image-full";
115
+ src: string;
116
+ tone?: "dark" | "light" | undefined;
117
+ overlay?: number | undefined;
118
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
119
+ alt?: string | undefined;
120
+ fit?: "cover" | "contain" | undefined;
121
+ } | {
122
+ kind: "video" | "video-full";
123
+ src: string;
124
+ tone?: "dark" | "light" | undefined;
125
+ overlay?: number | undefined;
126
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
127
+ poster?: string | undefined;
128
+ } | undefined;
129
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
130
+ steps?: string[] | undefined;
131
+ notes?: string | undefined;
132
+ hidden?: boolean | undefined;
133
+ } | {
134
+ layout: "custom";
135
+ props: {
136
+ component: string;
137
+ data?: Record<string, string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
138
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
139
+ } | null)[] | {
140
+ [key: string]: string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null;
141
+ } | null)[] | {
142
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
143
+ } | null)[] | {
144
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
145
+ } | null)[] | {
146
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
147
+ } | null)[] | {
148
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
149
+ } | null)[] | {
150
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
151
+ } | null)[] | {
152
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
153
+ } | null)[] | {
154
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
155
+ } | null)[] | {
156
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
157
+ } | null)[] | {
158
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
159
+ } | null)[] | {
160
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
161
+ } | null> | undefined;
162
+ };
163
+ id: string;
164
+ title?: string | undefined;
165
+ background?: string | {
166
+ kind: "solid";
167
+ token?: "background" | "accent" | "surface" | "primary" | "muted" | "inverse" | undefined;
168
+ } | {
169
+ kind: "gradient";
170
+ gradient: "brand" | "dusk" | "dawn" | "forest" | "mist";
171
+ angle?: number | undefined;
172
+ } | {
173
+ kind: "pattern";
174
+ pattern: "dots" | "grid";
175
+ } | {
176
+ kind: "image" | "image-full";
177
+ src: string;
178
+ tone?: "dark" | "light" | undefined;
179
+ overlay?: number | undefined;
180
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
181
+ alt?: string | undefined;
182
+ fit?: "cover" | "contain" | undefined;
183
+ } | {
184
+ kind: "video" | "video-full";
185
+ src: string;
186
+ tone?: "dark" | "light" | undefined;
187
+ overlay?: number | undefined;
188
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
189
+ poster?: string | undefined;
190
+ } | undefined;
191
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
192
+ steps?: string[] | undefined;
193
+ notes?: string | undefined;
194
+ hidden?: boolean | undefined;
195
+ })[];
196
+ outline?: {
197
+ sections: {
198
+ id: string;
199
+ slideIds: string[];
200
+ title?: string | undefined;
201
+ }[];
202
+ title?: string | undefined;
203
+ } | undefined;
204
+ };
205
+ readonly edits: DeckStudioEdits;
206
+ /** The slide the slide controls edit (follows the deck's `#/<id>/<step>` hash). */
207
+ readonly slideId: string;
208
+ /** The edited deck, or the source while the edits do not validate. */
209
+ readonly preview: {
210
+ style: {
211
+ theme?: string | undefined;
212
+ paletteSeed?: number | undefined;
213
+ fontPair?: string | undefined;
214
+ aspect?: "16:9" | "4:3" | "9:16" | "1:1" | undefined;
215
+ density?: "compact" | "comfortable" | "spacious" | undefined;
216
+ radius?: "none" | "small" | "medium" | "large" | "full" | undefined;
217
+ motion?: "none" | "full" | "subtle" | undefined;
218
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
219
+ background?: string | undefined;
220
+ logo?: string | undefined;
221
+ footer?: string | undefined;
222
+ slideNumbers?: boolean | undefined;
223
+ progress?: "top" | "bottom" | "none" | undefined;
224
+ };
225
+ slides: ({
226
+ layout: string;
227
+ props: Record<string, string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
228
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
229
+ } | null)[] | {
230
+ [key: string]: string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null;
231
+ } | null)[] | {
232
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
233
+ } | null)[] | {
234
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
235
+ } | null)[] | {
236
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
237
+ } | null)[] | {
238
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
239
+ } | null)[] | {
240
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
241
+ } | null)[] | {
242
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
243
+ } | null)[] | {
244
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
245
+ } | null)[] | {
246
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
247
+ } | null)[] | {
248
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
249
+ } | null)[] | {
250
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
251
+ } | null>;
252
+ id: string;
253
+ title?: string | undefined;
254
+ background?: string | {
255
+ kind: "solid";
256
+ token?: "background" | "accent" | "surface" | "primary" | "muted" | "inverse" | undefined;
257
+ } | {
258
+ kind: "gradient";
259
+ gradient: "brand" | "dusk" | "dawn" | "forest" | "mist";
260
+ angle?: number | undefined;
261
+ } | {
262
+ kind: "pattern";
263
+ pattern: "dots" | "grid";
264
+ } | {
265
+ kind: "image" | "image-full";
266
+ src: string;
267
+ tone?: "dark" | "light" | undefined;
268
+ overlay?: number | undefined;
269
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
270
+ alt?: string | undefined;
271
+ fit?: "cover" | "contain" | undefined;
272
+ } | {
273
+ kind: "video" | "video-full";
274
+ src: string;
275
+ tone?: "dark" | "light" | undefined;
276
+ overlay?: number | undefined;
277
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
278
+ poster?: string | undefined;
279
+ } | undefined;
280
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
281
+ steps?: string[] | undefined;
282
+ notes?: string | undefined;
283
+ hidden?: boolean | undefined;
284
+ } | {
285
+ layout: "free";
286
+ blocks: import("@protoyard/blocks").Block[];
287
+ id: string;
288
+ title?: string | undefined;
289
+ background?: string | {
290
+ kind: "solid";
291
+ token?: "background" | "accent" | "surface" | "primary" | "muted" | "inverse" | undefined;
292
+ } | {
293
+ kind: "gradient";
294
+ gradient: "brand" | "dusk" | "dawn" | "forest" | "mist";
295
+ angle?: number | undefined;
296
+ } | {
297
+ kind: "pattern";
298
+ pattern: "dots" | "grid";
299
+ } | {
300
+ kind: "image" | "image-full";
301
+ src: string;
302
+ tone?: "dark" | "light" | undefined;
303
+ overlay?: number | undefined;
304
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
305
+ alt?: string | undefined;
306
+ fit?: "cover" | "contain" | undefined;
307
+ } | {
308
+ kind: "video" | "video-full";
309
+ src: string;
310
+ tone?: "dark" | "light" | undefined;
311
+ overlay?: number | undefined;
312
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
313
+ poster?: string | undefined;
314
+ } | undefined;
315
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
316
+ steps?: string[] | undefined;
317
+ notes?: string | undefined;
318
+ hidden?: boolean | undefined;
319
+ } | {
320
+ layout: "custom";
321
+ props: {
322
+ component: string;
323
+ data?: Record<string, string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
324
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
325
+ } | null)[] | {
326
+ [key: string]: string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null;
327
+ } | null)[] | {
328
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
329
+ } | null)[] | {
330
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
331
+ } | null)[] | {
332
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
333
+ } | null)[] | {
334
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
335
+ } | null)[] | {
336
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
337
+ } | null)[] | {
338
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
339
+ } | null)[] | {
340
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
341
+ } | null)[] | {
342
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
343
+ } | null)[] | {
344
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
345
+ } | null)[] | {
346
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
347
+ } | null> | undefined;
348
+ };
349
+ id: string;
350
+ title?: string | undefined;
351
+ background?: string | {
352
+ kind: "solid";
353
+ token?: "background" | "accent" | "surface" | "primary" | "muted" | "inverse" | undefined;
354
+ } | {
355
+ kind: "gradient";
356
+ gradient: "brand" | "dusk" | "dawn" | "forest" | "mist";
357
+ angle?: number | undefined;
358
+ } | {
359
+ kind: "pattern";
360
+ pattern: "dots" | "grid";
361
+ } | {
362
+ kind: "image" | "image-full";
363
+ src: string;
364
+ tone?: "dark" | "light" | undefined;
365
+ overlay?: number | undefined;
366
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
367
+ alt?: string | undefined;
368
+ fit?: "cover" | "contain" | undefined;
369
+ } | {
370
+ kind: "video" | "video-full";
371
+ src: string;
372
+ tone?: "dark" | "light" | undefined;
373
+ overlay?: number | undefined;
374
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
375
+ poster?: string | undefined;
376
+ } | undefined;
377
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
378
+ steps?: string[] | undefined;
379
+ notes?: string | undefined;
380
+ hidden?: boolean | undefined;
381
+ })[];
382
+ outline?: {
383
+ sections: {
384
+ id: string;
385
+ slideIds: string[];
386
+ title?: string | undefined;
387
+ }[];
388
+ title?: string | undefined;
389
+ } | undefined;
390
+ };
391
+ /** The RFC 6902 patch for the source file (rooted at `pointer`). */
392
+ readonly patch: import("@protoyard/decks/patch").DeckPatchOperation[];
393
+ readonly patchJson: string;
394
+ readonly issues: {
395
+ jsonPath: string;
396
+ message: string;
397
+ }[];
398
+ readonly slide: {
399
+ layout: string;
400
+ props: Record<string, string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
401
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
402
+ } | null)[] | {
403
+ [key: string]: string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null;
404
+ } | null)[] | {
405
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
406
+ } | null)[] | {
407
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
408
+ } | null)[] | {
409
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
410
+ } | null)[] | {
411
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
412
+ } | null)[] | {
413
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
414
+ } | null)[] | {
415
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
416
+ } | null)[] | {
417
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
418
+ } | null)[] | {
419
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
420
+ } | null)[] | {
421
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
422
+ } | null)[] | {
423
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
424
+ } | null>;
425
+ id: string;
426
+ title?: string | undefined;
427
+ background?: string | {
428
+ kind: "solid";
429
+ token?: "background" | "accent" | "surface" | "primary" | "muted" | "inverse" | undefined;
430
+ } | {
431
+ kind: "gradient";
432
+ gradient: "brand" | "dusk" | "dawn" | "forest" | "mist";
433
+ angle?: number | undefined;
434
+ } | {
435
+ kind: "pattern";
436
+ pattern: "dots" | "grid";
437
+ } | {
438
+ kind: "image" | "image-full";
439
+ src: string;
440
+ tone?: "dark" | "light" | undefined;
441
+ overlay?: number | undefined;
442
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
443
+ alt?: string | undefined;
444
+ fit?: "cover" | "contain" | undefined;
445
+ } | {
446
+ kind: "video" | "video-full";
447
+ src: string;
448
+ tone?: "dark" | "light" | undefined;
449
+ overlay?: number | undefined;
450
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
451
+ poster?: string | undefined;
452
+ } | undefined;
453
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
454
+ steps?: string[] | undefined;
455
+ notes?: string | undefined;
456
+ hidden?: boolean | undefined;
457
+ } | {
458
+ layout: "free";
459
+ blocks: import("@protoyard/blocks").Block[];
460
+ id: string;
461
+ title?: string | undefined;
462
+ background?: string | {
463
+ kind: "solid";
464
+ token?: "background" | "accent" | "surface" | "primary" | "muted" | "inverse" | undefined;
465
+ } | {
466
+ kind: "gradient";
467
+ gradient: "brand" | "dusk" | "dawn" | "forest" | "mist";
468
+ angle?: number | undefined;
469
+ } | {
470
+ kind: "pattern";
471
+ pattern: "dots" | "grid";
472
+ } | {
473
+ kind: "image" | "image-full";
474
+ src: string;
475
+ tone?: "dark" | "light" | undefined;
476
+ overlay?: number | undefined;
477
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
478
+ alt?: string | undefined;
479
+ fit?: "cover" | "contain" | undefined;
480
+ } | {
481
+ kind: "video" | "video-full";
482
+ src: string;
483
+ tone?: "dark" | "light" | undefined;
484
+ overlay?: number | undefined;
485
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
486
+ poster?: string | undefined;
487
+ } | undefined;
488
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
489
+ steps?: string[] | undefined;
490
+ notes?: string | undefined;
491
+ hidden?: boolean | undefined;
492
+ } | {
493
+ layout: "custom";
494
+ props: {
495
+ component: string;
496
+ data?: Record<string, string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
497
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
498
+ } | null)[] | {
499
+ [key: string]: string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null;
500
+ } | null)[] | {
501
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
502
+ } | null)[] | {
503
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
504
+ } | null)[] | {
505
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
506
+ } | null)[] | {
507
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
508
+ } | null)[] | {
509
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
510
+ } | null)[] | {
511
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
512
+ } | null)[] | {
513
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
514
+ } | null)[] | {
515
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
516
+ } | null)[] | {
517
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
518
+ } | null)[] | {
519
+ [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
520
+ } | null> | undefined;
521
+ };
522
+ id: string;
523
+ title?: string | undefined;
524
+ background?: string | {
525
+ kind: "solid";
526
+ token?: "background" | "accent" | "surface" | "primary" | "muted" | "inverse" | undefined;
527
+ } | {
528
+ kind: "gradient";
529
+ gradient: "brand" | "dusk" | "dawn" | "forest" | "mist";
530
+ angle?: number | undefined;
531
+ } | {
532
+ kind: "pattern";
533
+ pattern: "dots" | "grid";
534
+ } | {
535
+ kind: "image" | "image-full";
536
+ src: string;
537
+ tone?: "dark" | "light" | undefined;
538
+ overlay?: number | undefined;
539
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
540
+ alt?: string | undefined;
541
+ fit?: "cover" | "contain" | undefined;
542
+ } | {
543
+ kind: "video" | "video-full";
544
+ src: string;
545
+ tone?: "dark" | "light" | undefined;
546
+ overlay?: number | undefined;
547
+ position?: "center" | "top" | "bottom" | "left" | "right" | undefined;
548
+ poster?: string | undefined;
549
+ } | undefined;
550
+ transition?: "fade-up" | "fade" | "none" | "slide" | "zoom" | "morph" | undefined;
551
+ steps?: string[] | undefined;
552
+ notes?: string | undefined;
553
+ hidden?: boolean | undefined;
554
+ } | undefined;
555
+ /** Layouts the current slide's content already fits, so switching never drops content. */
556
+ readonly layoutChoices: string[];
557
+ setStyle<K extends DeckStudioStyleKey>(key: K, value: Deck["style"][K] | null): void;
558
+ setSlide<K extends DeckStudioSlideKey>(key: K, value: SlideEdit[K]): void;
559
+ selectSlide: (id: string) => void;
560
+ reset(): void;
561
+ /** Follows the deck hash so the slide controls edit what is on screen. Returns a stop function. */
562
+ followHash(target?: HashTarget): () => void;
563
+ };
564
+ export type DeckStudio = ReturnType<typeof createDeckStudio>;
565
+ export {};