@nxtedition/types 23.0.61 → 23.0.63

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.
@@ -19,6 +19,7 @@ export * from './schema-property.ts';
19
19
  export * from './search.ts';
20
20
  export * from './settings.ts';
21
21
  export * from './subtitle-style.ts';
22
+ export * from './subtitle.ts';
22
23
  export * from './error.ts';
23
24
  export * from './user-notification.ts';
24
25
  export interface Message {
@@ -19,5 +19,6 @@ export * from "./schema-property.js";
19
19
  export * from "./search.js";
20
20
  export * from "./settings.js";
21
21
  export * from "./subtitle-style.js";
22
+ export * from "./subtitle.js";
22
23
  export * from "./error.js";
23
24
  export * from "./user-notification.js";
@@ -26,4 +26,19 @@ export interface SubtitleProfile {
26
26
  * Will pick styling from the corresponding `${style}:subtitle-style` asset.
27
27
  */
28
28
  style?: string;
29
+ ccconverter?: {
30
+ /**
31
+ * This is an ID, which will be used to find a matching `${preset}:ccconverter-preset` record,
32
+ * with settings to pass to ccconverter. If not set, `lang` will be used as a preset ID.
33
+ */
34
+ preset?: string;
35
+ };
36
+ /**
37
+ * Options to pass to encodeASS when generating subtitles for burn-in.
38
+ */
39
+ ass?: {
40
+ futureWordWrapping?: boolean;
41
+ scaledBorderAndShadow?: boolean;
42
+ enableUnsafeLineSpacingHack?: boolean;
43
+ };
29
44
  }
@@ -95,6 +95,10 @@ export interface Settings {
95
95
  children?: boolean;
96
96
  };
97
97
  };
98
+ colorHistory?: Array<{
99
+ color: string | null;
100
+ backgroundColor: string | null;
101
+ }>;
98
102
  };
99
103
  events?: {
100
104
  graphicBaseTemplate?: string;
@@ -106,6 +110,7 @@ export interface Settings {
106
110
  };
107
111
  rundown?: {
108
112
  eventThumbnails?: boolean;
113
+ scriptEventFolding: "folded" | "unfoldedUntilFolded";
109
114
  };
110
115
  gallery?: {
111
116
  dimOnBlur?: boolean;
@@ -184,6 +189,7 @@ export interface Settings {
184
189
  color?: string | null;
185
190
  }>;
186
191
  overridableProperties?: Array<keyof SubtitleStyle | null>;
192
+ previewResolutionScale?: number;
187
193
  };
188
194
  subtitleTemplateId?: string;
189
195
  initialVolume?: string;
@@ -220,6 +226,15 @@ export interface Settings {
220
226
  };
221
227
  edit?: {
222
228
  thumbnailView?: "filmStrip" | "thumbnail" | "none";
229
+ normalize?: {
230
+ presets?: Array<{
231
+ id: string;
232
+ title: string;
233
+ i: number;
234
+ tp: number;
235
+ }>;
236
+ defaultPresetId?: string;
237
+ };
223
238
  voiceOver?: {
224
239
  inputDevice?: string;
225
240
  inputGainDb?: number;
@@ -316,6 +331,10 @@ export interface Settings {
316
331
  };
317
332
  suppressDeleteAlert?: boolean;
318
333
  clone?: {
334
+ create?: {
335
+ titlePrefix?: string;
336
+ titleSuffix?: string;
337
+ };
319
338
  duplicate?: {
320
339
  titlePrefix?: string;
321
340
  titleSuffix?: string;
@@ -335,6 +354,9 @@ export interface Settings {
335
354
  bookmarks?: {
336
355
  refreshInterval?: number;
337
356
  };
357
+ shotbox?: {
358
+ layout?: string;
359
+ };
338
360
  }
339
361
  export type SettingsPaths = Paths<Settings>;
340
362
  interface ModuleTabs {
@@ -13,6 +13,7 @@ export interface SubtitleStyle {
13
13
  scaleX?: string;
14
14
  scaleY?: string;
15
15
  spacing?: string;
16
+ lineSpacing?: string;
16
17
  angle?: string;
17
18
  borderStyle?: string;
18
19
  outline?: string;
@@ -0,0 +1,4 @@
1
+ export type ApplySubtitleSource = string | {
2
+ type: "file";
3
+ file: string;
4
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -357,7 +357,7 @@ declare interface AssetTagsRecord {
357
357
  }
358
358
 
359
359
  declare interface AssetTitleProvidedRecord {
360
- value?: string;
360
+ value?: string | null;
361
361
  }
362
362
 
363
363
  declare interface AssetTitleRecord {
@@ -637,7 +637,7 @@ declare interface DeviceDomainStatusRecord {
637
637
  version?: string;
638
638
  }
639
639
 
640
- declare interface DomainRecords extends AssetDomainRecords, AuthDomainRecords, BundleDomainRecords, CalendarEventDomainRecords, CloneDomainRecords, CommentReactionDomainRecords, CommentReadMarkDomainRecords, CommentDomainRecords, ConditionDomainRecords, ConnectionDomainRecords, ContactDomainRecords, DeepstreamDomainRecords, DesignDomainRecords, DeviceDomainRecords, EditDomainRecords, EventDomainRecords, FileDomainRecords, GeneralDomainRecords, HarvestDomainRecords, IngestclipDomainRecords, IngestScheduleDomainRecords, MediaDomainRecords, MonitorDomainRecords, NoteDomainRecords, PanelDomainRecords, PermissionDomainRecords, PipelinePresetDomainRecords, PipelineDomainRecords, PlanningDomainRecords, PrompterDomainRecords, PublishDomainRecords, PublishedDomainRecords, RenderPresetDomainRecords, RenderDomainRecords, RevsDomainRecords, RoleDomainRecords, ScriptDomainRecords, SearchDomainRecords, SettingsDomainRecords, ShotboxDomainRecords, StoryboardDomainRecords, SubtitleStyleDomainRecords, SubtitleDomainRecords, TemplateDomainRecords, UserNotificationStatusDomainRecords, UserNotificationDomainRecords, UserDomainRecords, UsernameDomainRecords {
640
+ declare interface DomainRecords extends AssetDomainRecords, AuthDomainRecords, BundleDomainRecords, CalendarEventDomainRecords, CloneDomainRecords, CommentReactionDomainRecords, CommentReadMarkDomainRecords, CommentDomainRecords, ConditionDomainRecords, ConnectionDomainRecords, ContactDomainRecords, DeepstreamDomainRecords, DesignDomainRecords, DeviceDomainRecords, EditDomainRecords, EventDomainRecords, FileDomainRecords, FolderDomainRecords, GeneralDomainRecords, HarvestDomainRecords, IngestclipDomainRecords, IngestScheduleDomainRecords, MediaDomainRecords, MonitorDomainRecords, NoteDomainRecords, PanelDomainRecords, PermissionDomainRecords, PipelinePresetDomainRecords, PipelineDomainRecords, PlanningDomainRecords, PrompterDomainRecords, PublishDomainRecords, PublishedDomainRecords, RenderPresetDomainRecords, RenderDomainRecords, RevsDomainRecords, RoleDomainRecords, ScriptDomainRecords, SearchDomainRecords, SettingsDomainRecords, ShotboxDomainRecords, StoryboardDomainRecords, SubtitleStyleDomainRecords, SubtitleDomainRecords, TemplateDomainRecords, UserNotificationStatusDomainRecords, UserNotificationDomainRecords, UserDomainRecords, UsernameDomainRecords {
641
641
  }
642
642
 
643
643
  declare type Dynamic = false | string[];
@@ -757,7 +757,7 @@ declare interface EventNodeContent {
757
757
  type: "event";
758
758
  id: string;
759
759
  mixin: string;
760
- children: EventNodeContent[];
760
+ children?: EventNodeContent[];
761
761
  }
762
762
 
763
763
  declare interface EventOverlayRecord {
@@ -770,6 +770,8 @@ declare type EventProps = {
770
770
  source?: string;
771
771
  cueCard?: boolean | string;
772
772
  startTime?: number;
773
+ shotboxGroup?: string | string[];
774
+ shotboxVisible?: boolean;
773
775
  };
774
776
 
775
777
  declare type EventPropsRecord = EventProps & Record<Exclude<string, keyof EventProps>, JsonValue>;
@@ -1094,6 +1096,14 @@ declare interface FileStats extends File_2 {
1094
1096
  complete: boolean;
1095
1097
  }
1096
1098
 
1099
+ declare interface FolderDomainRecords {
1100
+ ":folder.items": FolderItemsDomainRecord;
1101
+ }
1102
+
1103
+ declare interface FolderItemsDomainRecord {
1104
+ value: string[];
1105
+ }
1106
+
1097
1107
  declare interface FontFace_2 {
1098
1108
  name: string;
1099
1109
  family: string;
@@ -1104,6 +1114,13 @@ declare interface FontFace_2 {
1104
1114
  ranges: Range_2[];
1105
1115
  }
1106
1116
 
1117
+ declare interface FormattedTextNodeContent {
1118
+ type: "text";
1119
+ text: string;
1120
+ style?: string;
1121
+ format?: number;
1122
+ }
1123
+
1107
1124
  declare interface GeneralAssetRecord {
1108
1125
  title?: string;
1109
1126
  tags?: string;
@@ -1514,6 +1531,11 @@ declare interface KeymapSetting {
1514
1531
 
1515
1532
  declare type LayoutWidget = WidgetType | WidgetItem;
1516
1533
 
1534
+ declare interface LinkNodeContent {
1535
+ type: "link" | "autolink";
1536
+ children: FormattedTextNodeContent[];
1537
+ }
1538
+
1517
1539
  declare interface ListItemNodeContent {
1518
1540
  type: "listitem";
1519
1541
  value: number;
@@ -1617,6 +1639,7 @@ declare interface MediaProbeRecord {
1617
1639
  declare interface MediaRecords {
1618
1640
  "media.subtitles": MediaSubtitlesRecord;
1619
1641
  "media.subtitles?": MediaSubtitlesProvidedRecord;
1642
+ "media.transcribe": MediaTranscribeRecord;
1620
1643
  "media.transcribe?": MediaTranscribeProvidedRecord;
1621
1644
  "media.fonts?": MediaFonts;
1622
1645
  "media.consolidate": MediaConsolidateRecord;
@@ -1662,6 +1685,16 @@ declare interface MediaTranscribeProvidedRecord {
1662
1685
  translate?: {
1663
1686
  languages: Record<string, string>;
1664
1687
  };
1688
+ replacers?: Record<string, TranscribeReplacer | TranscribeReplacer[]>;
1689
+ }
1690
+
1691
+ declare interface MediaTranscribeRecord {
1692
+ engines: Record<string, string>;
1693
+ languages: Record<string, string>;
1694
+ translate?: {
1695
+ languages: Record<string, string>;
1696
+ };
1697
+ replacers?: Record<string, TranscribeReplacer | TranscribeReplacer[]>;
1665
1698
  }
1666
1699
 
1667
1700
  declare type MediaTranscriptChangesRecord = {
@@ -3035,6 +3068,10 @@ declare interface Settings {
3035
3068
  children?: boolean;
3036
3069
  };
3037
3070
  };
3071
+ colorHistory?: Array<{
3072
+ color: string | null;
3073
+ backgroundColor: string | null;
3074
+ }>;
3038
3075
  };
3039
3076
  events?: {
3040
3077
  graphicBaseTemplate?: string;
@@ -3046,6 +3083,7 @@ declare interface Settings {
3046
3083
  };
3047
3084
  rundown?: {
3048
3085
  eventThumbnails?: boolean;
3086
+ scriptEventFolding: "folded" | "unfoldedUntilFolded";
3049
3087
  };
3050
3088
  gallery?: {
3051
3089
  dimOnBlur?: boolean;
@@ -3124,6 +3162,7 @@ declare interface Settings {
3124
3162
  color?: string | null;
3125
3163
  }>;
3126
3164
  overridableProperties?: Array<keyof SubtitleStyle | null>;
3165
+ previewResolutionScale?: number;
3127
3166
  };
3128
3167
  subtitleTemplateId?: string;
3129
3168
  initialVolume?: string;
@@ -3160,6 +3199,15 @@ declare interface Settings {
3160
3199
  };
3161
3200
  edit?: {
3162
3201
  thumbnailView?: "filmStrip" | "thumbnail" | "none";
3202
+ normalize?: {
3203
+ presets?: Array<{
3204
+ id: string;
3205
+ title: string;
3206
+ i: number;
3207
+ tp: number;
3208
+ }>;
3209
+ defaultPresetId?: string;
3210
+ };
3163
3211
  voiceOver?: {
3164
3212
  inputDevice?: string;
3165
3213
  inputGainDb?: number;
@@ -3256,6 +3304,10 @@ declare interface Settings {
3256
3304
  };
3257
3305
  suppressDeleteAlert?: boolean;
3258
3306
  clone?: {
3307
+ create?: {
3308
+ titlePrefix?: string;
3309
+ titleSuffix?: string;
3310
+ };
3259
3311
  duplicate?: {
3260
3312
  titlePrefix?: string;
3261
3313
  titleSuffix?: string;
@@ -3275,12 +3327,21 @@ declare interface Settings {
3275
3327
  bookmarks?: {
3276
3328
  refreshInterval?: number;
3277
3329
  };
3330
+ shotbox?: {
3331
+ layout?: string;
3332
+ };
3278
3333
  }
3279
3334
 
3280
3335
  declare interface SettingsDomainRecords {
3281
3336
  ":settings": SettingsRecord;
3337
+ ":settings.node": SettingsNodeRecord;
3282
3338
  }
3283
3339
 
3340
+ declare type SettingsNodeRecord = Record<string, {
3341
+ collapsed: boolean;
3342
+ hidden: boolean;
3343
+ }>;
3344
+
3284
3345
  declare interface SettingsPanelStoreTab extends ModuleTabsSettingsValue {
3285
3346
  activeSectionIndex?: number;
3286
3347
  }
@@ -3316,6 +3377,7 @@ declare type ShotboxGroup = ShotboxEventGroup | ShotboxStreamGroup;
3316
3377
  declare interface ShotboxPage {
3317
3378
  stickyTopRow?: boolean;
3318
3379
  inferGroups?: boolean;
3380
+ excludeFromInferredGroups?: string[];
3319
3381
  layout?: Array<ShotboxGroup[] | ShotboxGroup>;
3320
3382
  }
3321
3383
 
@@ -3631,6 +3693,21 @@ declare interface SubtitleProfile {
3631
3693
  * Will pick styling from the corresponding `${style}:subtitle-style` asset.
3632
3694
  */
3633
3695
  style?: string;
3696
+ ccconverter?: {
3697
+ /**
3698
+ * This is an ID, which will be used to find a matching `${preset}:ccconverter-preset` record,
3699
+ * with settings to pass to ccconverter. If not set, `lang` will be used as a preset ID.
3700
+ */
3701
+ preset?: string;
3702
+ };
3703
+ /**
3704
+ * Options to pass to encodeASS when generating subtitles for burn-in.
3705
+ */
3706
+ ass?: {
3707
+ futureWordWrapping?: boolean;
3708
+ scaledBorderAndShadow?: boolean;
3709
+ enableUnsafeLineSpacingHack?: boolean;
3710
+ };
3634
3711
  }
3635
3712
 
3636
3713
  declare interface SubtitleStyle {
@@ -3648,6 +3725,7 @@ declare interface SubtitleStyle {
3648
3725
  scaleX?: string;
3649
3726
  scaleY?: string;
3650
3727
  spacing?: string;
3728
+ lineSpacing?: string;
3651
3729
  angle?: string;
3652
3730
  borderStyle?: string;
3653
3731
  outline?: string;
@@ -3783,11 +3861,38 @@ declare interface TestOperation {
3783
3861
  value: any;
3784
3862
  }
3785
3863
 
3786
- declare interface TextNodeContent {
3787
- type: "text" | "link" | "autolink";
3788
- text: string;
3789
- style?: string;
3790
- format?: number;
3864
+ declare type TextNodeContent = FormattedTextNodeContent | LinkNodeContent;
3865
+
3866
+ declare interface TranscribeForEachWordReplacer {
3867
+ type: "items";
3868
+ items: string[];
3869
+ _comment?: string;
3870
+ replacers: Array<{
3871
+ /** Expression that should return RegExp or string arg to new RegExp */
3872
+ pattern: Nxtpression<unknown, {
3873
+ item: string;
3874
+ }>;
3875
+ replacement: Nxtpression<string | ((...args: unknown[]) => string), {
3876
+ item: string;
3877
+ }>;
3878
+ flags?: string;
3879
+ _comment?: string;
3880
+ }>;
3881
+ }
3882
+
3883
+ declare type TranscribeReplacer = TranscribeReplaceReplacer | TranscribeForEachWordReplacer;
3884
+
3885
+ declare interface TranscribeReplaceReplacer {
3886
+ type?: "replace";
3887
+ /** Expression that should return RegExp or string arg to new RegExp */
3888
+ pattern: Nxtpression<unknown, {
3889
+ item: string;
3890
+ }>;
3891
+ replacement: Nxtpression<string | ((...args: unknown[]) => string), {
3892
+ item: string;
3893
+ }>;
3894
+ flags?: string;
3895
+ _comment?: string;
3791
3896
  }
3792
3897
 
3793
3898
  /**
@@ -24,7 +24,7 @@ export interface AssetDomainRecords {
24
24
  ":asset.record?": AssetRecordProvidedRecord;
25
25
  }
26
26
  export interface AssetTitleProvidedRecord {
27
- value?: string;
27
+ value?: string | null;
28
28
  }
29
29
  export interface AssetRawTypesProvidedRecord {
30
30
  value?: string[];
@@ -40,6 +40,8 @@ type EventProps = {
40
40
  source?: string;
41
41
  cueCard?: boolean | string;
42
42
  startTime?: number;
43
+ shotboxGroup?: string | string[];
44
+ shotboxVisible?: boolean;
43
45
  };
44
46
  export type EventPropsRecord = EventProps & Record<Exclude<string, keyof EventProps>, JsonValue>;
45
47
  export interface EventOverlayRecord {
@@ -0,0 +1,6 @@
1
+ export interface FolderDomainRecords {
2
+ ":folder.items": FolderItemsDomainRecord;
3
+ }
4
+ export interface FolderItemsDomainRecord {
5
+ value: string[];
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -15,6 +15,7 @@ import type { DeviceDomainRecords } from './device.ts';
15
15
  import type { EditDomainRecords } from './edit.ts';
16
16
  import type { EventDomainRecords } from './event.ts';
17
17
  import type { FileDomainRecords } from './file.ts';
18
+ import type { FolderDomainRecords } from './folder.ts';
18
19
  import type { GeneralDomainRecords } from './general.ts';
19
20
  import type { HarvestDomainRecords } from './harvest.ts';
20
21
  import type { IngestclipDomainRecords } from './ingestclip.ts';
@@ -63,6 +64,7 @@ export * from './device.ts';
63
64
  export * from './edit.ts';
64
65
  export * from './event.ts';
65
66
  export * from './file.ts';
67
+ export * from './folder.ts';
66
68
  export * from './general.ts';
67
69
  export * from './harvest.ts';
68
70
  export * from './ingestclip.ts';
@@ -94,5 +96,5 @@ export * from './user-notification-status.ts';
94
96
  export * from './user-notification.ts';
95
97
  export * from './user.ts';
96
98
  export * from './username.ts';
97
- export interface DomainRecords extends AssetDomainRecords, AuthDomainRecords, BundleDomainRecords, CalendarEventDomainRecords, CloneDomainRecords, CommentReactionDomainRecords, CommentReadMarkDomainRecords, CommentDomainRecords, ConditionDomainRecords, ConnectionDomainRecords, ContactDomainRecords, DeepstreamDomainRecords, DesignDomainRecords, DeviceDomainRecords, EditDomainRecords, EventDomainRecords, FileDomainRecords, GeneralDomainRecords, HarvestDomainRecords, IngestclipDomainRecords, IngestScheduleDomainRecords, MediaDomainRecords, MonitorDomainRecords, NoteDomainRecords, PanelDomainRecords, PermissionDomainRecords, PipelinePresetDomainRecords, PipelineDomainRecords, PlanningDomainRecords, PrompterDomainRecords, PublishDomainRecords, PublishedDomainRecords, RenderPresetDomainRecords, RenderDomainRecords, RevsDomainRecords, RoleDomainRecords, ScriptDomainRecords, SearchDomainRecords, SettingsDomainRecords, ShotboxDomainRecords, StoryboardDomainRecords, SubtitleStyleDomainRecords, SubtitleDomainRecords, TemplateDomainRecords, UserNotificationStatusDomainRecords, UserNotificationDomainRecords, UserDomainRecords, UsernameDomainRecords {
99
+ export interface DomainRecords extends AssetDomainRecords, AuthDomainRecords, BundleDomainRecords, CalendarEventDomainRecords, CloneDomainRecords, CommentReactionDomainRecords, CommentReadMarkDomainRecords, CommentDomainRecords, ConditionDomainRecords, ConnectionDomainRecords, ContactDomainRecords, DeepstreamDomainRecords, DesignDomainRecords, DeviceDomainRecords, EditDomainRecords, EventDomainRecords, FileDomainRecords, FolderDomainRecords, GeneralDomainRecords, HarvestDomainRecords, IngestclipDomainRecords, IngestScheduleDomainRecords, MediaDomainRecords, MonitorDomainRecords, NoteDomainRecords, PanelDomainRecords, PermissionDomainRecords, PipelinePresetDomainRecords, PipelineDomainRecords, PlanningDomainRecords, PrompterDomainRecords, PublishDomainRecords, PublishedDomainRecords, RenderPresetDomainRecords, RenderDomainRecords, RevsDomainRecords, RoleDomainRecords, ScriptDomainRecords, SearchDomainRecords, SettingsDomainRecords, ShotboxDomainRecords, StoryboardDomainRecords, SubtitleStyleDomainRecords, SubtitleDomainRecords, TemplateDomainRecords, UserNotificationStatusDomainRecords, UserNotificationDomainRecords, UserDomainRecords, UsernameDomainRecords {
98
100
  }
@@ -15,6 +15,7 @@ export * from "./device.js";
15
15
  export * from "./edit.js";
16
16
  export * from "./event.js";
17
17
  export * from "./file.js";
18
+ export * from "./folder.js";
18
19
  export * from "./general.js";
19
20
  export * from "./harvest.js";
20
21
  export * from "./ingestclip.js";
@@ -48,14 +48,19 @@ export interface EventNodeContent {
48
48
  type: "event";
49
49
  id: string;
50
50
  mixin: string;
51
- children: EventNodeContent[];
51
+ children?: EventNodeContent[];
52
52
  }
53
- export interface TextNodeContent {
54
- type: "text" | "link" | "autolink";
53
+ export interface FormattedTextNodeContent {
54
+ type: "text";
55
55
  text: string;
56
56
  style?: string;
57
57
  format?: number;
58
58
  }
59
+ export interface LinkNodeContent {
60
+ type: "link" | "autolink";
61
+ children: FormattedTextNodeContent[];
62
+ }
63
+ export type TextNodeContent = FormattedTextNodeContent | LinkNodeContent;
59
64
  export interface ElementNodeContent {
60
65
  type: SerializedLexicalNode["type"];
61
66
  children: TextNodeContent[];
@@ -1,5 +1,10 @@
1
1
  import type { Settings } from '../../common/index.ts';
2
2
  export interface SettingsDomainRecords {
3
3
  ":settings": SettingsRecord;
4
+ ":settings.node": SettingsNodeRecord;
4
5
  }
5
6
  export type SettingsRecord = Settings;
7
+ export type SettingsNodeRecord = Record<string, {
8
+ collapsed: boolean;
9
+ hidden: boolean;
10
+ }>;
@@ -7,6 +7,7 @@ export interface ShotboxDomainRecord {
7
7
  export interface ShotboxPage {
8
8
  stickyTopRow?: boolean;
9
9
  inferGroups?: boolean;
10
+ excludeFromInferredGroups?: string[];
10
11
  layout?: Array<ShotboxGroup[] | ShotboxGroup>;
11
12
  }
12
13
  export type ShotboxGroup = ShotboxEventGroup | ShotboxStreamGroup;
@@ -1,7 +1,8 @@
1
- import type { MediaType, RenderPreset } from '../../common/index.ts';
1
+ import type { MediaType, Nxtpression, RenderPreset } from '../../common/index.ts';
2
2
  export interface MediaRecords {
3
3
  "media.subtitles": MediaSubtitlesRecord;
4
4
  "media.subtitles?": MediaSubtitlesProvidedRecord;
5
+ "media.transcribe": MediaTranscribeRecord;
5
6
  "media.transcribe?": MediaTranscribeProvidedRecord;
6
7
  "media.fonts?": MediaFonts;
7
8
  "media.consolidate": MediaConsolidateRecord;
@@ -14,12 +15,50 @@ export interface MediaSubtitlesProvidedRecord {
14
15
  languages?: Record<string, string>;
15
16
  fontFaces?: SubtitleFontFace[];
16
17
  }
18
+ export interface MediaTranscribeRecord {
19
+ engines: Record<string, string>;
20
+ languages: Record<string, string>;
21
+ translate?: {
22
+ languages: Record<string, string>;
23
+ };
24
+ replacers?: Record<string, TranscribeReplacer | TranscribeReplacer[]>;
25
+ }
17
26
  export interface MediaTranscribeProvidedRecord {
18
27
  engines: Record<string, string>;
19
28
  languages: Record<string, string>;
20
29
  translate?: {
21
30
  languages: Record<string, string>;
22
31
  };
32
+ replacers?: Record<string, TranscribeReplacer | TranscribeReplacer[]>;
33
+ }
34
+ export type TranscribeReplacer = TranscribeReplaceReplacer | TranscribeForEachWordReplacer;
35
+ export interface TranscribeReplaceReplacer {
36
+ type?: "replace";
37
+ /** Expression that should return RegExp or string arg to new RegExp */
38
+ pattern: Nxtpression<unknown, {
39
+ item: string;
40
+ }>;
41
+ replacement: Nxtpression<string | ((...args: unknown[]) => string), {
42
+ item: string;
43
+ }>;
44
+ flags?: string;
45
+ _comment?: string;
46
+ }
47
+ export interface TranscribeForEachWordReplacer {
48
+ type: "items";
49
+ items: string[];
50
+ _comment?: string;
51
+ replacers: Array<{
52
+ /** Expression that should return RegExp or string arg to new RegExp */
53
+ pattern: Nxtpression<unknown, {
54
+ item: string;
55
+ }>;
56
+ replacement: Nxtpression<string | ((...args: unknown[]) => string), {
57
+ item: string;
58
+ }>;
59
+ flags?: string;
60
+ _comment?: string;
61
+ }>;
23
62
  }
24
63
  export interface MediaConsolidateRecord {
25
64
  presets?: {