@sudobility/screenwriter_types 0.1.1

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 (65) hide show
  1. package/CLAUDE.md +50 -0
  2. package/README.md +34 -0
  3. package/dist/account/index.d.ts +440 -0
  4. package/dist/account/index.js +274 -0
  5. package/dist/admin/index.d.ts +95 -0
  6. package/dist/admin/index.js +20 -0
  7. package/dist/ai/index.d.ts +564 -0
  8. package/dist/ai/index.js +179 -0
  9. package/dist/api/envelope.d.ts +33 -0
  10. package/dist/api/envelope.js +140 -0
  11. package/dist/api/pagination.d.ts +7 -0
  12. package/dist/api/pagination.js +9 -0
  13. package/dist/api/routes.d.ts +273 -0
  14. package/dist/api/routes.js +306 -0
  15. package/dist/assets/index.d.ts +722 -0
  16. package/dist/assets/index.js +452 -0
  17. package/dist/collab/index.d.ts +214 -0
  18. package/dist/collab/index.js +211 -0
  19. package/dist/commands/index.d.ts +92 -0
  20. package/dist/commands/index.js +20 -0
  21. package/dist/credits/index.d.ts +26 -0
  22. package/dist/credits/index.js +7 -0
  23. package/dist/formats/index.d.ts +87 -0
  24. package/dist/formats/index.js +26 -0
  25. package/dist/ids/index.d.ts +2 -0
  26. package/dist/ids/index.js +2 -0
  27. package/dist/index.d.ts +33 -0
  28. package/dist/index.js +33 -0
  29. package/dist/io/index.d.ts +395 -0
  30. package/dist/io/index.js +161 -0
  31. package/dist/jobs/index.d.ts +278 -0
  32. package/dist/jobs/index.js +138 -0
  33. package/dist/keys/index.d.ts +53 -0
  34. package/dist/keys/index.js +22 -0
  35. package/dist/lifecycle/index.d.ts +263 -0
  36. package/dist/lifecycle/index.js +148 -0
  37. package/dist/me/index.d.ts +35 -0
  38. package/dist/me/index.js +18 -0
  39. package/dist/packets/index.d.ts +887 -0
  40. package/dist/packets/index.js +312 -0
  41. package/dist/projects/index.d.ts +201 -0
  42. package/dist/projects/index.js +75 -0
  43. package/dist/public/index.d.ts +95 -0
  44. package/dist/public/index.js +25 -0
  45. package/dist/reads/index.d.ts +387 -0
  46. package/dist/reads/index.js +118 -0
  47. package/dist/reports/index.d.ts +168 -0
  48. package/dist/reports/index.js +466 -0
  49. package/dist/sharing/index.d.ts +256 -0
  50. package/dist/sharing/index.js +91 -0
  51. package/dist/sync/codec.d.ts +7 -0
  52. package/dist/sync/codec.js +91 -0
  53. package/dist/sync/index.d.ts +382 -0
  54. package/dist/sync/index.js +262 -0
  55. package/dist/sync/permissions.d.ts +22 -0
  56. package/dist/sync/permissions.js +11 -0
  57. package/dist/templates/index.d.ts +1699 -0
  58. package/dist/templates/index.js +70 -0
  59. package/dist/tenancy/index.d.ts +116 -0
  60. package/dist/tenancy/index.js +102 -0
  61. package/dist/test/index.d.ts +8 -0
  62. package/dist/test/index.js +88 -0
  63. package/dist/versions/index.d.ts +335 -0
  64. package/dist/versions/index.js +107 -0
  65. package/package.json +62 -0
@@ -0,0 +1,1699 @@
1
+ import { z } from 'zod';
2
+ import type { TemplateCategory } from '@sudobility/writing_core';
3
+ export type TemplateScope = 'builtin' | 'user' | 'workspace';
4
+ /** `GET /templates` item (spec 05 §6.8). The full body is writing_core's Template. */
5
+ export interface TemplateSummary {
6
+ id: string;
7
+ scope: TemplateScope;
8
+ builtinKey: string | null;
9
+ /** Set for `workspace` templates. */
10
+ workspaceId: string | null;
11
+ name: string;
12
+ description: string | null;
13
+ category: TemplateCategory;
14
+ latestVersion: number;
15
+ /** A first-page thumbnail was rendered (`template.thumbnail` job). Built-ins use static assets, so this is false for them. */
16
+ hasThumbnail: boolean;
17
+ }
18
+ /** `GET /templates` query: user templates always; `workspaceId` adds that workspace's; `scope` narrows. */
19
+ export declare const templateListQuerySchema: z.ZodObject<{
20
+ category: z.ZodOptional<z.ZodString>;
21
+ workspaceId: z.ZodOptional<z.ZodString>;
22
+ scope: z.ZodOptional<z.ZodEnum<{
23
+ workspace: "workspace";
24
+ builtin: "builtin";
25
+ user: "user";
26
+ }>>;
27
+ }, z.core.$strip>;
28
+ export type TemplateListQuery = z.infer<typeof templateListQuerySchema>;
29
+ /** `GET /templates/:tid?version=`: an older version of a user/workspace template (immutable). */
30
+ export declare const templateGetQuerySchema: z.ZodObject<{
31
+ version: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
32
+ }, z.core.$strip>;
33
+ export declare const templateCreateSchema: z.ZodObject<{
34
+ scope: z.ZodEnum<{
35
+ workspace: "workspace";
36
+ user: "user";
37
+ }>;
38
+ workspaceId: z.ZodOptional<z.ZodString>;
39
+ template: z.ZodCustom<{
40
+ schemaVersion: 1;
41
+ id: import("@sudobility/writing_core").Id<"tpl">;
42
+ key: string | null;
43
+ version: number;
44
+ name: string;
45
+ nameKey: string | null;
46
+ description: string;
47
+ category: "outline" | "treatment" | "custom" | "screenplay" | "television" | "stagePlay" | "radio" | "audioVisual" | "multimedia" | "graphicNovel" | "prose" | "letter" | "verticalDrama";
48
+ locale: string;
49
+ direction: "ltr" | "rtl";
50
+ layoutMode: "flow" | "panels";
51
+ page: {
52
+ paper: "custom" | "letter" | "a4" | "legal" | "a5" | "b5";
53
+ width: number;
54
+ height: number;
55
+ orientation: "portrait" | "landscape";
56
+ margins: {
57
+ top: number;
58
+ bottom: number;
59
+ left: number;
60
+ right: number;
61
+ };
62
+ headerOffset: number;
63
+ footerOffset: number;
64
+ linesPerInch: number;
65
+ elementSpacing: number;
66
+ lineSpacingPreset: "normal" | "veryTight" | "tight" | "loose";
67
+ bindingGutter: number;
68
+ };
69
+ header: {
70
+ enabled: boolean;
71
+ left: string;
72
+ center: string;
73
+ right: string;
74
+ styleId: import("@sudobility/writing_core").StyleId | null;
75
+ showOnFirstPage: boolean;
76
+ showOnTitlePage: boolean;
77
+ startAtPage: number;
78
+ };
79
+ footer: {
80
+ enabled: boolean;
81
+ left: string;
82
+ center: string;
83
+ right: string;
84
+ styleId: import("@sudobility/writing_core").StyleId | null;
85
+ showOnFirstPage: boolean;
86
+ showOnTitlePage: boolean;
87
+ startAtPage: number;
88
+ };
89
+ styles: {
90
+ id: import("@sudobility/writing_core").StyleId;
91
+ name: string;
92
+ nameKey: string | null;
93
+ role: "outline" | "action" | "character" | "dialogue" | "page" | "note" | "shot" | "synopsis" | "parenthetical" | "normal" | "sceneHeading" | "transition" | "lyrics" | "castList" | "actStart" | "actEnd" | "sequence" | "notation" | "soundCue" | "panel" | "chapter" | "paragraph" | "subheading" | "quotation" | "blockText" | "chapterEnd" | "titleText";
94
+ basedOn: import("@sudobility/writing_core").StyleId | null;
95
+ shortcut: number | null;
96
+ font: {
97
+ family?: string | undefined;
98
+ size?: number | undefined;
99
+ bold?: boolean | undefined;
100
+ italic?: boolean | undefined;
101
+ underline?: "word" | "single" | "double" | "dotted" | null | undefined;
102
+ strike?: boolean | undefined;
103
+ smallCaps?: boolean | undefined;
104
+ color?: string | undefined;
105
+ };
106
+ allCaps?: boolean | undefined;
107
+ align?: "left" | "right" | "center" | "justify" | undefined;
108
+ indentLeft?: number | undefined;
109
+ indentRight?: number | undefined;
110
+ indentFirstLine?: number | undefined;
111
+ spaceBefore?: number | undefined;
112
+ lineSpacing?: number | undefined;
113
+ column?: 0 | 2 | 1 | undefined;
114
+ keepWithNext?: boolean | undefined;
115
+ keepTogether?: boolean | undefined;
116
+ splitRule?: "never" | "lines" | "sentences" | undefined;
117
+ pageBreakBefore?: boolean | undefined;
118
+ actBreak?: boolean | undefined;
119
+ paginateAs?: import("@sudobility/writing_core").StyleId | null | undefined;
120
+ hiddenInScript?: boolean | undefined;
121
+ printable?: boolean | undefined;
122
+ outlineLevel?: number | undefined;
123
+ flow?: {
124
+ onEnter?: import("@sudobility/writing_core").StyleId | null | undefined;
125
+ onEnterEmpty?: "flow" | import("@sudobility/writing_core").StyleId | "picker" | undefined;
126
+ onTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
127
+ onTabText?: import("@sudobility/writing_core").StyleId | null | undefined;
128
+ onShiftTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
129
+ } | undefined;
130
+ numbering?: {
131
+ enabled: boolean;
132
+ counter: "base" | "own";
133
+ start: number;
134
+ format: string;
135
+ position: "left" | "right" | "both" | "inline";
136
+ leftOffset: number;
137
+ rightOffset: number;
138
+ hideRightOnOverlap: boolean;
139
+ resetAfterStyle: import("@sudobility/writing_core").StyleId | null;
140
+ resetEvery: number;
141
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
142
+ skipIO: boolean;
143
+ autoOmit: boolean;
144
+ omittedText: string | null;
145
+ numberFont: {
146
+ family?: string | undefined;
147
+ size?: number | undefined;
148
+ bold?: boolean | undefined;
149
+ italic?: boolean | undefined;
150
+ } | null;
151
+ } | null | undefined;
152
+ prefix?: string | undefined;
153
+ suffix?: string | undefined;
154
+ smartTypeList?: "characters" | "times" | "extensions" | "sceneIntros" | "locations" | "transitions" | "soundCues" | null | undefined;
155
+ dualDialogue?: boolean | undefined;
156
+ }[];
157
+ titlePageStyles: {
158
+ id: import("@sudobility/writing_core").StyleId;
159
+ name: string;
160
+ nameKey: string | null;
161
+ role: "outline" | "action" | "character" | "dialogue" | "page" | "note" | "shot" | "synopsis" | "parenthetical" | "normal" | "sceneHeading" | "transition" | "lyrics" | "castList" | "actStart" | "actEnd" | "sequence" | "notation" | "soundCue" | "panel" | "chapter" | "paragraph" | "subheading" | "quotation" | "blockText" | "chapterEnd" | "titleText";
162
+ basedOn: import("@sudobility/writing_core").StyleId | null;
163
+ shortcut: number | null;
164
+ font: {
165
+ family?: string | undefined;
166
+ size?: number | undefined;
167
+ bold?: boolean | undefined;
168
+ italic?: boolean | undefined;
169
+ underline?: "word" | "single" | "double" | "dotted" | null | undefined;
170
+ strike?: boolean | undefined;
171
+ smallCaps?: boolean | undefined;
172
+ color?: string | undefined;
173
+ };
174
+ allCaps?: boolean | undefined;
175
+ align?: "left" | "right" | "center" | "justify" | undefined;
176
+ indentLeft?: number | undefined;
177
+ indentRight?: number | undefined;
178
+ indentFirstLine?: number | undefined;
179
+ spaceBefore?: number | undefined;
180
+ lineSpacing?: number | undefined;
181
+ column?: 0 | 2 | 1 | undefined;
182
+ keepWithNext?: boolean | undefined;
183
+ keepTogether?: boolean | undefined;
184
+ splitRule?: "never" | "lines" | "sentences" | undefined;
185
+ pageBreakBefore?: boolean | undefined;
186
+ actBreak?: boolean | undefined;
187
+ paginateAs?: import("@sudobility/writing_core").StyleId | null | undefined;
188
+ hiddenInScript?: boolean | undefined;
189
+ printable?: boolean | undefined;
190
+ outlineLevel?: number | undefined;
191
+ flow?: {
192
+ onEnter?: import("@sudobility/writing_core").StyleId | null | undefined;
193
+ onEnterEmpty?: "flow" | import("@sudobility/writing_core").StyleId | "picker" | undefined;
194
+ onTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
195
+ onTabText?: import("@sudobility/writing_core").StyleId | null | undefined;
196
+ onShiftTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
197
+ } | undefined;
198
+ numbering?: {
199
+ enabled: boolean;
200
+ counter: "base" | "own";
201
+ start: number;
202
+ format: string;
203
+ position: "left" | "right" | "both" | "inline";
204
+ leftOffset: number;
205
+ rightOffset: number;
206
+ hideRightOnOverlap: boolean;
207
+ resetAfterStyle: import("@sudobility/writing_core").StyleId | null;
208
+ resetEvery: number;
209
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
210
+ skipIO: boolean;
211
+ autoOmit: boolean;
212
+ omittedText: string | null;
213
+ numberFont: {
214
+ family?: string | undefined;
215
+ size?: number | undefined;
216
+ bold?: boolean | undefined;
217
+ italic?: boolean | undefined;
218
+ } | null;
219
+ } | null | undefined;
220
+ prefix?: string | undefined;
221
+ suffix?: string | undefined;
222
+ smartTypeList?: "characters" | "times" | "extensions" | "sceneIntros" | "locations" | "transitions" | "soundCues" | null | undefined;
223
+ dualDialogue?: boolean | undefined;
224
+ }[];
225
+ titlePageLayout: {
226
+ centerTop: number;
227
+ };
228
+ defaults: {
229
+ root: import("@sudobility/writing_core").StyleId;
230
+ firstElement: import("@sudobility/writing_core").StyleId;
231
+ pasteFallback: import("@sudobility/writing_core").StyleId;
232
+ sceneHeading: import("@sudobility/writing_core").StyleId | null;
233
+ character: import("@sudobility/writing_core").StyleId | null;
234
+ dialogue: import("@sudobility/writing_core").StyleId | null;
235
+ parenthetical: import("@sudobility/writing_core").StyleId | null;
236
+ action: import("@sudobility/writing_core").StyleId | null;
237
+ transition: import("@sudobility/writing_core").StyleId | null;
238
+ titleDefault: import("@sudobility/writing_core").StyleId;
239
+ };
240
+ pagination: {
241
+ breakOnSentences: boolean;
242
+ dialogue: {
243
+ allowBreaks: boolean;
244
+ minLinesBeforeBreak: number;
245
+ minLinesAfterBreak: number;
246
+ moreAtBottom: boolean;
247
+ contAtTop: boolean;
248
+ };
249
+ automaticContinueds: {
250
+ enabled: boolean;
251
+ scope: "scene";
252
+ };
253
+ sceneContinueds: {
254
+ bottom: boolean;
255
+ top: boolean;
256
+ numbered: boolean;
257
+ topBlankLines: number;
258
+ bottomBlankLines: number;
259
+ };
260
+ widowOrphan: {
261
+ minLinesAtPageBottom: number;
262
+ minLinesAtPageTop: number;
263
+ };
264
+ keepWithNextMinLines: number;
265
+ headingsNeverOrphaned: boolean;
266
+ dualDialogue: {
267
+ enabled: boolean;
268
+ columnGap: number;
269
+ stackWhileEditing: boolean;
270
+ geometry: {
271
+ character: {
272
+ leftSide: {
273
+ left: number;
274
+ right: number;
275
+ };
276
+ rightSide: {
277
+ left: number;
278
+ right: number;
279
+ };
280
+ };
281
+ parenthetical: {
282
+ leftSide: {
283
+ left: number;
284
+ right: number;
285
+ };
286
+ rightSide: {
287
+ left: number;
288
+ right: number;
289
+ };
290
+ };
291
+ dialogue: {
292
+ leftSide: {
293
+ left: number;
294
+ right: number;
295
+ };
296
+ rightSide: {
297
+ left: number;
298
+ right: number;
299
+ };
300
+ };
301
+ } | null;
302
+ };
303
+ columnBlocks: {
304
+ gap: number;
305
+ breakBlocks: boolean;
306
+ };
307
+ actBreakStartsPage: boolean;
308
+ combineConsecutiveOmitted: boolean;
309
+ runningTime: {
310
+ method: "pages" | "words";
311
+ wordsPerMinute: number;
312
+ soundCueSeconds: number;
313
+ };
314
+ panels: {
315
+ autoHeadingText: boolean;
316
+ };
317
+ };
318
+ pageNumbering: {
319
+ start: number;
320
+ format: string;
321
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
322
+ skipIO: boolean;
323
+ combineDeletedRanges: boolean;
324
+ titlePage: "none" | "romanLower";
325
+ };
326
+ sceneNumbering: {
327
+ styleId: import("@sudobility/writing_core").StyleId;
328
+ };
329
+ continueds: {
330
+ more: string;
331
+ cont: string;
332
+ joiner: string;
333
+ sceneBottom: string;
334
+ sceneTop: string;
335
+ sceneTopNumbered: string;
336
+ omitted: string;
337
+ styleId: import("@sudobility/writing_core").StyleId | null;
338
+ };
339
+ smartType: {
340
+ sceneIntros: string[];
341
+ times: string[];
342
+ extensions: string[];
343
+ transitions: string[];
344
+ characters: string[];
345
+ locations: string[];
346
+ introSeparator: string;
347
+ timeSeparator: string;
348
+ sortMode: "custom" | "alphabetical" | "frequency";
349
+ };
350
+ revisionColors: {
351
+ key: string;
352
+ nameKey: string;
353
+ color: string;
354
+ pageColor: string;
355
+ mark: string;
356
+ }[];
357
+ tagCategories: {
358
+ key: string;
359
+ nameKey: string;
360
+ color: string;
361
+ entityKind: "character" | "location" | "scriptDay" | "camera" | "sequence" | "prop" | "wardrobe" | "makeupHair" | "vehicle" | "animal" | "setDressing" | "greenery" | "specialEffect" | "visualEffect" | "mechanicalEffect" | "stunt" | "sound" | "music" | "specialEquipment" | "backgroundActor" | "security" | "additionalLabor" | "animalHandler" | "artDepartment" | "unit" | "misc";
362
+ fdxGuid: string | null;
363
+ osfUuid: string | null;
364
+ textStyle: {
365
+ bold: boolean;
366
+ underline: boolean;
367
+ highlight: boolean;
368
+ };
369
+ visible: boolean;
370
+ }[];
371
+ noteTypes: {
372
+ key: string;
373
+ nameKey: string;
374
+ color: string;
375
+ marker: string;
376
+ }[];
377
+ traitDefs: {
378
+ key: string;
379
+ nameKey: string;
380
+ type: "number" | "text" | "choice";
381
+ options: string[];
382
+ }[];
383
+ macros: {
384
+ text: string;
385
+ name: string;
386
+ shortcut: string | null;
387
+ styleId: import("@sudobility/writing_core").StyleId | null;
388
+ pos: string;
389
+ nextStyleId: import("@sudobility/writing_core").StyleId | null;
390
+ alias: {
391
+ text: string;
392
+ confirm: boolean;
393
+ matchCase: boolean;
394
+ smartReplace: boolean;
395
+ wordOnly: boolean;
396
+ activeIn: import("@sudobility/writing_core").StyleId[];
397
+ } | null;
398
+ }[];
399
+ titlePage: {
400
+ styleKey: string;
401
+ text: string;
402
+ overrides?: {
403
+ align?: "left" | "right" | "center" | "justify" | undefined;
404
+ indentLeft?: number | undefined;
405
+ indentRight?: number | undefined;
406
+ indentFirstLine?: number | undefined;
407
+ spaceBefore?: number | undefined;
408
+ lineSpacing?: number | undefined;
409
+ keepWithNext?: boolean | undefined;
410
+ pageBreakBefore?: boolean | undefined;
411
+ column?: 0 | 2 | 1 | undefined;
412
+ leadingAdjust?: number | undefined;
413
+ direction?: "ltr" | "rtl" | "auto" | undefined;
414
+ anchor?: "flow" | "bottom" | undefined;
415
+ } | undefined;
416
+ titleField?: "series" | "title" | "episode" | "source" | "notes" | "author" | "wordCount" | "basedOn" | "subtitle" | "credit" | "draftDate" | "revision" | "contact" | "copyright" | "wga" | undefined;
417
+ }[];
418
+ body: {
419
+ styleKey: string;
420
+ text: string;
421
+ overrides?: {
422
+ align?: "left" | "right" | "center" | "justify" | undefined;
423
+ indentLeft?: number | undefined;
424
+ indentRight?: number | undefined;
425
+ indentFirstLine?: number | undefined;
426
+ spaceBefore?: number | undefined;
427
+ lineSpacing?: number | undefined;
428
+ keepWithNext?: boolean | undefined;
429
+ pageBreakBefore?: boolean | undefined;
430
+ column?: 0 | 2 | 1 | undefined;
431
+ leadingAdjust?: number | undefined;
432
+ direction?: "ltr" | "rtl" | "auto" | undefined;
433
+ anchor?: "flow" | "bottom" | undefined;
434
+ } | undefined;
435
+ titleField?: "series" | "title" | "episode" | "source" | "notes" | "author" | "wordCount" | "basedOn" | "subtitle" | "credit" | "draftDate" | "revision" | "contact" | "copyright" | "wga" | undefined;
436
+ }[];
437
+ instructions: string | null;
438
+ importMeta: Record<string, import("@sudobility/writing_core").JsonValue> | null;
439
+ }, {
440
+ schemaVersion: 1;
441
+ id: import("@sudobility/writing_core").Id<"tpl">;
442
+ key: string | null;
443
+ version: number;
444
+ name: string;
445
+ nameKey: string | null;
446
+ description: string;
447
+ category: "outline" | "treatment" | "custom" | "screenplay" | "television" | "stagePlay" | "radio" | "audioVisual" | "multimedia" | "graphicNovel" | "prose" | "letter" | "verticalDrama";
448
+ locale: string;
449
+ direction: "ltr" | "rtl";
450
+ layoutMode: "flow" | "panels";
451
+ page: {
452
+ paper: "custom" | "letter" | "a4" | "legal" | "a5" | "b5";
453
+ width: number;
454
+ height: number;
455
+ orientation: "portrait" | "landscape";
456
+ margins: {
457
+ top: number;
458
+ bottom: number;
459
+ left: number;
460
+ right: number;
461
+ };
462
+ headerOffset: number;
463
+ footerOffset: number;
464
+ linesPerInch: number;
465
+ elementSpacing: number;
466
+ lineSpacingPreset: "normal" | "veryTight" | "tight" | "loose";
467
+ bindingGutter: number;
468
+ };
469
+ header: {
470
+ enabled: boolean;
471
+ left: string;
472
+ center: string;
473
+ right: string;
474
+ styleId: import("@sudobility/writing_core").StyleId | null;
475
+ showOnFirstPage: boolean;
476
+ showOnTitlePage: boolean;
477
+ startAtPage: number;
478
+ };
479
+ footer: {
480
+ enabled: boolean;
481
+ left: string;
482
+ center: string;
483
+ right: string;
484
+ styleId: import("@sudobility/writing_core").StyleId | null;
485
+ showOnFirstPage: boolean;
486
+ showOnTitlePage: boolean;
487
+ startAtPage: number;
488
+ };
489
+ styles: {
490
+ id: import("@sudobility/writing_core").StyleId;
491
+ name: string;
492
+ nameKey: string | null;
493
+ role: "outline" | "action" | "character" | "dialogue" | "page" | "note" | "shot" | "synopsis" | "parenthetical" | "normal" | "sceneHeading" | "transition" | "lyrics" | "castList" | "actStart" | "actEnd" | "sequence" | "notation" | "soundCue" | "panel" | "chapter" | "paragraph" | "subheading" | "quotation" | "blockText" | "chapterEnd" | "titleText";
494
+ basedOn: import("@sudobility/writing_core").StyleId | null;
495
+ shortcut: number | null;
496
+ font: {
497
+ family?: string | undefined;
498
+ size?: number | undefined;
499
+ bold?: boolean | undefined;
500
+ italic?: boolean | undefined;
501
+ underline?: "word" | "single" | "double" | "dotted" | null | undefined;
502
+ strike?: boolean | undefined;
503
+ smallCaps?: boolean | undefined;
504
+ color?: string | undefined;
505
+ };
506
+ allCaps?: boolean | undefined;
507
+ align?: "left" | "right" | "center" | "justify" | undefined;
508
+ indentLeft?: number | undefined;
509
+ indentRight?: number | undefined;
510
+ indentFirstLine?: number | undefined;
511
+ spaceBefore?: number | undefined;
512
+ lineSpacing?: number | undefined;
513
+ column?: 0 | 2 | 1 | undefined;
514
+ keepWithNext?: boolean | undefined;
515
+ keepTogether?: boolean | undefined;
516
+ splitRule?: "never" | "lines" | "sentences" | undefined;
517
+ pageBreakBefore?: boolean | undefined;
518
+ actBreak?: boolean | undefined;
519
+ paginateAs?: import("@sudobility/writing_core").StyleId | null | undefined;
520
+ hiddenInScript?: boolean | undefined;
521
+ printable?: boolean | undefined;
522
+ outlineLevel?: number | undefined;
523
+ flow?: {
524
+ onEnter?: import("@sudobility/writing_core").StyleId | null | undefined;
525
+ onEnterEmpty?: "flow" | import("@sudobility/writing_core").StyleId | "picker" | undefined;
526
+ onTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
527
+ onTabText?: import("@sudobility/writing_core").StyleId | null | undefined;
528
+ onShiftTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
529
+ } | undefined;
530
+ numbering?: {
531
+ enabled: boolean;
532
+ counter: "base" | "own";
533
+ start: number;
534
+ format: string;
535
+ position: "left" | "right" | "both" | "inline";
536
+ leftOffset: number;
537
+ rightOffset: number;
538
+ hideRightOnOverlap: boolean;
539
+ resetAfterStyle: import("@sudobility/writing_core").StyleId | null;
540
+ resetEvery: number;
541
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
542
+ skipIO: boolean;
543
+ autoOmit: boolean;
544
+ omittedText: string | null;
545
+ numberFont: {
546
+ family?: string | undefined;
547
+ size?: number | undefined;
548
+ bold?: boolean | undefined;
549
+ italic?: boolean | undefined;
550
+ } | null;
551
+ } | null | undefined;
552
+ prefix?: string | undefined;
553
+ suffix?: string | undefined;
554
+ smartTypeList?: "characters" | "times" | "extensions" | "sceneIntros" | "locations" | "transitions" | "soundCues" | null | undefined;
555
+ dualDialogue?: boolean | undefined;
556
+ }[];
557
+ titlePageStyles: {
558
+ id: import("@sudobility/writing_core").StyleId;
559
+ name: string;
560
+ nameKey: string | null;
561
+ role: "outline" | "action" | "character" | "dialogue" | "page" | "note" | "shot" | "synopsis" | "parenthetical" | "normal" | "sceneHeading" | "transition" | "lyrics" | "castList" | "actStart" | "actEnd" | "sequence" | "notation" | "soundCue" | "panel" | "chapter" | "paragraph" | "subheading" | "quotation" | "blockText" | "chapterEnd" | "titleText";
562
+ basedOn: import("@sudobility/writing_core").StyleId | null;
563
+ shortcut: number | null;
564
+ font: {
565
+ family?: string | undefined;
566
+ size?: number | undefined;
567
+ bold?: boolean | undefined;
568
+ italic?: boolean | undefined;
569
+ underline?: "word" | "single" | "double" | "dotted" | null | undefined;
570
+ strike?: boolean | undefined;
571
+ smallCaps?: boolean | undefined;
572
+ color?: string | undefined;
573
+ };
574
+ allCaps?: boolean | undefined;
575
+ align?: "left" | "right" | "center" | "justify" | undefined;
576
+ indentLeft?: number | undefined;
577
+ indentRight?: number | undefined;
578
+ indentFirstLine?: number | undefined;
579
+ spaceBefore?: number | undefined;
580
+ lineSpacing?: number | undefined;
581
+ column?: 0 | 2 | 1 | undefined;
582
+ keepWithNext?: boolean | undefined;
583
+ keepTogether?: boolean | undefined;
584
+ splitRule?: "never" | "lines" | "sentences" | undefined;
585
+ pageBreakBefore?: boolean | undefined;
586
+ actBreak?: boolean | undefined;
587
+ paginateAs?: import("@sudobility/writing_core").StyleId | null | undefined;
588
+ hiddenInScript?: boolean | undefined;
589
+ printable?: boolean | undefined;
590
+ outlineLevel?: number | undefined;
591
+ flow?: {
592
+ onEnter?: import("@sudobility/writing_core").StyleId | null | undefined;
593
+ onEnterEmpty?: "flow" | import("@sudobility/writing_core").StyleId | "picker" | undefined;
594
+ onTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
595
+ onTabText?: import("@sudobility/writing_core").StyleId | null | undefined;
596
+ onShiftTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
597
+ } | undefined;
598
+ numbering?: {
599
+ enabled: boolean;
600
+ counter: "base" | "own";
601
+ start: number;
602
+ format: string;
603
+ position: "left" | "right" | "both" | "inline";
604
+ leftOffset: number;
605
+ rightOffset: number;
606
+ hideRightOnOverlap: boolean;
607
+ resetAfterStyle: import("@sudobility/writing_core").StyleId | null;
608
+ resetEvery: number;
609
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
610
+ skipIO: boolean;
611
+ autoOmit: boolean;
612
+ omittedText: string | null;
613
+ numberFont: {
614
+ family?: string | undefined;
615
+ size?: number | undefined;
616
+ bold?: boolean | undefined;
617
+ italic?: boolean | undefined;
618
+ } | null;
619
+ } | null | undefined;
620
+ prefix?: string | undefined;
621
+ suffix?: string | undefined;
622
+ smartTypeList?: "characters" | "times" | "extensions" | "sceneIntros" | "locations" | "transitions" | "soundCues" | null | undefined;
623
+ dualDialogue?: boolean | undefined;
624
+ }[];
625
+ titlePageLayout: {
626
+ centerTop: number;
627
+ };
628
+ defaults: {
629
+ root: import("@sudobility/writing_core").StyleId;
630
+ firstElement: import("@sudobility/writing_core").StyleId;
631
+ pasteFallback: import("@sudobility/writing_core").StyleId;
632
+ sceneHeading: import("@sudobility/writing_core").StyleId | null;
633
+ character: import("@sudobility/writing_core").StyleId | null;
634
+ dialogue: import("@sudobility/writing_core").StyleId | null;
635
+ parenthetical: import("@sudobility/writing_core").StyleId | null;
636
+ action: import("@sudobility/writing_core").StyleId | null;
637
+ transition: import("@sudobility/writing_core").StyleId | null;
638
+ titleDefault: import("@sudobility/writing_core").StyleId;
639
+ };
640
+ pagination: {
641
+ breakOnSentences: boolean;
642
+ dialogue: {
643
+ allowBreaks: boolean;
644
+ minLinesBeforeBreak: number;
645
+ minLinesAfterBreak: number;
646
+ moreAtBottom: boolean;
647
+ contAtTop: boolean;
648
+ };
649
+ automaticContinueds: {
650
+ enabled: boolean;
651
+ scope: "scene";
652
+ };
653
+ sceneContinueds: {
654
+ bottom: boolean;
655
+ top: boolean;
656
+ numbered: boolean;
657
+ topBlankLines: number;
658
+ bottomBlankLines: number;
659
+ };
660
+ widowOrphan: {
661
+ minLinesAtPageBottom: number;
662
+ minLinesAtPageTop: number;
663
+ };
664
+ keepWithNextMinLines: number;
665
+ headingsNeverOrphaned: boolean;
666
+ dualDialogue: {
667
+ enabled: boolean;
668
+ columnGap: number;
669
+ stackWhileEditing: boolean;
670
+ geometry: {
671
+ character: {
672
+ leftSide: {
673
+ left: number;
674
+ right: number;
675
+ };
676
+ rightSide: {
677
+ left: number;
678
+ right: number;
679
+ };
680
+ };
681
+ parenthetical: {
682
+ leftSide: {
683
+ left: number;
684
+ right: number;
685
+ };
686
+ rightSide: {
687
+ left: number;
688
+ right: number;
689
+ };
690
+ };
691
+ dialogue: {
692
+ leftSide: {
693
+ left: number;
694
+ right: number;
695
+ };
696
+ rightSide: {
697
+ left: number;
698
+ right: number;
699
+ };
700
+ };
701
+ } | null;
702
+ };
703
+ columnBlocks: {
704
+ gap: number;
705
+ breakBlocks: boolean;
706
+ };
707
+ actBreakStartsPage: boolean;
708
+ combineConsecutiveOmitted: boolean;
709
+ runningTime: {
710
+ method: "pages" | "words";
711
+ wordsPerMinute: number;
712
+ soundCueSeconds: number;
713
+ };
714
+ panels: {
715
+ autoHeadingText: boolean;
716
+ };
717
+ };
718
+ pageNumbering: {
719
+ start: number;
720
+ format: string;
721
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
722
+ skipIO: boolean;
723
+ combineDeletedRanges: boolean;
724
+ titlePage: "none" | "romanLower";
725
+ };
726
+ sceneNumbering: {
727
+ styleId: import("@sudobility/writing_core").StyleId;
728
+ };
729
+ continueds: {
730
+ more: string;
731
+ cont: string;
732
+ joiner: string;
733
+ sceneBottom: string;
734
+ sceneTop: string;
735
+ sceneTopNumbered: string;
736
+ omitted: string;
737
+ styleId: import("@sudobility/writing_core").StyleId | null;
738
+ };
739
+ smartType: {
740
+ sceneIntros: string[];
741
+ times: string[];
742
+ extensions: string[];
743
+ transitions: string[];
744
+ characters: string[];
745
+ locations: string[];
746
+ introSeparator: string;
747
+ timeSeparator: string;
748
+ sortMode: "custom" | "alphabetical" | "frequency";
749
+ };
750
+ revisionColors: {
751
+ key: string;
752
+ nameKey: string;
753
+ color: string;
754
+ pageColor: string;
755
+ mark: string;
756
+ }[];
757
+ tagCategories: {
758
+ key: string;
759
+ nameKey: string;
760
+ color: string;
761
+ entityKind: "character" | "location" | "scriptDay" | "camera" | "sequence" | "prop" | "wardrobe" | "makeupHair" | "vehicle" | "animal" | "setDressing" | "greenery" | "specialEffect" | "visualEffect" | "mechanicalEffect" | "stunt" | "sound" | "music" | "specialEquipment" | "backgroundActor" | "security" | "additionalLabor" | "animalHandler" | "artDepartment" | "unit" | "misc";
762
+ fdxGuid: string | null;
763
+ osfUuid: string | null;
764
+ textStyle: {
765
+ bold: boolean;
766
+ underline: boolean;
767
+ highlight: boolean;
768
+ };
769
+ visible: boolean;
770
+ }[];
771
+ noteTypes: {
772
+ key: string;
773
+ nameKey: string;
774
+ color: string;
775
+ marker: string;
776
+ }[];
777
+ traitDefs: {
778
+ key: string;
779
+ nameKey: string;
780
+ type: "number" | "text" | "choice";
781
+ options: string[];
782
+ }[];
783
+ macros: {
784
+ text: string;
785
+ name: string;
786
+ shortcut: string | null;
787
+ styleId: import("@sudobility/writing_core").StyleId | null;
788
+ pos: string;
789
+ nextStyleId: import("@sudobility/writing_core").StyleId | null;
790
+ alias: {
791
+ text: string;
792
+ confirm: boolean;
793
+ matchCase: boolean;
794
+ smartReplace: boolean;
795
+ wordOnly: boolean;
796
+ activeIn: import("@sudobility/writing_core").StyleId[];
797
+ } | null;
798
+ }[];
799
+ titlePage: {
800
+ styleKey: string;
801
+ text: string;
802
+ overrides?: {
803
+ align?: "left" | "right" | "center" | "justify" | undefined;
804
+ indentLeft?: number | undefined;
805
+ indentRight?: number | undefined;
806
+ indentFirstLine?: number | undefined;
807
+ spaceBefore?: number | undefined;
808
+ lineSpacing?: number | undefined;
809
+ keepWithNext?: boolean | undefined;
810
+ pageBreakBefore?: boolean | undefined;
811
+ column?: 0 | 2 | 1 | undefined;
812
+ leadingAdjust?: number | undefined;
813
+ direction?: "ltr" | "rtl" | "auto" | undefined;
814
+ anchor?: "flow" | "bottom" | undefined;
815
+ } | undefined;
816
+ titleField?: "series" | "title" | "episode" | "source" | "notes" | "author" | "wordCount" | "basedOn" | "subtitle" | "credit" | "draftDate" | "revision" | "contact" | "copyright" | "wga" | undefined;
817
+ }[];
818
+ body: {
819
+ styleKey: string;
820
+ text: string;
821
+ overrides?: {
822
+ align?: "left" | "right" | "center" | "justify" | undefined;
823
+ indentLeft?: number | undefined;
824
+ indentRight?: number | undefined;
825
+ indentFirstLine?: number | undefined;
826
+ spaceBefore?: number | undefined;
827
+ lineSpacing?: number | undefined;
828
+ keepWithNext?: boolean | undefined;
829
+ pageBreakBefore?: boolean | undefined;
830
+ column?: 0 | 2 | 1 | undefined;
831
+ leadingAdjust?: number | undefined;
832
+ direction?: "ltr" | "rtl" | "auto" | undefined;
833
+ anchor?: "flow" | "bottom" | undefined;
834
+ } | undefined;
835
+ titleField?: "series" | "title" | "episode" | "source" | "notes" | "author" | "wordCount" | "basedOn" | "subtitle" | "credit" | "draftDate" | "revision" | "contact" | "copyright" | "wga" | undefined;
836
+ }[];
837
+ instructions: string | null;
838
+ importMeta: Record<string, import("@sudobility/writing_core").JsonValue> | null;
839
+ }>;
840
+ }, z.core.$strip>;
841
+ export type TemplateCreateRequest = z.input<typeof templateCreateSchema>;
842
+ export declare const templateVersionCreateSchema: z.ZodObject<{
843
+ template: z.ZodCustom<{
844
+ schemaVersion: 1;
845
+ id: import("@sudobility/writing_core").Id<"tpl">;
846
+ key: string | null;
847
+ version: number;
848
+ name: string;
849
+ nameKey: string | null;
850
+ description: string;
851
+ category: "outline" | "treatment" | "custom" | "screenplay" | "television" | "stagePlay" | "radio" | "audioVisual" | "multimedia" | "graphicNovel" | "prose" | "letter" | "verticalDrama";
852
+ locale: string;
853
+ direction: "ltr" | "rtl";
854
+ layoutMode: "flow" | "panels";
855
+ page: {
856
+ paper: "custom" | "letter" | "a4" | "legal" | "a5" | "b5";
857
+ width: number;
858
+ height: number;
859
+ orientation: "portrait" | "landscape";
860
+ margins: {
861
+ top: number;
862
+ bottom: number;
863
+ left: number;
864
+ right: number;
865
+ };
866
+ headerOffset: number;
867
+ footerOffset: number;
868
+ linesPerInch: number;
869
+ elementSpacing: number;
870
+ lineSpacingPreset: "normal" | "veryTight" | "tight" | "loose";
871
+ bindingGutter: number;
872
+ };
873
+ header: {
874
+ enabled: boolean;
875
+ left: string;
876
+ center: string;
877
+ right: string;
878
+ styleId: import("@sudobility/writing_core").StyleId | null;
879
+ showOnFirstPage: boolean;
880
+ showOnTitlePage: boolean;
881
+ startAtPage: number;
882
+ };
883
+ footer: {
884
+ enabled: boolean;
885
+ left: string;
886
+ center: string;
887
+ right: string;
888
+ styleId: import("@sudobility/writing_core").StyleId | null;
889
+ showOnFirstPage: boolean;
890
+ showOnTitlePage: boolean;
891
+ startAtPage: number;
892
+ };
893
+ styles: {
894
+ id: import("@sudobility/writing_core").StyleId;
895
+ name: string;
896
+ nameKey: string | null;
897
+ role: "outline" | "action" | "character" | "dialogue" | "page" | "note" | "shot" | "synopsis" | "parenthetical" | "normal" | "sceneHeading" | "transition" | "lyrics" | "castList" | "actStart" | "actEnd" | "sequence" | "notation" | "soundCue" | "panel" | "chapter" | "paragraph" | "subheading" | "quotation" | "blockText" | "chapterEnd" | "titleText";
898
+ basedOn: import("@sudobility/writing_core").StyleId | null;
899
+ shortcut: number | null;
900
+ font: {
901
+ family?: string | undefined;
902
+ size?: number | undefined;
903
+ bold?: boolean | undefined;
904
+ italic?: boolean | undefined;
905
+ underline?: "word" | "single" | "double" | "dotted" | null | undefined;
906
+ strike?: boolean | undefined;
907
+ smallCaps?: boolean | undefined;
908
+ color?: string | undefined;
909
+ };
910
+ allCaps?: boolean | undefined;
911
+ align?: "left" | "right" | "center" | "justify" | undefined;
912
+ indentLeft?: number | undefined;
913
+ indentRight?: number | undefined;
914
+ indentFirstLine?: number | undefined;
915
+ spaceBefore?: number | undefined;
916
+ lineSpacing?: number | undefined;
917
+ column?: 0 | 2 | 1 | undefined;
918
+ keepWithNext?: boolean | undefined;
919
+ keepTogether?: boolean | undefined;
920
+ splitRule?: "never" | "lines" | "sentences" | undefined;
921
+ pageBreakBefore?: boolean | undefined;
922
+ actBreak?: boolean | undefined;
923
+ paginateAs?: import("@sudobility/writing_core").StyleId | null | undefined;
924
+ hiddenInScript?: boolean | undefined;
925
+ printable?: boolean | undefined;
926
+ outlineLevel?: number | undefined;
927
+ flow?: {
928
+ onEnter?: import("@sudobility/writing_core").StyleId | null | undefined;
929
+ onEnterEmpty?: "flow" | import("@sudobility/writing_core").StyleId | "picker" | undefined;
930
+ onTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
931
+ onTabText?: import("@sudobility/writing_core").StyleId | null | undefined;
932
+ onShiftTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
933
+ } | undefined;
934
+ numbering?: {
935
+ enabled: boolean;
936
+ counter: "base" | "own";
937
+ start: number;
938
+ format: string;
939
+ position: "left" | "right" | "both" | "inline";
940
+ leftOffset: number;
941
+ rightOffset: number;
942
+ hideRightOnOverlap: boolean;
943
+ resetAfterStyle: import("@sudobility/writing_core").StyleId | null;
944
+ resetEvery: number;
945
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
946
+ skipIO: boolean;
947
+ autoOmit: boolean;
948
+ omittedText: string | null;
949
+ numberFont: {
950
+ family?: string | undefined;
951
+ size?: number | undefined;
952
+ bold?: boolean | undefined;
953
+ italic?: boolean | undefined;
954
+ } | null;
955
+ } | null | undefined;
956
+ prefix?: string | undefined;
957
+ suffix?: string | undefined;
958
+ smartTypeList?: "characters" | "times" | "extensions" | "sceneIntros" | "locations" | "transitions" | "soundCues" | null | undefined;
959
+ dualDialogue?: boolean | undefined;
960
+ }[];
961
+ titlePageStyles: {
962
+ id: import("@sudobility/writing_core").StyleId;
963
+ name: string;
964
+ nameKey: string | null;
965
+ role: "outline" | "action" | "character" | "dialogue" | "page" | "note" | "shot" | "synopsis" | "parenthetical" | "normal" | "sceneHeading" | "transition" | "lyrics" | "castList" | "actStart" | "actEnd" | "sequence" | "notation" | "soundCue" | "panel" | "chapter" | "paragraph" | "subheading" | "quotation" | "blockText" | "chapterEnd" | "titleText";
966
+ basedOn: import("@sudobility/writing_core").StyleId | null;
967
+ shortcut: number | null;
968
+ font: {
969
+ family?: string | undefined;
970
+ size?: number | undefined;
971
+ bold?: boolean | undefined;
972
+ italic?: boolean | undefined;
973
+ underline?: "word" | "single" | "double" | "dotted" | null | undefined;
974
+ strike?: boolean | undefined;
975
+ smallCaps?: boolean | undefined;
976
+ color?: string | undefined;
977
+ };
978
+ allCaps?: boolean | undefined;
979
+ align?: "left" | "right" | "center" | "justify" | undefined;
980
+ indentLeft?: number | undefined;
981
+ indentRight?: number | undefined;
982
+ indentFirstLine?: number | undefined;
983
+ spaceBefore?: number | undefined;
984
+ lineSpacing?: number | undefined;
985
+ column?: 0 | 2 | 1 | undefined;
986
+ keepWithNext?: boolean | undefined;
987
+ keepTogether?: boolean | undefined;
988
+ splitRule?: "never" | "lines" | "sentences" | undefined;
989
+ pageBreakBefore?: boolean | undefined;
990
+ actBreak?: boolean | undefined;
991
+ paginateAs?: import("@sudobility/writing_core").StyleId | null | undefined;
992
+ hiddenInScript?: boolean | undefined;
993
+ printable?: boolean | undefined;
994
+ outlineLevel?: number | undefined;
995
+ flow?: {
996
+ onEnter?: import("@sudobility/writing_core").StyleId | null | undefined;
997
+ onEnterEmpty?: "flow" | import("@sudobility/writing_core").StyleId | "picker" | undefined;
998
+ onTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
999
+ onTabText?: import("@sudobility/writing_core").StyleId | null | undefined;
1000
+ onShiftTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
1001
+ } | undefined;
1002
+ numbering?: {
1003
+ enabled: boolean;
1004
+ counter: "base" | "own";
1005
+ start: number;
1006
+ format: string;
1007
+ position: "left" | "right" | "both" | "inline";
1008
+ leftOffset: number;
1009
+ rightOffset: number;
1010
+ hideRightOnOverlap: boolean;
1011
+ resetAfterStyle: import("@sudobility/writing_core").StyleId | null;
1012
+ resetEvery: number;
1013
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
1014
+ skipIO: boolean;
1015
+ autoOmit: boolean;
1016
+ omittedText: string | null;
1017
+ numberFont: {
1018
+ family?: string | undefined;
1019
+ size?: number | undefined;
1020
+ bold?: boolean | undefined;
1021
+ italic?: boolean | undefined;
1022
+ } | null;
1023
+ } | null | undefined;
1024
+ prefix?: string | undefined;
1025
+ suffix?: string | undefined;
1026
+ smartTypeList?: "characters" | "times" | "extensions" | "sceneIntros" | "locations" | "transitions" | "soundCues" | null | undefined;
1027
+ dualDialogue?: boolean | undefined;
1028
+ }[];
1029
+ titlePageLayout: {
1030
+ centerTop: number;
1031
+ };
1032
+ defaults: {
1033
+ root: import("@sudobility/writing_core").StyleId;
1034
+ firstElement: import("@sudobility/writing_core").StyleId;
1035
+ pasteFallback: import("@sudobility/writing_core").StyleId;
1036
+ sceneHeading: import("@sudobility/writing_core").StyleId | null;
1037
+ character: import("@sudobility/writing_core").StyleId | null;
1038
+ dialogue: import("@sudobility/writing_core").StyleId | null;
1039
+ parenthetical: import("@sudobility/writing_core").StyleId | null;
1040
+ action: import("@sudobility/writing_core").StyleId | null;
1041
+ transition: import("@sudobility/writing_core").StyleId | null;
1042
+ titleDefault: import("@sudobility/writing_core").StyleId;
1043
+ };
1044
+ pagination: {
1045
+ breakOnSentences: boolean;
1046
+ dialogue: {
1047
+ allowBreaks: boolean;
1048
+ minLinesBeforeBreak: number;
1049
+ minLinesAfterBreak: number;
1050
+ moreAtBottom: boolean;
1051
+ contAtTop: boolean;
1052
+ };
1053
+ automaticContinueds: {
1054
+ enabled: boolean;
1055
+ scope: "scene";
1056
+ };
1057
+ sceneContinueds: {
1058
+ bottom: boolean;
1059
+ top: boolean;
1060
+ numbered: boolean;
1061
+ topBlankLines: number;
1062
+ bottomBlankLines: number;
1063
+ };
1064
+ widowOrphan: {
1065
+ minLinesAtPageBottom: number;
1066
+ minLinesAtPageTop: number;
1067
+ };
1068
+ keepWithNextMinLines: number;
1069
+ headingsNeverOrphaned: boolean;
1070
+ dualDialogue: {
1071
+ enabled: boolean;
1072
+ columnGap: number;
1073
+ stackWhileEditing: boolean;
1074
+ geometry: {
1075
+ character: {
1076
+ leftSide: {
1077
+ left: number;
1078
+ right: number;
1079
+ };
1080
+ rightSide: {
1081
+ left: number;
1082
+ right: number;
1083
+ };
1084
+ };
1085
+ parenthetical: {
1086
+ leftSide: {
1087
+ left: number;
1088
+ right: number;
1089
+ };
1090
+ rightSide: {
1091
+ left: number;
1092
+ right: number;
1093
+ };
1094
+ };
1095
+ dialogue: {
1096
+ leftSide: {
1097
+ left: number;
1098
+ right: number;
1099
+ };
1100
+ rightSide: {
1101
+ left: number;
1102
+ right: number;
1103
+ };
1104
+ };
1105
+ } | null;
1106
+ };
1107
+ columnBlocks: {
1108
+ gap: number;
1109
+ breakBlocks: boolean;
1110
+ };
1111
+ actBreakStartsPage: boolean;
1112
+ combineConsecutiveOmitted: boolean;
1113
+ runningTime: {
1114
+ method: "pages" | "words";
1115
+ wordsPerMinute: number;
1116
+ soundCueSeconds: number;
1117
+ };
1118
+ panels: {
1119
+ autoHeadingText: boolean;
1120
+ };
1121
+ };
1122
+ pageNumbering: {
1123
+ start: number;
1124
+ format: string;
1125
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
1126
+ skipIO: boolean;
1127
+ combineDeletedRanges: boolean;
1128
+ titlePage: "none" | "romanLower";
1129
+ };
1130
+ sceneNumbering: {
1131
+ styleId: import("@sudobility/writing_core").StyleId;
1132
+ };
1133
+ continueds: {
1134
+ more: string;
1135
+ cont: string;
1136
+ joiner: string;
1137
+ sceneBottom: string;
1138
+ sceneTop: string;
1139
+ sceneTopNumbered: string;
1140
+ omitted: string;
1141
+ styleId: import("@sudobility/writing_core").StyleId | null;
1142
+ };
1143
+ smartType: {
1144
+ sceneIntros: string[];
1145
+ times: string[];
1146
+ extensions: string[];
1147
+ transitions: string[];
1148
+ characters: string[];
1149
+ locations: string[];
1150
+ introSeparator: string;
1151
+ timeSeparator: string;
1152
+ sortMode: "custom" | "alphabetical" | "frequency";
1153
+ };
1154
+ revisionColors: {
1155
+ key: string;
1156
+ nameKey: string;
1157
+ color: string;
1158
+ pageColor: string;
1159
+ mark: string;
1160
+ }[];
1161
+ tagCategories: {
1162
+ key: string;
1163
+ nameKey: string;
1164
+ color: string;
1165
+ entityKind: "character" | "location" | "scriptDay" | "camera" | "sequence" | "prop" | "wardrobe" | "makeupHair" | "vehicle" | "animal" | "setDressing" | "greenery" | "specialEffect" | "visualEffect" | "mechanicalEffect" | "stunt" | "sound" | "music" | "specialEquipment" | "backgroundActor" | "security" | "additionalLabor" | "animalHandler" | "artDepartment" | "unit" | "misc";
1166
+ fdxGuid: string | null;
1167
+ osfUuid: string | null;
1168
+ textStyle: {
1169
+ bold: boolean;
1170
+ underline: boolean;
1171
+ highlight: boolean;
1172
+ };
1173
+ visible: boolean;
1174
+ }[];
1175
+ noteTypes: {
1176
+ key: string;
1177
+ nameKey: string;
1178
+ color: string;
1179
+ marker: string;
1180
+ }[];
1181
+ traitDefs: {
1182
+ key: string;
1183
+ nameKey: string;
1184
+ type: "number" | "text" | "choice";
1185
+ options: string[];
1186
+ }[];
1187
+ macros: {
1188
+ text: string;
1189
+ name: string;
1190
+ shortcut: string | null;
1191
+ styleId: import("@sudobility/writing_core").StyleId | null;
1192
+ pos: string;
1193
+ nextStyleId: import("@sudobility/writing_core").StyleId | null;
1194
+ alias: {
1195
+ text: string;
1196
+ confirm: boolean;
1197
+ matchCase: boolean;
1198
+ smartReplace: boolean;
1199
+ wordOnly: boolean;
1200
+ activeIn: import("@sudobility/writing_core").StyleId[];
1201
+ } | null;
1202
+ }[];
1203
+ titlePage: {
1204
+ styleKey: string;
1205
+ text: string;
1206
+ overrides?: {
1207
+ align?: "left" | "right" | "center" | "justify" | undefined;
1208
+ indentLeft?: number | undefined;
1209
+ indentRight?: number | undefined;
1210
+ indentFirstLine?: number | undefined;
1211
+ spaceBefore?: number | undefined;
1212
+ lineSpacing?: number | undefined;
1213
+ keepWithNext?: boolean | undefined;
1214
+ pageBreakBefore?: boolean | undefined;
1215
+ column?: 0 | 2 | 1 | undefined;
1216
+ leadingAdjust?: number | undefined;
1217
+ direction?: "ltr" | "rtl" | "auto" | undefined;
1218
+ anchor?: "flow" | "bottom" | undefined;
1219
+ } | undefined;
1220
+ titleField?: "series" | "title" | "episode" | "source" | "notes" | "author" | "wordCount" | "basedOn" | "subtitle" | "credit" | "draftDate" | "revision" | "contact" | "copyright" | "wga" | undefined;
1221
+ }[];
1222
+ body: {
1223
+ styleKey: string;
1224
+ text: string;
1225
+ overrides?: {
1226
+ align?: "left" | "right" | "center" | "justify" | undefined;
1227
+ indentLeft?: number | undefined;
1228
+ indentRight?: number | undefined;
1229
+ indentFirstLine?: number | undefined;
1230
+ spaceBefore?: number | undefined;
1231
+ lineSpacing?: number | undefined;
1232
+ keepWithNext?: boolean | undefined;
1233
+ pageBreakBefore?: boolean | undefined;
1234
+ column?: 0 | 2 | 1 | undefined;
1235
+ leadingAdjust?: number | undefined;
1236
+ direction?: "ltr" | "rtl" | "auto" | undefined;
1237
+ anchor?: "flow" | "bottom" | undefined;
1238
+ } | undefined;
1239
+ titleField?: "series" | "title" | "episode" | "source" | "notes" | "author" | "wordCount" | "basedOn" | "subtitle" | "credit" | "draftDate" | "revision" | "contact" | "copyright" | "wga" | undefined;
1240
+ }[];
1241
+ instructions: string | null;
1242
+ importMeta: Record<string, import("@sudobility/writing_core").JsonValue> | null;
1243
+ }, {
1244
+ schemaVersion: 1;
1245
+ id: import("@sudobility/writing_core").Id<"tpl">;
1246
+ key: string | null;
1247
+ version: number;
1248
+ name: string;
1249
+ nameKey: string | null;
1250
+ description: string;
1251
+ category: "outline" | "treatment" | "custom" | "screenplay" | "television" | "stagePlay" | "radio" | "audioVisual" | "multimedia" | "graphicNovel" | "prose" | "letter" | "verticalDrama";
1252
+ locale: string;
1253
+ direction: "ltr" | "rtl";
1254
+ layoutMode: "flow" | "panels";
1255
+ page: {
1256
+ paper: "custom" | "letter" | "a4" | "legal" | "a5" | "b5";
1257
+ width: number;
1258
+ height: number;
1259
+ orientation: "portrait" | "landscape";
1260
+ margins: {
1261
+ top: number;
1262
+ bottom: number;
1263
+ left: number;
1264
+ right: number;
1265
+ };
1266
+ headerOffset: number;
1267
+ footerOffset: number;
1268
+ linesPerInch: number;
1269
+ elementSpacing: number;
1270
+ lineSpacingPreset: "normal" | "veryTight" | "tight" | "loose";
1271
+ bindingGutter: number;
1272
+ };
1273
+ header: {
1274
+ enabled: boolean;
1275
+ left: string;
1276
+ center: string;
1277
+ right: string;
1278
+ styleId: import("@sudobility/writing_core").StyleId | null;
1279
+ showOnFirstPage: boolean;
1280
+ showOnTitlePage: boolean;
1281
+ startAtPage: number;
1282
+ };
1283
+ footer: {
1284
+ enabled: boolean;
1285
+ left: string;
1286
+ center: string;
1287
+ right: string;
1288
+ styleId: import("@sudobility/writing_core").StyleId | null;
1289
+ showOnFirstPage: boolean;
1290
+ showOnTitlePage: boolean;
1291
+ startAtPage: number;
1292
+ };
1293
+ styles: {
1294
+ id: import("@sudobility/writing_core").StyleId;
1295
+ name: string;
1296
+ nameKey: string | null;
1297
+ role: "outline" | "action" | "character" | "dialogue" | "page" | "note" | "shot" | "synopsis" | "parenthetical" | "normal" | "sceneHeading" | "transition" | "lyrics" | "castList" | "actStart" | "actEnd" | "sequence" | "notation" | "soundCue" | "panel" | "chapter" | "paragraph" | "subheading" | "quotation" | "blockText" | "chapterEnd" | "titleText";
1298
+ basedOn: import("@sudobility/writing_core").StyleId | null;
1299
+ shortcut: number | null;
1300
+ font: {
1301
+ family?: string | undefined;
1302
+ size?: number | undefined;
1303
+ bold?: boolean | undefined;
1304
+ italic?: boolean | undefined;
1305
+ underline?: "word" | "single" | "double" | "dotted" | null | undefined;
1306
+ strike?: boolean | undefined;
1307
+ smallCaps?: boolean | undefined;
1308
+ color?: string | undefined;
1309
+ };
1310
+ allCaps?: boolean | undefined;
1311
+ align?: "left" | "right" | "center" | "justify" | undefined;
1312
+ indentLeft?: number | undefined;
1313
+ indentRight?: number | undefined;
1314
+ indentFirstLine?: number | undefined;
1315
+ spaceBefore?: number | undefined;
1316
+ lineSpacing?: number | undefined;
1317
+ column?: 0 | 2 | 1 | undefined;
1318
+ keepWithNext?: boolean | undefined;
1319
+ keepTogether?: boolean | undefined;
1320
+ splitRule?: "never" | "lines" | "sentences" | undefined;
1321
+ pageBreakBefore?: boolean | undefined;
1322
+ actBreak?: boolean | undefined;
1323
+ paginateAs?: import("@sudobility/writing_core").StyleId | null | undefined;
1324
+ hiddenInScript?: boolean | undefined;
1325
+ printable?: boolean | undefined;
1326
+ outlineLevel?: number | undefined;
1327
+ flow?: {
1328
+ onEnter?: import("@sudobility/writing_core").StyleId | null | undefined;
1329
+ onEnterEmpty?: "flow" | import("@sudobility/writing_core").StyleId | "picker" | undefined;
1330
+ onTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
1331
+ onTabText?: import("@sudobility/writing_core").StyleId | null | undefined;
1332
+ onShiftTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
1333
+ } | undefined;
1334
+ numbering?: {
1335
+ enabled: boolean;
1336
+ counter: "base" | "own";
1337
+ start: number;
1338
+ format: string;
1339
+ position: "left" | "right" | "both" | "inline";
1340
+ leftOffset: number;
1341
+ rightOffset: number;
1342
+ hideRightOnOverlap: boolean;
1343
+ resetAfterStyle: import("@sudobility/writing_core").StyleId | null;
1344
+ resetEvery: number;
1345
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
1346
+ skipIO: boolean;
1347
+ autoOmit: boolean;
1348
+ omittedText: string | null;
1349
+ numberFont: {
1350
+ family?: string | undefined;
1351
+ size?: number | undefined;
1352
+ bold?: boolean | undefined;
1353
+ italic?: boolean | undefined;
1354
+ } | null;
1355
+ } | null | undefined;
1356
+ prefix?: string | undefined;
1357
+ suffix?: string | undefined;
1358
+ smartTypeList?: "characters" | "times" | "extensions" | "sceneIntros" | "locations" | "transitions" | "soundCues" | null | undefined;
1359
+ dualDialogue?: boolean | undefined;
1360
+ }[];
1361
+ titlePageStyles: {
1362
+ id: import("@sudobility/writing_core").StyleId;
1363
+ name: string;
1364
+ nameKey: string | null;
1365
+ role: "outline" | "action" | "character" | "dialogue" | "page" | "note" | "shot" | "synopsis" | "parenthetical" | "normal" | "sceneHeading" | "transition" | "lyrics" | "castList" | "actStart" | "actEnd" | "sequence" | "notation" | "soundCue" | "panel" | "chapter" | "paragraph" | "subheading" | "quotation" | "blockText" | "chapterEnd" | "titleText";
1366
+ basedOn: import("@sudobility/writing_core").StyleId | null;
1367
+ shortcut: number | null;
1368
+ font: {
1369
+ family?: string | undefined;
1370
+ size?: number | undefined;
1371
+ bold?: boolean | undefined;
1372
+ italic?: boolean | undefined;
1373
+ underline?: "word" | "single" | "double" | "dotted" | null | undefined;
1374
+ strike?: boolean | undefined;
1375
+ smallCaps?: boolean | undefined;
1376
+ color?: string | undefined;
1377
+ };
1378
+ allCaps?: boolean | undefined;
1379
+ align?: "left" | "right" | "center" | "justify" | undefined;
1380
+ indentLeft?: number | undefined;
1381
+ indentRight?: number | undefined;
1382
+ indentFirstLine?: number | undefined;
1383
+ spaceBefore?: number | undefined;
1384
+ lineSpacing?: number | undefined;
1385
+ column?: 0 | 2 | 1 | undefined;
1386
+ keepWithNext?: boolean | undefined;
1387
+ keepTogether?: boolean | undefined;
1388
+ splitRule?: "never" | "lines" | "sentences" | undefined;
1389
+ pageBreakBefore?: boolean | undefined;
1390
+ actBreak?: boolean | undefined;
1391
+ paginateAs?: import("@sudobility/writing_core").StyleId | null | undefined;
1392
+ hiddenInScript?: boolean | undefined;
1393
+ printable?: boolean | undefined;
1394
+ outlineLevel?: number | undefined;
1395
+ flow?: {
1396
+ onEnter?: import("@sudobility/writing_core").StyleId | null | undefined;
1397
+ onEnterEmpty?: "flow" | import("@sudobility/writing_core").StyleId | "picker" | undefined;
1398
+ onTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
1399
+ onTabText?: import("@sudobility/writing_core").StyleId | null | undefined;
1400
+ onShiftTabEmpty?: import("@sudobility/writing_core").StyleId | null | undefined;
1401
+ } | undefined;
1402
+ numbering?: {
1403
+ enabled: boolean;
1404
+ counter: "base" | "own";
1405
+ start: number;
1406
+ format: string;
1407
+ position: "left" | "right" | "both" | "inline";
1408
+ leftOffset: number;
1409
+ rightOffset: number;
1410
+ hideRightOnOverlap: boolean;
1411
+ resetAfterStyle: import("@sudobility/writing_core").StyleId | null;
1412
+ resetEvery: number;
1413
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
1414
+ skipIO: boolean;
1415
+ autoOmit: boolean;
1416
+ omittedText: string | null;
1417
+ numberFont: {
1418
+ family?: string | undefined;
1419
+ size?: number | undefined;
1420
+ bold?: boolean | undefined;
1421
+ italic?: boolean | undefined;
1422
+ } | null;
1423
+ } | null | undefined;
1424
+ prefix?: string | undefined;
1425
+ suffix?: string | undefined;
1426
+ smartTypeList?: "characters" | "times" | "extensions" | "sceneIntros" | "locations" | "transitions" | "soundCues" | null | undefined;
1427
+ dualDialogue?: boolean | undefined;
1428
+ }[];
1429
+ titlePageLayout: {
1430
+ centerTop: number;
1431
+ };
1432
+ defaults: {
1433
+ root: import("@sudobility/writing_core").StyleId;
1434
+ firstElement: import("@sudobility/writing_core").StyleId;
1435
+ pasteFallback: import("@sudobility/writing_core").StyleId;
1436
+ sceneHeading: import("@sudobility/writing_core").StyleId | null;
1437
+ character: import("@sudobility/writing_core").StyleId | null;
1438
+ dialogue: import("@sudobility/writing_core").StyleId | null;
1439
+ parenthetical: import("@sudobility/writing_core").StyleId | null;
1440
+ action: import("@sudobility/writing_core").StyleId | null;
1441
+ transition: import("@sudobility/writing_core").StyleId | null;
1442
+ titleDefault: import("@sudobility/writing_core").StyleId;
1443
+ };
1444
+ pagination: {
1445
+ breakOnSentences: boolean;
1446
+ dialogue: {
1447
+ allowBreaks: boolean;
1448
+ minLinesBeforeBreak: number;
1449
+ minLinesAfterBreak: number;
1450
+ moreAtBottom: boolean;
1451
+ contAtTop: boolean;
1452
+ };
1453
+ automaticContinueds: {
1454
+ enabled: boolean;
1455
+ scope: "scene";
1456
+ };
1457
+ sceneContinueds: {
1458
+ bottom: boolean;
1459
+ top: boolean;
1460
+ numbered: boolean;
1461
+ topBlankLines: number;
1462
+ bottomBlankLines: number;
1463
+ };
1464
+ widowOrphan: {
1465
+ minLinesAtPageBottom: number;
1466
+ minLinesAtPageTop: number;
1467
+ };
1468
+ keepWithNextMinLines: number;
1469
+ headingsNeverOrphaned: boolean;
1470
+ dualDialogue: {
1471
+ enabled: boolean;
1472
+ columnGap: number;
1473
+ stackWhileEditing: boolean;
1474
+ geometry: {
1475
+ character: {
1476
+ leftSide: {
1477
+ left: number;
1478
+ right: number;
1479
+ };
1480
+ rightSide: {
1481
+ left: number;
1482
+ right: number;
1483
+ };
1484
+ };
1485
+ parenthetical: {
1486
+ leftSide: {
1487
+ left: number;
1488
+ right: number;
1489
+ };
1490
+ rightSide: {
1491
+ left: number;
1492
+ right: number;
1493
+ };
1494
+ };
1495
+ dialogue: {
1496
+ leftSide: {
1497
+ left: number;
1498
+ right: number;
1499
+ };
1500
+ rightSide: {
1501
+ left: number;
1502
+ right: number;
1503
+ };
1504
+ };
1505
+ } | null;
1506
+ };
1507
+ columnBlocks: {
1508
+ gap: number;
1509
+ breakBlocks: boolean;
1510
+ };
1511
+ actBreakStartsPage: boolean;
1512
+ combineConsecutiveOmitted: boolean;
1513
+ runningTime: {
1514
+ method: "pages" | "words";
1515
+ wordsPerMinute: number;
1516
+ soundCueSeconds: number;
1517
+ };
1518
+ panels: {
1519
+ autoHeadingText: boolean;
1520
+ };
1521
+ };
1522
+ pageNumbering: {
1523
+ start: number;
1524
+ format: string;
1525
+ suffixMode: "1AB" | "1A2" | "AB2" | "BA2" | "romanUpper" | "romanLower";
1526
+ skipIO: boolean;
1527
+ combineDeletedRanges: boolean;
1528
+ titlePage: "none" | "romanLower";
1529
+ };
1530
+ sceneNumbering: {
1531
+ styleId: import("@sudobility/writing_core").StyleId;
1532
+ };
1533
+ continueds: {
1534
+ more: string;
1535
+ cont: string;
1536
+ joiner: string;
1537
+ sceneBottom: string;
1538
+ sceneTop: string;
1539
+ sceneTopNumbered: string;
1540
+ omitted: string;
1541
+ styleId: import("@sudobility/writing_core").StyleId | null;
1542
+ };
1543
+ smartType: {
1544
+ sceneIntros: string[];
1545
+ times: string[];
1546
+ extensions: string[];
1547
+ transitions: string[];
1548
+ characters: string[];
1549
+ locations: string[];
1550
+ introSeparator: string;
1551
+ timeSeparator: string;
1552
+ sortMode: "custom" | "alphabetical" | "frequency";
1553
+ };
1554
+ revisionColors: {
1555
+ key: string;
1556
+ nameKey: string;
1557
+ color: string;
1558
+ pageColor: string;
1559
+ mark: string;
1560
+ }[];
1561
+ tagCategories: {
1562
+ key: string;
1563
+ nameKey: string;
1564
+ color: string;
1565
+ entityKind: "character" | "location" | "scriptDay" | "camera" | "sequence" | "prop" | "wardrobe" | "makeupHair" | "vehicle" | "animal" | "setDressing" | "greenery" | "specialEffect" | "visualEffect" | "mechanicalEffect" | "stunt" | "sound" | "music" | "specialEquipment" | "backgroundActor" | "security" | "additionalLabor" | "animalHandler" | "artDepartment" | "unit" | "misc";
1566
+ fdxGuid: string | null;
1567
+ osfUuid: string | null;
1568
+ textStyle: {
1569
+ bold: boolean;
1570
+ underline: boolean;
1571
+ highlight: boolean;
1572
+ };
1573
+ visible: boolean;
1574
+ }[];
1575
+ noteTypes: {
1576
+ key: string;
1577
+ nameKey: string;
1578
+ color: string;
1579
+ marker: string;
1580
+ }[];
1581
+ traitDefs: {
1582
+ key: string;
1583
+ nameKey: string;
1584
+ type: "number" | "text" | "choice";
1585
+ options: string[];
1586
+ }[];
1587
+ macros: {
1588
+ text: string;
1589
+ name: string;
1590
+ shortcut: string | null;
1591
+ styleId: import("@sudobility/writing_core").StyleId | null;
1592
+ pos: string;
1593
+ nextStyleId: import("@sudobility/writing_core").StyleId | null;
1594
+ alias: {
1595
+ text: string;
1596
+ confirm: boolean;
1597
+ matchCase: boolean;
1598
+ smartReplace: boolean;
1599
+ wordOnly: boolean;
1600
+ activeIn: import("@sudobility/writing_core").StyleId[];
1601
+ } | null;
1602
+ }[];
1603
+ titlePage: {
1604
+ styleKey: string;
1605
+ text: string;
1606
+ overrides?: {
1607
+ align?: "left" | "right" | "center" | "justify" | undefined;
1608
+ indentLeft?: number | undefined;
1609
+ indentRight?: number | undefined;
1610
+ indentFirstLine?: number | undefined;
1611
+ spaceBefore?: number | undefined;
1612
+ lineSpacing?: number | undefined;
1613
+ keepWithNext?: boolean | undefined;
1614
+ pageBreakBefore?: boolean | undefined;
1615
+ column?: 0 | 2 | 1 | undefined;
1616
+ leadingAdjust?: number | undefined;
1617
+ direction?: "ltr" | "rtl" | "auto" | undefined;
1618
+ anchor?: "flow" | "bottom" | undefined;
1619
+ } | undefined;
1620
+ titleField?: "series" | "title" | "episode" | "source" | "notes" | "author" | "wordCount" | "basedOn" | "subtitle" | "credit" | "draftDate" | "revision" | "contact" | "copyright" | "wga" | undefined;
1621
+ }[];
1622
+ body: {
1623
+ styleKey: string;
1624
+ text: string;
1625
+ overrides?: {
1626
+ align?: "left" | "right" | "center" | "justify" | undefined;
1627
+ indentLeft?: number | undefined;
1628
+ indentRight?: number | undefined;
1629
+ indentFirstLine?: number | undefined;
1630
+ spaceBefore?: number | undefined;
1631
+ lineSpacing?: number | undefined;
1632
+ keepWithNext?: boolean | undefined;
1633
+ pageBreakBefore?: boolean | undefined;
1634
+ column?: 0 | 2 | 1 | undefined;
1635
+ leadingAdjust?: number | undefined;
1636
+ direction?: "ltr" | "rtl" | "auto" | undefined;
1637
+ anchor?: "flow" | "bottom" | undefined;
1638
+ } | undefined;
1639
+ titleField?: "series" | "title" | "episode" | "source" | "notes" | "author" | "wordCount" | "basedOn" | "subtitle" | "credit" | "draftDate" | "revision" | "contact" | "copyright" | "wga" | undefined;
1640
+ }[];
1641
+ instructions: string | null;
1642
+ importMeta: Record<string, import("@sudobility/writing_core").JsonValue> | null;
1643
+ }>;
1644
+ }, z.core.$strip>;
1645
+ export type TemplateVersionCreateRequest = z.input<typeof templateVersionCreateSchema>;
1646
+ export declare const templateUpdateSchema: z.ZodObject<{
1647
+ name: z.ZodOptional<z.ZodString>;
1648
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1649
+ category: z.ZodOptional<z.ZodString>;
1650
+ }, z.core.$strip>;
1651
+ export type TemplateUpdateRequest = z.infer<typeof templateUpdateSchema>;
1652
+ export interface TemplateArchiveResponse {
1653
+ archived: true;
1654
+ }
1655
+ /** Template file formats: Fadewright's own JSON and the two foreign ones spec 04 §4.3 names. */
1656
+ export declare const TEMPLATE_FILE_FORMATS: readonly ["fwtemplate", "fadein-template", "fdxt"];
1657
+ export type TemplateFileFormat = (typeof TEMPLATE_FILE_FORMATS)[number];
1658
+ /** `{ "format": "fadewright-template", "formatVersion": 1, "template": <TemplateJSON> }` (spec 04 §4.3.1). */
1659
+ export declare const FWTEMPLATE_FORMAT = "fadewright-template";
1660
+ export declare const FWTEMPLATE_FORMAT_VERSION = 1;
1661
+ /**
1662
+ * `POST /templates/import`. Spec 05's `importId` flow is `templateImportByIdSchema` (B16); this body form (the file inline, like
1663
+ * `documents/import`) keeps working. The result is the created template.
1664
+ */
1665
+ export declare const templateImportSchema: z.ZodObject<{
1666
+ scope: z.ZodEnum<{
1667
+ workspace: "workspace";
1668
+ user: "user";
1669
+ }>;
1670
+ workspaceId: z.ZodOptional<z.ZodString>;
1671
+ filename: z.ZodString;
1672
+ contentB64: z.ZodString;
1673
+ }, z.core.$strip>;
1674
+ export type TemplateImportRequest = z.input<typeof templateImportSchema>;
1675
+ /**
1676
+ * The upload flow (B16): `POST /imports {templateTarget, filename, sizeBytes, sha256Hex}`, PUT the file, then
1677
+ * `POST /templates/import {importId}`. Scope and workspace come from the upload, never from this request.
1678
+ */
1679
+ export declare const templateImportByIdSchema: z.ZodObject<{
1680
+ importId: z.ZodString;
1681
+ }, z.core.$strip>;
1682
+ export type TemplateImportByIdRequest = z.infer<typeof templateImportByIdSchema>;
1683
+ /** `GET /templates/:tid/export?format=` (only `fwtemplate` is built). */
1684
+ export declare const templateExportQuerySchema: z.ZodObject<{
1685
+ format: z.ZodDefault<z.ZodEnum<{
1686
+ fwtemplate: "fwtemplate";
1687
+ "fadein-template": "fadein-template";
1688
+ fdxt: "fdxt";
1689
+ json: "json";
1690
+ }>>;
1691
+ version: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1692
+ }, z.core.$strip>;
1693
+ export type TemplateExportQuery = z.infer<typeof templateExportQuerySchema>;
1694
+ export interface TemplateExportResponse {
1695
+ filename: string;
1696
+ mimeType: string;
1697
+ contentB64: string;
1698
+ format: TemplateFileFormat;
1699
+ }