@nxtedition/types 23.0.33 → 23.0.34

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 (2) hide show
  1. package/dist/nxtpression.d.ts +2407 -110
  2. package/package.json +3 -3
@@ -1,110 +1,2407 @@
1
- import { type AssertionGuard as __AssertionGuard } from "typia";
2
- import type { DomainRecords } from './domains/index.js';
3
- import type { Records } from './index.js';
4
- import type { Observable } from 'rxjs';
5
- type Paths<Data> = keyof Data & string;
6
- type Get<Data, Path extends string> = Path extends keyof Data ? Data[Path] : unknown;
7
- type RecordStateNumber = 0 | 1 | 2 | 3 | 4;
8
- type RecordStateString = "VOID" | "CLIENT" | "SERVER" | "STALE" | "PROVIDER";
9
- type RecordState = RecordStateNumber | RecordStateString;
10
- type _UnaryFunction<T, U> = (arg: T extends null ? never : T) => U;
11
- export interface Underscore {
12
- <T>(input: T): T;
13
- <T, U>(input: T, fn1: _UnaryFunction<T, U>): U;
14
- <T, U, V>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>): V;
15
- <T, U, V, W>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>, fn3: _UnaryFunction<V, W>): W;
16
- <T, U, V, W, X>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>, fn3: _UnaryFunction<V, W>, fn4: _UnaryFunction<W, X>): X;
17
- <T, U, V, W, X, Y>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>, fn3: _UnaryFunction<V, W>, fn4: _UnaryFunction<W, X>, fn5: _UnaryFunction<X, Y>): Y;
18
- <T, U, V, W, X, Y, Z>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>, fn3: _UnaryFunction<V, W>, fn4: _UnaryFunction<W, X>, fn5: _UnaryFunction<X, Y>, fn6: _UnaryFunction<Y, Z>): Z;
19
- /**
20
- * Creates a function which returns the input assetId, only if the asset is of the provided type.
21
- * @param type Asset type to filter on, e.g. "general" or "media"
22
- */
23
- asset: (type: string, state?: number, suspend?: boolean) => (id: string) => string | null;
24
- /**
25
- * @deprecated
26
- */
27
- ds: <Postfix extends keyof DomainRecords, Data extends DomainRecords[Postfix] = DomainRecords[Postfix]>(postfix: Postfix, state?: number, suspend?: boolean) => (assetId: string) => Data;
28
- /**
29
- * Get a deepstream record
30
- *
31
- * Takes a postfix (typically a :domain) and optionally record path and/or
32
- * desired state. Returns a function which takes a prefix (typically an asset
33
- * ID).
34
- *
35
- * @example
36
- * _.get(':contact') // (assetId: string) => ContactRecord
37
- *
38
- * @example
39
- * _.get(':contact', null, 'server') // (assetId: string) => ContactRecord
40
- *
41
- * @example
42
- * _.get(':contact', 'firstName') // (assetId: string) => string | undefined
43
- *
44
- * @example
45
- * _.get(':contact', 'firstName', 'server') // (assetId: string) => string | undefined
46
- */
47
- get<Postfix extends keyof DomainRecords, Data extends DomainRecords[Postfix] = DomainRecords[Postfix], Path extends Paths<Data> | string | null | undefined = Paths<Data>>(postfix: Postfix, path: Path, state?: RecordState, suspend?: boolean): (assetId: string) => Path extends undefined | null ? Partial<Data> : Path extends Paths<Data> ? Get<Data, Path> | undefined : unknown;
48
- get<Postfix extends keyof DomainRecords, Data extends DomainRecords[Postfix] = DomainRecords[Postfix]>(postfix: Postfix): (assetId: string) => Partial<Data>;
49
- timer<V>(dueTime: number): (dueValue?: V) => V;
50
- fetch(options?: RequestInit, suspend?: boolean): (resource: string) => NxtpressionFetch;
51
- }
52
- export interface NxtpressionNxt {
53
- /**
54
- * HTTP fetch
55
- */
56
- fetch(url: string, options?: RequestInit, suspend?: boolean): NxtpressionFetch;
57
- observe<Value>(observable: Observable<Value>, suspend?: boolean): Value;
58
- then<Value>(promise: Promise<Value>, suspend?: boolean): Value;
59
- suspend(): void;
60
- /**
61
- * Creates a function which returns the input assetId, only if the asset is of the provided type.
62
- * @param type Asset type to filter on, e.g. "general" or "media"
63
- */
64
- asset: (assetId: string, type: string, state?: number, suspend?: boolean) => (assetId: string) => string | null;
65
- /**
66
- * @deprecated
67
- */
68
- ds<Name extends keyof Records, Data extends Records[Name] & string>(name: Name, state?: RecordState, suspend?: boolean): Data;
69
- /**
70
- * Get a record.
71
- */
72
- get<Name extends keyof Records, Data extends Records[Name] = Records[Name], Path extends Paths<Data> | undefined | null = undefined>(name: Name, path?: Path, state?: RecordState, suspend?: boolean): Path extends undefined | null ? Data : Path extends Paths<Data> ? Get<Data, Path> : unknown;
73
- get<Name extends keyof Records, Data extends Records[Name] = Records[Name]>(name: Name): Partial<Data>;
74
- /**
75
- * TODO: what is this doing?
76
- */
77
- wrap: <V>(value: V, suspend?: boolean) => unknown;
78
- timer<V>(dueTime: number, dueValue: V, suspend?: boolean): V;
79
- hash(value: unknown): string;
80
- }
81
- export declare const isNxtpressionNxt: (input: unknown) => input is NxtpressionNxt;
82
- export declare const assertNxtpressionNxt: (input: unknown) => NxtpressionNxt;
83
- export declare const randomNxtpressionNxt: () => {
84
- fetch: never;
85
- observe: never;
86
- then: never;
87
- suspend: never;
88
- asset: never;
89
- ds: never;
90
- get: never;
91
- wrap: never;
92
- timer: never;
93
- hash: never;
94
- };
95
- export declare const assertGuardNxtpressionNxt: __AssertionGuard<NxtpressionNxt>;
96
- export declare const stringifyNxtpressionNxt: (input: NxtpressionNxt) => string;
97
- export declare const assertStringifyNxtpressionNxt: (input: unknown) => string;
98
- export interface NxtpressionFetch {
99
- body: string | null;
100
- status: number | null;
101
- headers: Record<string, string>;
102
- err: any;
103
- }
104
- export declare const isNxtpressionFetch: (input: unknown) => input is NxtpressionFetch;
105
- export declare const assertNxtpressionFetch: (input: unknown) => NxtpressionFetch;
106
- export declare const randomNxtpressionFetch: () => NxtpressionFetch;
107
- export declare const assertGuardNxtpressionFetch: __AssertionGuard<NxtpressionFetch>;
108
- export declare const stringifyNxtpressionFetch: (input: NxtpressionFetch) => string;
109
- export declare const assertStringifyNxtpressionFetch: (input: unknown) => string;
110
- export {};
1
+ /// <reference lib="esnext.asynciterable" />
2
+
3
+ /**
4
+ All diff* functions should return a list of operations, often empty.
5
+
6
+ Each operation should be an object with two to four fields:
7
+ * `op`: the name of the operation; one of "add", "remove", "replace", "move",
8
+ "copy", or "test".
9
+ * `path`: a JSON pointer string
10
+ * `from`: a JSON pointer string
11
+ * `value`: a JSON value
12
+
13
+ The different operations have different arguments.
14
+ * "add": [`path`, `value`]
15
+ * "remove": [`path`]
16
+ * "replace": [`path`, `value`]
17
+ * "move": [`from`, `path`]
18
+ * "copy": [`from`, `path`]
19
+ * "test": [`path`, `value`]
20
+
21
+ Currently this only really differentiates between Arrays, Objects, and
22
+ Everything Else, which is pretty much just what JSON substantially
23
+ differentiates between.
24
+ */
25
+ declare interface AddOperation {
26
+ op: 'add';
27
+ path: string;
28
+ value: any;
29
+ }
30
+
31
+ export declare const assertGuardNxtpressionFetch: AssertionGuard<NxtpressionFetch>;
32
+
33
+ export declare const assertGuardNxtpressionNxt: AssertionGuard<NxtpressionNxt>;
34
+
35
+ declare type AssertionGuard<T> = (input: unknown) => asserts input is T;
36
+
37
+ export declare const assertNxtpressionFetch: (input: unknown) => NxtpressionFetch;
38
+
39
+ export declare const assertNxtpressionNxt: (input: unknown) => NxtpressionNxt;
40
+
41
+ export declare const assertStringifyNxtpressionFetch: (input: unknown) => string;
42
+
43
+ export declare const assertStringifyNxtpressionNxt: (input: unknown) => string;
44
+
45
+ declare interface AssetAssigneesProvidedRecord {
46
+ value?: string[];
47
+ }
48
+
49
+ declare interface AssetCommentsRecord {
50
+ /**
51
+ * IDs of comment assets associated with the asset.
52
+ */
53
+ value?: string[];
54
+ }
55
+
56
+ declare interface AssetCreatedProvidedRecord {
57
+ time?: string;
58
+ user?: string;
59
+ origin?: string;
60
+ }
61
+
62
+ declare interface AssetDomainControllersProvidedRecord {
63
+ value?: string[];
64
+ }
65
+
66
+ declare interface AssetDomainDeadlinesProvidedRecord {
67
+ value?: IsoTimestamp[];
68
+ }
69
+
70
+ declare interface AssetDomainDurationProvidedRecord {
71
+ value?: number;
72
+ }
73
+
74
+ declare interface AssetDomainEmbeddingProvidedRecord {
75
+ value?: string[];
76
+ }
77
+
78
+ declare interface AssetDomainIconProvidedRecord {
79
+ value?: string;
80
+ }
81
+
82
+ declare interface AssetDomainLocationsProvidedRecord {
83
+ value?: Array<{
84
+ lat: number;
85
+ lon: number;
86
+ }>;
87
+ }
88
+
89
+ declare interface AssetDomainMediaProvidedRecord {
90
+ [key: string]: unknown;
91
+ }
92
+
93
+ declare interface AssetDomainPresenceProvidedRecord {
94
+ value?: string[];
95
+ }
96
+
97
+ declare interface AssetDomainPublishedProvidedRecord {
98
+ [publishedRecordId: string]: IsoTimestamp;
99
+ }
100
+
101
+ declare interface AssetDomainPublishProvidedRecord {
102
+ value?: string[];
103
+ }
104
+
105
+ declare interface AssetDomainRecords {
106
+ ":asset.title?": AssetTitleProvidedRecord;
107
+ ":asset.types?": AssetTypesProvidedRecord;
108
+ ":asset.assignees?": AssetAssigneesProvidedRecord;
109
+ ":asset.refs?": AssetRefsProvidedRecord;
110
+ ":asset.tags?": AssetTagsProvidedRecord;
111
+ ":asset.fileRefs?": AssetFileRefsProvidedRecord;
112
+ ":asset.created?": AssetCreatedProvidedRecord;
113
+ ":asset.modified?": AssetModifiedProvidedRecord;
114
+ ":asset.status?": AssetDomainStatusProvidedRecord;
115
+ ":asset.icon?": AssetDomainIconProvidedRecord;
116
+ ":asset.deadlines?": AssetDomainDeadlinesProvidedRecord;
117
+ ":asset.publish?": AssetDomainPublishProvidedRecord;
118
+ ":asset.published?": AssetDomainPublishedProvidedRecord;
119
+ ":asset.duration?": AssetDomainDurationProvidedRecord;
120
+ ":asset.locations?": AssetDomainLocationsProvidedRecord;
121
+ ":asset.controllers?": AssetDomainControllersProvidedRecord;
122
+ ":asset.embedding?": AssetDomainEmbeddingProvidedRecord;
123
+ ":asset.media?": AssetDomainMediaProvidedRecord;
124
+ ":asset.presence?": AssetDomainPresenceProvidedRecord;
125
+ ":asset.comments?": AssetCommentsRecord;
126
+ }
127
+
128
+ declare interface AssetDomainStatusProvidedRecord {
129
+ messages: Array<{
130
+ id: string;
131
+ msg: string;
132
+ level: number;
133
+ code: string;
134
+ expose?: boolean | null;
135
+ index?: number | null;
136
+ }>;
137
+ }
138
+
139
+ declare interface AssetFileRefsProvidedRecord {
140
+ value?: string[];
141
+ }
142
+
143
+ declare interface AssetModifiedProvidedRecord {
144
+ time?: string;
145
+ user?: string;
146
+ users?: string[];
147
+ }
148
+
149
+ declare interface AssetPermission {
150
+ type: "asset";
151
+ method: string;
152
+ tags?: undefined;
153
+ }
154
+
155
+ declare interface AssetRecords {
156
+ "asset.assignees": {
157
+ value?: Nxtpression<string[], {
158
+ id: string;
159
+ }>;
160
+ dynamic?: Dynamic;
161
+ };
162
+ "asset.clone": {
163
+ rules: CloneRule[];
164
+ };
165
+ "asset.deadlines": {
166
+ value?: Nxtpression<string, {
167
+ id: string;
168
+ }>;
169
+ dynamic?: Dynamic;
170
+ };
171
+ "asset.duration": {
172
+ value?: Nxtpression<number, {
173
+ id: string;
174
+ }>;
175
+ dynamic?: Dynamic;
176
+ };
177
+ "asset.embedding": {
178
+ value?: Nxtpression<string, {
179
+ id: string;
180
+ }>;
181
+ dynamic?: Dynamic;
182
+ };
183
+ "asset.icon": {
184
+ value?: Nxtpression<string, {
185
+ id: string;
186
+ }>;
187
+ dynamic?: Dynamic;
188
+ };
189
+ "asset.locations": {
190
+ value?: Nxtpression<Array<{
191
+ lat: number;
192
+ lon: number;
193
+ }>, {
194
+ id: string;
195
+ }>;
196
+ dynamic?: Dynamic;
197
+ };
198
+ "asset.media": {
199
+ value?: Nxtpression<Record<string, unknown>, {
200
+ id: string;
201
+ }>;
202
+ dynamic?: Dynamic;
203
+ };
204
+ "asset.tags": {
205
+ value?: Nxtpression<string[], {
206
+ id: string;
207
+ }>;
208
+ dynamic?: Dynamic;
209
+ };
210
+ "asset.title": {
211
+ value?: Nxtpression<string, {
212
+ id: string;
213
+ }>;
214
+ dynamic?: Dynamic;
215
+ };
216
+ "asset.types": {
217
+ [type: string]: null | string | {
218
+ priority?: number;
219
+ label: string;
220
+ icon?: string;
221
+ };
222
+ };
223
+ }
224
+
225
+ declare interface AssetRef {
226
+ id: string;
227
+ key: string;
228
+ value: string;
229
+ }
230
+
231
+ declare interface AssetRefsProvidedRecord {
232
+ value?: AssetRef[];
233
+ }
234
+
235
+ declare interface AssetTagsProvidedRecord {
236
+ value?: string[];
237
+ }
238
+
239
+ declare interface AssetTitleProvidedRecord {
240
+ value?: string;
241
+ }
242
+
243
+ declare interface AssetTypesProvidedRecord {
244
+ value?: string[];
245
+ }
246
+
247
+ declare interface BundleDomainRecords {
248
+ [":bundle"]: BundleRecord;
249
+ [":bundle.revisions"]: BundleRevisionsRecord;
250
+ }
251
+
252
+ declare interface BundleRecord {
253
+ user?: string;
254
+ description?: string;
255
+ files: Record<string, string>;
256
+ }
257
+
258
+ declare interface BundleRevisionsRecord {
259
+ [revisionId: string]: BundleRecord;
260
+ }
261
+
262
+ declare interface CloneDomainCloneRecord {
263
+ rules: CloneRule[];
264
+ }
265
+
266
+ declare interface CloneDomainRecords {
267
+ ":clone": CloneDomainCloneRecord;
268
+ }
269
+
270
+ declare interface CloneRule {
271
+ domain: string;
272
+ path?: string | null;
273
+ template?: string | null;
274
+ }
275
+
276
+ declare interface CommentDomainCommentRecord {
277
+ asset?: string;
278
+ content?: SerializedRootNode | null;
279
+ mediaRevisionId?: string | null;
280
+ timecode?: {
281
+ start: number;
282
+ end?: number;
283
+ };
284
+ replyTo?: string;
285
+ }
286
+
287
+ declare interface CommentDomainReadMarksProvidedRecord {
288
+ value?: string[];
289
+ }
290
+
291
+ declare interface CommentDomainRecords {
292
+ ":comment": CommentDomainCommentRecord;
293
+ ":comment.reactions?": CommentReactionsProvidedRecord;
294
+ ":comment.replies?": CommentDomainRepliesProvidedRecord;
295
+ ":comment.readMarks?": CommentDomainReadMarksProvidedRecord;
296
+ }
297
+
298
+ declare interface CommentDomainRepliesProvidedRecord {
299
+ value?: string[];
300
+ }
301
+
302
+ declare interface CommentReactionDomainRecord {
303
+ comment: string;
304
+ user: string;
305
+ reaction: string;
306
+ }
307
+
308
+ declare interface CommentReactionDomainRecords {
309
+ "comment-reaction": CommentReactionDomainRecord;
310
+ }
311
+
312
+ declare interface CommentReactionsProvidedRecord {
313
+ [reaction: string]: Array<{
314
+ id: string;
315
+ user: string;
316
+ }>;
317
+ }
318
+
319
+ declare interface CommentReadMarkDomainRecord {
320
+ comment: string;
321
+ user: string;
322
+ time: string;
323
+ }
324
+
325
+ declare interface CommentReadMarkDomainRecords {
326
+ "comment-read-mark": CommentReadMarkDomainRecord;
327
+ }
328
+
329
+ declare interface ConnectionDomainRecords {
330
+ [":connection"]: ConnectionRecord;
331
+ [":connection.methods?"]: Record<string, object>;
332
+ [":connection.stats?"]: ConnectionStatsRecord;
333
+ }
334
+
335
+ declare type ConnectionRecord = FilePublishConnectionRecord | ReutersConnectionRecord | FacebookConnectionRecord;
336
+
337
+ declare interface ConnectionRecordCommon {
338
+ type: string;
339
+ userNotificationsEnabled?: boolean;
340
+ }
341
+
342
+ declare interface ConnectionStatsRecord {
343
+ status?: string;
344
+ substatus?: string;
345
+ pages?: Array<{
346
+ id: unknown;
347
+ }>;
348
+ }
349
+
350
+ declare interface ContactDomainRecords {
351
+ ":contact": ContactRecord;
352
+ }
353
+
354
+ declare interface ContactRecord {
355
+ title?: string;
356
+ email?: string;
357
+ firstName?: string;
358
+ lastName?: string;
359
+ }
360
+
361
+ declare interface CopyOperation {
362
+ op: 'copy';
363
+ from: string;
364
+ path: string;
365
+ }
366
+
367
+ declare interface DeepstreamDomainRecords {
368
+ ":deepstream.replicate": DeepstreamDomainReplicateRecord;
369
+ }
370
+
371
+ declare interface DeepstreamDomainReplicateRecord {
372
+ synced?: boolean;
373
+ since?: string | 0 | null;
374
+ }
375
+
376
+ declare interface DesignDomainRecord<Id = string, Key = string, Value = unknown> {
377
+ rows: DesignViewRow<Id, Key, Value>[];
378
+ }
379
+
380
+ declare interface DesignDomainRecords {
381
+ ":design": DesignDomainRecord;
382
+ }
383
+
384
+ declare interface DesignViewRow<Id = string, Key = string, Value = void> {
385
+ id: Id;
386
+ key: Key;
387
+ value: Value;
388
+ }
389
+
390
+ declare type DomainRecords = AssetDomainRecords & BundleDomainRecords & CloneDomainRecords & CommentReactionDomainRecords & CommentReadMarkDomainRecords & CommentDomainRecords & ConnectionDomainRecords & ContactDomainRecords & DeepstreamDomainRecords & DesignDomainRecords & EditDomainRecords & EventDomainRecords & FileDomainRecords & GeneralDomainRecords & MediaDomainRecords & PanelDomainRecords & PermissionDomainRecords & PipelinePresetDomainRecords & PipelineDomainRecords & PlanningDomainRecords & PublishDomainRecords & PublishedDomainRecords & RenderPresetDomainRecords & RenderDomainRecords & RevsDomainRecords & RoleDomainRecords & ScriptDomainRecords & SearchDomainRecords & SettingsDomainRecords & StoryboardDomainRecords & SubtitleStyleDomainRecords & SubtitleDomainRecords & TemplateDomainRecords & UserNotificationStatusDomainRecords & UserNotificationDomainRecords & UserDomainRecords;
391
+
392
+ declare interface DomainRows {
393
+ rows: string[];
394
+ }
395
+
396
+ declare type Domains = Exclude<keyof DomainRecords, ":design">;
397
+
398
+ declare type Dynamic = false | string[];
399
+
400
+ declare interface EditDomainRecords {
401
+ ":edit": EditRecord;
402
+ }
403
+
404
+ declare interface EditRecord {
405
+ nodes: object;
406
+ tracks: object[];
407
+ transitions: object;
408
+ active?: boolean;
409
+ changeId?: string;
410
+ }
411
+
412
+ declare interface EventDomainRecords {
413
+ ":event": EventRecord;
414
+ ":event._template?": Record<string, unknown>;
415
+ }
416
+
417
+ declare interface EventRecord {
418
+ start?: number;
419
+ end?: number;
420
+ duration?: number;
421
+ text?: string;
422
+ lang?: string;
423
+ style?: string;
424
+ styleOverrides?: SubtitleEventStyleOverrides;
425
+ }
426
+
427
+ declare interface FacebookConnectionRecord extends ConnectionRecordCommon {
428
+ type: "facebook";
429
+ grantedScopes?: string[];
430
+ }
431
+
432
+ declare interface FacebookPublishRecord extends PublishRecordCommon<"facebook"> {
433
+ pageId?: string;
434
+ }
435
+
436
+ declare interface FacebookPublishStatsRecord extends PublishStatsRecordCommon {
437
+ }
438
+
439
+ declare interface File_2 {
440
+ id: string & Pattern<'^[0-9A-Za-z~][0-9A-Za-z~._: -]*$'>;
441
+ size: (number & Minimum<0> & Type<'uint64'>) | null;
442
+ seekable: boolean;
443
+ deleted: boolean;
444
+ refs: FileRefs;
445
+ tags: string[];
446
+ resumable: string;
447
+ mimeType: string;
448
+ encoding: string;
449
+ hash: string & Pattern<'^([A-Fa-f0-9]{32})?$'>;
450
+ btime: number & Minimum<0> & Type<'uint64'>;
451
+ completed: boolean;
452
+ error: NxtError[] | NxtError | null;
453
+ }
454
+
455
+ declare interface FileDomainRecords {
456
+ ":file.replicate": FileReplicateRecord;
457
+ ":file.restrictions": FileRestrictionsRecord;
458
+ ":file.stats?": FileDomainStatsRecord;
459
+ }
460
+
461
+ declare type FileDomainStatsRecord = FileStats;
462
+
463
+ declare interface FilePublishBaseConnectionRecord extends ConnectionRecordCommon {
464
+ type: "file";
465
+ protocol: string;
466
+ host?: string;
467
+ port?: number | string;
468
+ ignoreMissing?: boolean;
469
+ concurrency?: number;
470
+ stabilityThreshold?: number;
471
+ pollInterval?: number;
472
+ listConcurrency?: number;
473
+ metafile?: {
474
+ content: string;
475
+ };
476
+ }
477
+
478
+ declare type FilePublishConnectionRecord = FilePublishConnectionS3Record;
479
+
480
+ declare interface FilePublishConnectionS3Record extends FilePublishBaseConnectionRecord {
481
+ protocol: "s3";
482
+ client?: unknown;
483
+ bucket?: string;
484
+ }
485
+
486
+ declare interface FilePublishDefaults extends Record<string, unknown> {
487
+ directory: string;
488
+ filename: string;
489
+ renders: Record<string, FilePublishRender>;
490
+ }
491
+
492
+ declare interface FilePublishDraft extends Record<string, unknown> {
493
+ directory?: string;
494
+ filename?: string;
495
+ }
496
+
497
+ declare interface FilePublishPublished extends Record<string, unknown> {
498
+ directory?: string;
499
+ filename: string;
500
+ }
501
+
502
+ declare interface FilePublishRecord extends PublishRecordCommon<"file"> {
503
+ directory?: string;
504
+ filename?: string;
505
+ renders?: Record<string, FilePublishRender>;
506
+ draft?: FilePublishDraft;
507
+ remote?: FilePublishRemote;
508
+ published?: FilePublishPublished;
509
+ }
510
+
511
+ declare interface FilePublishRecordLegacy extends PublishRecordCommon<"file"> {
512
+ directory?: string;
513
+ filename?: string;
514
+ draft?: FilePublishDraft;
515
+ remote?: FilePublishRemoteLegacy;
516
+ published?: FilePublishPublished;
517
+ renders?: undefined;
518
+ }
519
+
520
+ declare interface FilePublishRemote extends Record<string, unknown> {
521
+ directory?: string;
522
+ filename?: string;
523
+ renders?: Record<string, FilePublishRemoteRender>;
524
+ }
525
+
526
+ declare interface FilePublishRemoteLegacy extends Record<string, unknown> {
527
+ id?: string;
528
+ path: string;
529
+ filename: string;
530
+ directory?: string;
531
+ subtitle?: {
532
+ path: string;
533
+ };
534
+ metafile?: {
535
+ path: string;
536
+ };
537
+ }
538
+
539
+ declare interface FilePublishRemoteRender {
540
+ path?: string;
541
+ messages?: Message[];
542
+ query?: unknown;
543
+ size?: number;
544
+ hash?: string;
545
+ source?: string;
546
+ }
547
+
548
+ declare type FilePublishRender = Nxtpression<ResolvedFilePublishRender, {
549
+ publish: FilePublishRecord;
550
+ directory: string;
551
+ name: string;
552
+ }>;
553
+
554
+ declare interface FilePublishRetrieved extends Record<string, unknown> {
555
+ filename?: string;
556
+ directory?: string;
557
+ renders?: Record<string, FilePublishRetrievedRender>;
558
+ }
559
+
560
+ declare interface FilePublishRetrievedRender {
561
+ path: string;
562
+ size?: number;
563
+ hash?: string;
564
+ }
565
+
566
+ declare interface FilePublishStatsRecord extends PublishStatsRecordCommon {
567
+ retrieved?: FilePublishRetrieved;
568
+ defaults?: FilePublishDefaults;
569
+ }
570
+
571
+ declare type FileRef = {
572
+ file?: string;
573
+ offset?: number;
574
+ start?: number;
575
+ end?: number;
576
+ };
577
+
578
+ declare type FileRefs = Array<FileRef>;
579
+
580
+ declare interface FileReplicateRecord {
581
+ replicas: string[];
582
+ error: NxtError | null;
583
+ }
584
+
585
+ declare interface FileRestrictionsRecord {
586
+ [restrictionId: string]: {
587
+ asset: string;
588
+ date: string;
589
+ user: string;
590
+ text: string;
591
+ start: number;
592
+ end: number;
593
+ };
594
+ }
595
+
596
+ declare interface FileStats extends File_2 {
597
+ position: (number & Minimum<0> & Type<'uint64'>) | null;
598
+ uploading: boolean | null;
599
+ zones: string[];
600
+ replicas: string[];
601
+ locations: string[];
602
+ ranges: Array<[
603
+ start: number & Minimum<0>,
604
+ end: number & Minimum<0>
605
+ ]>;
606
+ progress?: number & Minimum<0> & Maximum<1>;
607
+ speed?: number & Minimum<0>;
608
+ }
609
+
610
+ declare interface GeneralCreatedRecord {
611
+ time?: string;
612
+ user?: string;
613
+ origin?: string;
614
+ }
615
+
616
+ declare interface GeneralDescriptionRecord {
617
+ value?: string;
618
+ }
619
+
620
+ declare interface GeneralDomainRecords {
621
+ ":general.title": GeneralTitleRecord;
622
+ ":general.tags": GeneralTagsRecord;
623
+ ":general.created": GeneralCreatedRecord;
624
+ ":general.poster": GeneralPosterRecord;
625
+ ":general.status": GeneralStatusRecord;
626
+ ":general.description": GeneralDescriptionRecord;
627
+ }
628
+
629
+ declare interface GeneralPosterRecord {
630
+ input?: {
631
+ type?: string;
632
+ file?: string;
633
+ };
634
+ preset?: string;
635
+ }
636
+
637
+ declare type GeneralStatusRecord = {
638
+ [messageId: string]: GeneralStatusRecordValue;
639
+ };
640
+
641
+ declare interface GeneralStatusRecordValue {
642
+ expose?: boolean;
643
+ }
644
+
645
+ /**
646
+ * Record holding manually added tags
647
+ */
648
+ declare interface GeneralTagsRecord {
649
+ /**
650
+ * Manually added tags
651
+ */
652
+ value?: string[];
653
+ }
654
+
655
+ declare interface GeneralTitleRecord {
656
+ value?: string;
657
+ }
658
+
659
+ declare type Get<Data, Path extends string> = Path extends keyof Data ? Data[Path] : unknown;
660
+
661
+ export declare const isNxtpressionFetch: (input: unknown) => input is NxtpressionFetch;
662
+
663
+ export declare const isNxtpressionNxt: (input: unknown) => input is NxtpressionNxt;
664
+
665
+ declare type IsoTimestamp = string;
666
+
667
+ declare interface KeymapSetting {
668
+ title: string;
669
+ sequence?: string;
670
+ }
671
+
672
+ declare type LayoutWidget = WidgetType | WidgetItem;
673
+
674
+ declare type Maximum<Value extends number | bigint> = TagBase<{
675
+ target: Value extends number ? "number" : "bigint";
676
+ kind: "maximum";
677
+ value: Value;
678
+ validate: `$input <= ${Numeric_2<Value>}`;
679
+ exclusive: ["maximum", "exclusiveMaximum"];
680
+ schema: Value extends number ? {
681
+ maximum: Value;
682
+ } : undefined;
683
+ }>;
684
+
685
+ declare interface MediaConsolidateRecord {
686
+ source?: unknown;
687
+ target?: unknown;
688
+ preset?: RenderPreset;
689
+ error?: unknown;
690
+ }
691
+
692
+ declare interface MediaDomainRecords {
693
+ ":media.source": MediaSourceRecord;
694
+ ":media.consolidate": MediaConsolidateRecord;
695
+ ":media.renders?": MediaRendersRecord;
696
+ ":media.transcriptChanges": MediaTranscriptChangesRecord;
697
+ ":media.font": MediaFontRecord;
698
+ ":media.restrictions?": MediaRestrictionsRecord;
699
+ ":media.probe?": MediaProbeRecord;
700
+ ":media.updateSubtitles?": Record<string, unknown>;
701
+ ":media.updateGraphics?": Record<string, unknown>;
702
+ }
703
+
704
+ declare interface MediaFontRecord {
705
+ sampleText?: string;
706
+ }
707
+
708
+ declare interface MediaProbeRecord {
709
+ duration?: number | null;
710
+ error: NxtError | null;
711
+ type: MediaType;
712
+ live?: boolean | null;
713
+ url?: string | null;
714
+ subtitle?: {
715
+ codec?: string | null;
716
+ };
717
+ }
718
+
719
+ declare interface MediaRenderRecordValue {
720
+ id?: string;
721
+ title?: string;
722
+ children?: MediaRenderRecordValue[];
723
+ }
724
+
725
+ declare interface MediaRendersRecord {
726
+ children: MediaRenderRecordValue[];
727
+ }
728
+
729
+ declare interface MediaRestrictionsRecord {
730
+ [restrictionId: string]: {
731
+ asset: string;
732
+ date: string;
733
+ user: string;
734
+ text: string;
735
+ start: number;
736
+ end: number;
737
+ file: string;
738
+ };
739
+ }
740
+
741
+ declare type MediaSourceRecord = RenderSceneObject;
742
+
743
+ declare type MediaTranscriptChangesRecord = {
744
+ [patchKey: string]: MediaTranscriptChangesRecordValue;
745
+ };
746
+
747
+ declare interface MediaTranscriptChangesRecordValue {
748
+ patch?: Operation[];
749
+ }
750
+
751
+ declare type MediaType = "audio" | "video" | "image";
752
+
753
+ declare interface Message {
754
+ level: number;
755
+ code: string;
756
+ msg: string;
757
+ }
758
+
759
+ declare type Minimum<Value extends number | bigint> = TagBase<{
760
+ target: Value extends number ? "number" : "bigint";
761
+ kind: "minimum";
762
+ value: Value;
763
+ validate: `${Numeric<Value>} <= $input`;
764
+ exclusive: ["minimum", "exclusiveMinimum"];
765
+ schema: Value extends number ? {
766
+ minimum: Value;
767
+ } : undefined;
768
+ }>;
769
+
770
+ declare interface ModuleTabs {
771
+ [tabId: string]: ModuleTabsSettingsValue;
772
+ settingsPanelStore: SettingsPanelStoreTab;
773
+ }
774
+
775
+ declare interface ModuleTabsSettingsValue {
776
+ activeTab: string;
777
+ }
778
+
779
+ declare interface MoveOperation {
780
+ op: 'move';
781
+ from: string;
782
+ path: string;
783
+ }
784
+
785
+ declare type NotificationReason = "mentioned" | "assigned" | "author" | "participated" | "always";
786
+
787
+ declare type Numeric<Value extends number | bigint> = Value extends number ? Value : `BigInt(${Value})`;
788
+
789
+ declare type Numeric_2<Value extends number | bigint> = Value extends number ? Value : `BigInt(${Value})`;
790
+
791
+ declare interface NxtError {
792
+ message: string;
793
+ type?: string;
794
+ code?: string;
795
+ exitCode?: number;
796
+ signalCode?: number;
797
+ statusCode?: number;
798
+ headers?: Record<string, string>;
799
+ data?: object;
800
+ cause?: NxtError | null;
801
+ errors?: NxtError[] | null;
802
+ }
803
+
804
+ declare type Nxtpression<ReturnValue = string, Context extends object = object> = (String & {
805
+ /**
806
+ * TS-HACK: this property doesn't really exist on the nxtpression string,
807
+ * it is only here to make sure the generic Context won't get stripped.
808
+ */
809
+ __context: Context;
810
+ /**
811
+ * TS-HACK: this property doesn't really exist on the nxtpression string,
812
+ * it is only here to make sure the generic Context won't get stripped.
813
+ */
814
+ __returnValue: ReturnValue;
815
+ }) | string | ReturnValue;
816
+
817
+ export declare interface NxtpressionFetch {
818
+ body: string | null;
819
+ status: number | null;
820
+ headers: Record<string, string>;
821
+ err: any;
822
+ }
823
+
824
+ export declare interface NxtpressionNxt {
825
+ /**
826
+ * HTTP fetch
827
+ */
828
+ fetch(url: string, options?: RequestInit, suspend?: boolean): NxtpressionFetch;
829
+ observe<Value>(observable: Observable<Value>, suspend?: boolean): Value;
830
+ then<Value>(promise: Promise<Value>, suspend?: boolean): Value;
831
+ suspend(): void;
832
+ /**
833
+ * Creates a function which returns the input assetId, only if the asset is of the provided type.
834
+ * @param type Asset type to filter on, e.g. "general" or "media"
835
+ */
836
+ asset: (assetId: string, type: string, state?: number, suspend?: boolean) => (assetId: string) => string | null;
837
+ /**
838
+ * @deprecated
839
+ */
840
+ ds<Name extends keyof Records, Data extends Records[Name] & string>(name: Name, state?: RecordState, suspend?: boolean): Data;
841
+ /**
842
+ * Get a record.
843
+ */
844
+ get<Name extends keyof Records, Data extends Records[Name] = Records[Name], Path extends Paths<Data> | undefined | null = undefined>(name: Name, path?: Path, state?: RecordState, suspend?: boolean): Path extends undefined | null ? Data : Path extends Paths<Data> ? Get<Data, Path> : unknown;
845
+ get<Name extends keyof Records, Data extends Records[Name] = Records[Name]>(name: Name): Partial<Data>;
846
+ /**
847
+ * TODO: what is this doing?
848
+ */
849
+ wrap: <V>(value: V, suspend?: boolean) => unknown;
850
+ timer<V>(dueTime: number, dueValue: V, suspend?: boolean): V;
851
+ hash(value: unknown): string;
852
+ }
853
+
854
+ /**
855
+ * A representation of any set of values over any amount of time. This is the most basic building block
856
+ * of RxJS.
857
+ *
858
+ * @class Observable<T>
859
+ */
860
+ declare class Observable<T> implements Subscribable<T> {
861
+ /**
862
+ * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.
863
+ */
864
+ source: Observable<any> | undefined;
865
+ /**
866
+ * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.
867
+ */
868
+ operator: Operator<any, T> | undefined;
869
+ /**
870
+ * @constructor
871
+ * @param {Function} subscribe the function that is called when the Observable is
872
+ * initially subscribed to. This function is given a Subscriber, to which new values
873
+ * can be `next`ed, or an `error` method can be called to raise an error, or
874
+ * `complete` can be called to notify of a successful completion.
875
+ */
876
+ constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic);
877
+ /**
878
+ * Creates a new Observable by calling the Observable constructor
879
+ * @owner Observable
880
+ * @method create
881
+ * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor
882
+ * @return {Observable} a new observable
883
+ * @nocollapse
884
+ * @deprecated Use `new Observable()` instead. Will be removed in v8.
885
+ */
886
+ static create: (...args: any[]) => any;
887
+ /**
888
+ * Creates a new Observable, with this Observable instance as the source, and the passed
889
+ * operator defined as the new observable's operator.
890
+ * @method lift
891
+ * @param operator the operator defining the operation to take on the observable
892
+ * @return a new observable with the Operator applied
893
+ * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.
894
+ * If you have implemented an operator using `lift`, it is recommended that you create an
895
+ * operator by simply returning `new Observable()` directly. See "Creating new operators from
896
+ * scratch" section here: https://rxjs.dev/guide/operators
897
+ */
898
+ lift<R>(operator?: Operator<T, R>): Observable<R>;
899
+ subscribe(observerOrNext?: Partial<Observer<T>> | ((value: T) => void)): Subscription;
900
+ /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */
901
+ subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;
902
+ /**
903
+ * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with
904
+ * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.
905
+ *
906
+ * **WARNING**: Only use this with observables you *know* will complete. If the source
907
+ * observable does not complete, you will end up with a promise that is hung up, and
908
+ * potentially all of the state of an async function hanging out in memory. To avoid
909
+ * this situation, look into adding something like {@link timeout}, {@link take},
910
+ * {@link takeWhile}, or {@link takeUntil} amongst others.
911
+ *
912
+ * #### Example
913
+ *
914
+ * ```ts
915
+ * import { interval, take } from 'rxjs';
916
+ *
917
+ * const source$ = interval(1000).pipe(take(4));
918
+ *
919
+ * async function getTotal() {
920
+ * let total = 0;
921
+ *
922
+ * await source$.forEach(value => {
923
+ * total += value;
924
+ * console.log('observable -> ' + value);
925
+ * });
926
+ *
927
+ * return total;
928
+ * }
929
+ *
930
+ * getTotal().then(
931
+ * total => console.log('Total: ' + total)
932
+ * );
933
+ *
934
+ * // Expected:
935
+ * // 'observable -> 0'
936
+ * // 'observable -> 1'
937
+ * // 'observable -> 2'
938
+ * // 'observable -> 3'
939
+ * // 'Total: 6'
940
+ * ```
941
+ *
942
+ * @param next a handler for each value emitted by the observable
943
+ * @return a promise that either resolves on observable completion or
944
+ * rejects with the handled error
945
+ */
946
+ forEach(next: (value: T) => void): Promise<void>;
947
+ /**
948
+ * @param next a handler for each value emitted by the observable
949
+ * @param promiseCtor a constructor function used to instantiate the Promise
950
+ * @return a promise that either resolves on observable completion or
951
+ * rejects with the handled error
952
+ * @deprecated Passing a Promise constructor will no longer be available
953
+ * in upcoming versions of RxJS. This is because it adds weight to the library, for very
954
+ * little benefit. If you need this functionality, it is recommended that you either
955
+ * polyfill Promise, or you create an adapter to convert the returned native promise
956
+ * to whatever promise implementation you wanted. Will be removed in v8.
957
+ */
958
+ forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise<void>;
959
+ pipe(): Observable<T>;
960
+ pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;
961
+ pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;
962
+ pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;
963
+ pipe<A, B, C, D>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>): Observable<D>;
964
+ pipe<A, B, C, D, E>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>): Observable<E>;
965
+ pipe<A, B, C, D, E, F>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>): Observable<F>;
966
+ pipe<A, B, C, D, E, F, G>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>): Observable<G>;
967
+ pipe<A, B, C, D, E, F, G, H>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>): Observable<H>;
968
+ pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>): Observable<I>;
969
+ pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>, ...operations: OperatorFunction<any, any>[]): Observable<unknown>;
970
+ /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */
971
+ toPromise(): Promise<T | undefined>;
972
+ /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */
973
+ toPromise(PromiseCtor: typeof Promise): Promise<T | undefined>;
974
+ /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */
975
+ toPromise(PromiseCtor: PromiseConstructorLike): Promise<T | undefined>;
976
+ }
977
+
978
+ /**
979
+ * An object interface that defines a set of callback functions a user can use to get
980
+ * notified of any set of {@link Observable}
981
+ * {@link guide/glossary-and-semantics#notification notification} events.
982
+ *
983
+ * For more info, please refer to {@link guide/observer this guide}.
984
+ */
985
+ declare interface Observer<T> {
986
+ /**
987
+ * A callback function that gets called by the producer during the subscription when
988
+ * the producer "has" the `value`. It won't be called if `error` or `complete` callback
989
+ * functions have been called, nor after the consumer has unsubscribed.
990
+ *
991
+ * For more info, please refer to {@link guide/glossary-and-semantics#next this guide}.
992
+ */
993
+ next: (value: T) => void;
994
+ /**
995
+ * A callback function that gets called by the producer if and when it encountered a
996
+ * problem of any kind. The errored value will be provided through the `err` parameter.
997
+ * This callback can't be called more than one time, it can't be called if the
998
+ * `complete` callback function have been called previously, nor it can't be called if
999
+ * the consumer has unsubscribed.
1000
+ *
1001
+ * For more info, please refer to {@link guide/glossary-and-semantics#error this guide}.
1002
+ */
1003
+ error: (err: any) => void;
1004
+ /**
1005
+ * A callback function that gets called by the producer if and when it has no more
1006
+ * values to provide (by calling `next` callback function). This means that no error
1007
+ * has happened. This callback can't be called more than one time, it can't be called
1008
+ * if the `error` callback function have been called previously, nor it can't be called
1009
+ * if the consumer has unsubscribed.
1010
+ *
1011
+ * For more info, please refer to {@link guide/glossary-and-semantics#complete this guide}.
1012
+ */
1013
+ complete: () => void;
1014
+ }
1015
+
1016
+ declare type Operation = AddOperation | RemoveOperation | ReplaceOperation | MoveOperation | CopyOperation | TestOperation;
1017
+
1018
+ /***
1019
+ * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.
1020
+ */
1021
+ declare interface Operator<T, R> {
1022
+ call(subscriber: Subscriber<R>, source: any): TeardownLogic;
1023
+ }
1024
+
1025
+ declare interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Observable<R>> {
1026
+ }
1027
+
1028
+ declare interface PanelDomainPanelRecord {
1029
+ title?: string;
1030
+ supports?: string[] | string;
1031
+ priority?: number;
1032
+ editorPriority?: number;
1033
+ properties?: {
1034
+ [key: string]: PanelProperty;
1035
+ };
1036
+ layout?: {
1037
+ panel?: PanelLayout;
1038
+ editor?: PanelLayout;
1039
+ };
1040
+ filter?: Nxtpression;
1041
+ expand?: Nxtpression;
1042
+ }
1043
+
1044
+ declare interface PanelDomainRecords {
1045
+ ":panel": PanelDomainPanelRecord;
1046
+ }
1047
+
1048
+ declare type PanelLayout = string | PanelLayoutDivider | PanelLayoutItem | PanelLayout[];
1049
+
1050
+ declare interface PanelLayoutDivider {
1051
+ type: "divider";
1052
+ title?: string;
1053
+ }
1054
+
1055
+ declare interface PanelLayoutItem {
1056
+ property: string;
1057
+ width?: string | number;
1058
+ widget?: LayoutWidget;
1059
+ }
1060
+
1061
+ declare interface PanelProperty {
1062
+ /** Specifying what type of data will be entered into the field. */
1063
+ type: "array" | "asset" | "boolean" | "datetime" | "number" | "string" | "object" | "rpc";
1064
+ /** User-friendly title of the property. This will be used as the field's label in the UI. */
1065
+ title?: string;
1066
+ description?: string;
1067
+ domain?: string;
1068
+ path?: string;
1069
+ computed?: Nxtpression<unknown>;
1070
+ /** An object specifying where to index the data. Adding this will effectively make the data searchable. */
1071
+ index?: {
1072
+ /** A string specifying the user-friendly title of the search property. This is what users will see when creating search filters and bookmarks. */
1073
+ label: string;
1074
+ /** A string specifying where to store the data in the search index. Note that this should be a globally unique value in the system. Typically you'd use `{domain}.{path}` and you should prefer English in camel case */
1075
+ path: string;
1076
+ };
1077
+ /** If present, indicates that the user must specify a value for the asset to be treated as valid. */
1078
+ required?: boolean;
1079
+ oneOf?: unknown[];
1080
+ }
1081
+
1082
+ declare type Paths<Data> = keyof Data & string;
1083
+
1084
+ declare type Pattern<Value extends string> = TagBase<{
1085
+ target: "string";
1086
+ kind: "pattern";
1087
+ value: Value;
1088
+ validate: `/${Value}/.test($input)`;
1089
+ exclusive: ["format", "pattern"];
1090
+ schema: {
1091
+ pattern: Value;
1092
+ };
1093
+ }>;
1094
+
1095
+ declare interface PermissionDomainRecords {
1096
+ ":permission?": ProvidedPermissionRecord;
1097
+ ":permission": PermissionRecord;
1098
+ }
1099
+
1100
+ declare type PermissionRecord = PermissionRecordPermisson;
1101
+
1102
+ declare type PermissionRecordPermisson = TagPermission | AssetPermission | RpcPermission;
1103
+
1104
+ declare interface PipelineDomainItemsRecord {
1105
+ value?: string[];
1106
+ }
1107
+
1108
+ declare interface PipelineDomainRecord {
1109
+ dummy?: boolean;
1110
+ assetType?: "pipeline" | "collection";
1111
+ preset?: string;
1112
+ color?: string;
1113
+ tags?: string[];
1114
+ type?: string;
1115
+ bookmarkId?: string;
1116
+ hiddenCreateMenuItems?: Record<string, unknown>;
1117
+ }
1118
+
1119
+ declare interface PipelineDomainRecords {
1120
+ ":pipeline": PipelineDomainRecord;
1121
+ ":pipeline.items": PipelineDomainItemsRecord;
1122
+ }
1123
+
1124
+ declare interface PipelinePresetDomainRecord {
1125
+ createMenuItems?: string[] | null;
1126
+ color?: string;
1127
+ tags?: string[];
1128
+ sortMode?: PipelineSortMode;
1129
+ }
1130
+
1131
+ declare interface PipelinePresetDomainRecords {
1132
+ ":pipeline-preset": PipelinePresetDomainRecord;
1133
+ }
1134
+
1135
+ declare type PipelineSortMode = "default" | "manual" | "az" | "za" | "newest" | "oldest" | "mostrecent" | "leastrecent" | "earliestdeadline" | "latestdeadline";
1136
+
1137
+ declare interface PlanningAssigneesRecord {
1138
+ value?: string[];
1139
+ }
1140
+
1141
+ declare interface PlanningDeadlineRecord {
1142
+ value: string | null;
1143
+ }
1144
+
1145
+ declare interface PlanningDomainRecords {
1146
+ ":planning": PlanningRecord;
1147
+ ":planning.assignees": PlanningAssigneesRecord;
1148
+ ":planning.deadline": PlanningDeadlineRecord;
1149
+ }
1150
+
1151
+ declare interface PlanningRecord {
1152
+ deadline?: string | null;
1153
+ }
1154
+
1155
+ declare interface PromotedTag {
1156
+ name: string | null;
1157
+ icon: string | null;
1158
+ color: string | null;
1159
+ description: string | null;
1160
+ }
1161
+
1162
+ declare interface ProvidedPermissionRecord {
1163
+ permissions: PermissionRecordPermisson[];
1164
+ }
1165
+
1166
+ declare interface PublishDomainAcceptsProvidedRecord {
1167
+ value?: unknown;
1168
+ }
1169
+
1170
+ declare interface PublishDomainRecords {
1171
+ [":publish"]: PublishRecord;
1172
+ [":publish.stats?"]: PublishStatsRecord;
1173
+ [":publish.methods?"]: Record<string, {
1174
+ rpcId: string;
1175
+ rpcData: Record<string, unknown>;
1176
+ }>;
1177
+ [":publish.accepts"]: PublishDomainAcceptsProvidedRecord;
1178
+ }
1179
+
1180
+ declare interface PublishedDomainRecords {
1181
+ [":published"]: PublishedRecord;
1182
+ }
1183
+
1184
+ declare interface PublishedRecord {
1185
+ type: string;
1186
+ parent: string;
1187
+ asset: string[];
1188
+ time: number;
1189
+ connection: string;
1190
+ user?: string;
1191
+ error?: boolean;
1192
+ }
1193
+
1194
+ declare type PublishRecord = YoutubePublishRecord | FacebookPublishRecord | FilePublishRecord | FilePublishRecordLegacy;
1195
+
1196
+ declare interface PublishRecordCommon<Type extends PublishRecord["type"]> {
1197
+ type: Type;
1198
+ asset?: string;
1199
+ connection?: string;
1200
+ render?: PublishRender;
1201
+ draft?: Record<string, unknown>;
1202
+ published?: Record<string, unknown>;
1203
+ remote?: Record<string, unknown>;
1204
+ error?: {
1205
+ method: string;
1206
+ } | null;
1207
+ messages?: Message[];
1208
+ }
1209
+
1210
+ /**
1211
+ * render preset + overrides
1212
+ */
1213
+ declare interface PublishRender {
1214
+ preset?: string;
1215
+ type: string;
1216
+ scene?: RenderSceneObject;
1217
+ profile?: RenderProfileObject;
1218
+ }
1219
+
1220
+ declare type PublishStatsRecord = YoutubePublishStatsRecord | FacebookPublishStatsRecord | FilePublishStatsRecord;
1221
+
1222
+ declare interface PublishStatsRecordCommon {
1223
+ status?: string;
1224
+ substatus?: string;
1225
+ messages?: Message[];
1226
+ retrieved?: Record<string, unknown>;
1227
+ defaults?: Record<string, unknown>;
1228
+ }
1229
+
1230
+ export declare const randomNxtpressionFetch: () => NxtpressionFetch;
1231
+
1232
+ export declare const randomNxtpressionNxt: () => {
1233
+ fetch: never;
1234
+ observe: never;
1235
+ then: never;
1236
+ suspend: never;
1237
+ asset: never;
1238
+ ds: never;
1239
+ get: never;
1240
+ wrap: never;
1241
+ timer: never;
1242
+ hash: never;
1243
+ };
1244
+
1245
+ declare type Records = {
1246
+ [Property in Domains as `${string}${Property}`]: DomainRecords[Property];
1247
+ } & {
1248
+ ":permission": DomainRows;
1249
+ } & {
1250
+ [Property in keyof DesignDomainRecords as `${string}${Property}${string}`]: DesignDomainRecords[Property];
1251
+ } & {
1252
+ "media.subtitles": {
1253
+ languages?: Record<string, string>;
1254
+ fontFaces?: SubtitleFontFace[];
1255
+ };
1256
+ "media.subtitles?": {
1257
+ languages?: Record<string, string>;
1258
+ fontFaces?: SubtitleFontFace[];
1259
+ };
1260
+ "media.transcribe?": {
1261
+ engines: Record<string, string>;
1262
+ languages: Record<string, string>;
1263
+ translate?: {
1264
+ languages: Record<string, string>;
1265
+ };
1266
+ };
1267
+ "media.consolidate": {
1268
+ presets?: {
1269
+ [type in MediaType]: RenderPreset;
1270
+ };
1271
+ };
1272
+ "hub-transcribe:render-profile": {
1273
+ format: string;
1274
+ transcribe: {
1275
+ engine: string;
1276
+ };
1277
+ pick: string[];
1278
+ };
1279
+ } & AssetRecords & {
1280
+ "asset-daemon": {
1281
+ "user-notify"?: boolean;
1282
+ };
1283
+ "asset-daemon:user-notify.state": {
1284
+ since?: string | 0 | null;
1285
+ version?: number;
1286
+ };
1287
+ "deepstream-replicator.stats?": {
1288
+ replicators?: Record<string, {
1289
+ to: {
1290
+ synced?: boolean;
1291
+ since?: string | 0 | null;
1292
+ };
1293
+ from: {
1294
+ since?: string | 0 | null;
1295
+ };
1296
+ }>;
1297
+ synced?: boolean;
1298
+ };
1299
+ };
1300
+
1301
+ declare type RecordState = RecordStateNumber | RecordStateString;
1302
+
1303
+ declare type RecordStateNumber = 0 | 1 | 2 | 3 | 4;
1304
+
1305
+ declare type RecordStateString = "VOID" | "CLIENT" | "SERVER" | "STALE" | "PROVIDER";
1306
+
1307
+ declare interface RemoveOperation {
1308
+ op: 'remove';
1309
+ path: string;
1310
+ }
1311
+
1312
+ declare interface RenderDomainQueryRecord {
1313
+ type: string;
1314
+ title: string;
1315
+ parent?: string;
1316
+ description: {
1317
+ scene: RenderSceneObject;
1318
+ profile: RenderProfileObject;
1319
+ };
1320
+ }
1321
+
1322
+ declare interface RenderDomainRecords {
1323
+ ":render.stats?": RenderDomainStatsRecord;
1324
+ ":render.query?": RenderDomainQueryRecord;
1325
+ ":render.result?": RenderDomainResultRecord;
1326
+ }
1327
+
1328
+ declare interface RenderDomainResultRecord {
1329
+ [key: string]: unknown;
1330
+ url?: string;
1331
+ result?: unknown;
1332
+ error?: null | Record<string, unknown> | Array<Record<string, unknown>>;
1333
+ }
1334
+
1335
+ declare interface RenderDomainStatsRecord {
1336
+ progress?: number | null;
1337
+ error?: Array<Record<string, unknown>> | null;
1338
+ status?: string | null;
1339
+ }
1340
+
1341
+ declare type RenderPreset = RenderPresetObject | string;
1342
+
1343
+ declare interface RenderPresetDomainRecords {
1344
+ ":render-preset": RenderPresetObject;
1345
+ }
1346
+
1347
+ declare interface RenderPresetObject {
1348
+ type: RenderQuery["type"];
1349
+ profile: RenderProfile;
1350
+ }
1351
+
1352
+ declare type RenderProfile = (RenderProfileObject | string) | (RenderProfileObject | string)[];
1353
+
1354
+ declare interface RenderProfileObject {
1355
+ format: string;
1356
+ transcribe?: {
1357
+ engine: string;
1358
+ };
1359
+ translate?: {
1360
+ language: string;
1361
+ };
1362
+ audio?: {
1363
+ pan?: string;
1364
+ };
1365
+ video?: unknown;
1366
+ pick?: string[];
1367
+ subtitle?: SubtitleProfile | SubtitleProfile["lang"];
1368
+ }
1369
+
1370
+ declare interface RenderQuery {
1371
+ type: string;
1372
+ title: string;
1373
+ parent?: string;
1374
+ description?: {
1375
+ scene?: RenderScene;
1376
+ profile?: RenderProfile;
1377
+ };
1378
+ }
1379
+
1380
+ declare type RenderScene = (RenderSceneObject | string) | (RenderSceneObject | string)[];
1381
+
1382
+ declare interface RenderSceneObject {
1383
+ id?: string;
1384
+ preset?: string;
1385
+ input?: {
1386
+ type?: string;
1387
+ file?: string | null;
1388
+ };
1389
+ lang?: string;
1390
+ subtitle?: string;
1391
+ subtitleTracks?: {
1392
+ [trackId: string]: {
1393
+ style?: string | null;
1394
+ styleOverrides?: Omit<SubtitleStyleDomainRecord, "scaledBorderAndShadow" | "futureWordWrapping">;
1395
+ };
1396
+ };
1397
+ video?: {
1398
+ crop?: {
1399
+ x?: number;
1400
+ y?: number;
1401
+ width?: number;
1402
+ height?: number;
1403
+ };
1404
+ };
1405
+ start?: number;
1406
+ end?: number;
1407
+ transcribe?: {
1408
+ language?: string;
1409
+ pan?: number[];
1410
+ };
1411
+ }
1412
+
1413
+ declare interface ReplaceOperation {
1414
+ op: 'replace';
1415
+ path: string;
1416
+ value: any;
1417
+ }
1418
+
1419
+ declare interface ResolvedFilePublishRender extends Omit<PublishRender, "preset"> {
1420
+ preset?: string;
1421
+ name?: string;
1422
+ path: string;
1423
+ collisionStrategy?: "overwrite" | "skip";
1424
+ ignoreEmptyScene?: boolean;
1425
+ }
1426
+
1427
+ declare interface ReutersConnectionRecord extends ConnectionRecordCommon {
1428
+ type: "reuters";
1429
+ clientId?: string;
1430
+ clientSecret?: string;
1431
+ audience?: string;
1432
+ }
1433
+
1434
+ declare interface RevsDomainRecords {
1435
+ ":revs?": RevsRecord;
1436
+ }
1437
+
1438
+ declare interface RevsRecord {
1439
+ value?: string[];
1440
+ }
1441
+
1442
+ declare interface RoleDomainRecords {
1443
+ ":role.tags": RoleTagsRecord;
1444
+ }
1445
+
1446
+ declare interface RoleTagsRecord {
1447
+ value: string[];
1448
+ }
1449
+
1450
+ declare interface RpcPermission {
1451
+ type: "rpc";
1452
+ method: string;
1453
+ tags?: undefined;
1454
+ }
1455
+
1456
+ declare interface ScriptChildrenRecord {
1457
+ value?: string[];
1458
+ }
1459
+
1460
+ declare interface ScriptDomainRecords {
1461
+ ":script.children": ScriptChildrenRecord;
1462
+ }
1463
+
1464
+ declare interface SearchDomainRecords {
1465
+ ":search": SearchRecord;
1466
+ }
1467
+
1468
+ declare interface SearchRecord {
1469
+ hits: string[];
1470
+ total?: number;
1471
+ relation?: string;
1472
+ error?: string;
1473
+ }
1474
+
1475
+ declare interface SerializedAutoLinkNode {
1476
+ type: "autolink";
1477
+ version: 1;
1478
+ url: string;
1479
+ }
1480
+
1481
+ declare interface SerializedEmojiNode {
1482
+ type: "emoji";
1483
+ version: 1;
1484
+ emojiId: string;
1485
+ }
1486
+
1487
+ declare interface SerializedLineBreakNode {
1488
+ type: "linebreak";
1489
+ version: 1;
1490
+ }
1491
+
1492
+ declare interface SerializedMentionNode {
1493
+ type: "mention";
1494
+ version: 1;
1495
+ detail: number;
1496
+ format: number;
1497
+ mode: string;
1498
+ style: string;
1499
+ text: string;
1500
+ mentionId: string;
1501
+ }
1502
+
1503
+ declare type SerializedNode = SerializedRootNode | SerializedParagraphNode | SerializedTextNode | SerializedLineBreakNode | SerializedMentionNode | SerializedEmojiNode | SerializedAutoLinkNode;
1504
+
1505
+ declare interface SerializedParagraphNode {
1506
+ type: "paragraph";
1507
+ version: 1;
1508
+ direction: "ltr" | "rtl" | null;
1509
+ format: string;
1510
+ indent: number;
1511
+ textFormat: number;
1512
+ textStyle: string;
1513
+ children: SerializedNode[];
1514
+ }
1515
+
1516
+ declare interface SerializedRootNode {
1517
+ type: "root";
1518
+ version: 1;
1519
+ direction: "ltr" | "rtl" | null;
1520
+ format: string;
1521
+ indent: number;
1522
+ children: SerializedNode[];
1523
+ }
1524
+
1525
+ declare interface SerializedTextNode {
1526
+ type: "text";
1527
+ version: 1;
1528
+ detail: number;
1529
+ format: number;
1530
+ mode: string;
1531
+ style: string;
1532
+ text: string;
1533
+ }
1534
+
1535
+ declare interface Settings {
1536
+ autoLogoutTime?: number;
1537
+ permission?: {
1538
+ overrideUserContact: boolean;
1539
+ overrideUserLogin: boolean;
1540
+ };
1541
+ module?: {
1542
+ tabs?: ModuleTabs;
1543
+ };
1544
+ upload?: {
1545
+ defaultGrouping?: "" | "collection" | "stitch";
1546
+ hideStoryboardCollection?: boolean;
1547
+ displayUploadFilesDialog?: "never" | "ifMultipleFiles" | "always";
1548
+ };
1549
+ download?: {
1550
+ displaySaveDialog?: boolean;
1551
+ /**
1552
+ * Whether to prompt the user for each individual file path,
1553
+ * or just the directory.
1554
+ */
1555
+ batchDownloadDialogMode?: "file" | "directory";
1556
+ };
1557
+ browser?: {
1558
+ map: {
1559
+ clustering?: boolean;
1560
+ zoom?: number;
1561
+ center?: {
1562
+ lat: number;
1563
+ lon: number;
1564
+ };
1565
+ };
1566
+ createMenu: {
1567
+ sortOrder: string[];
1568
+ };
1569
+ };
1570
+ toolbarTags?: {
1571
+ exclude: string[];
1572
+ };
1573
+ /**
1574
+ * Controls which tags cannot be used together. When a tag from the group is
1575
+ * manually added to an asset, any other tag from the group will be removed.
1576
+ */
1577
+ exclusiveTagGroups?: string[][];
1578
+ deadlines?: {
1579
+ include: string[];
1580
+ exclude?: string[];
1581
+ };
1582
+ assignees?: {
1583
+ include: string[];
1584
+ exclude?: string[];
1585
+ };
1586
+ comments?: {
1587
+ include?: string[];
1588
+ exclude?: string[];
1589
+ };
1590
+ clock?: {
1591
+ enable: boolean;
1592
+ show24Hours: boolean;
1593
+ showAmPm: boolean;
1594
+ showSeconds: boolean;
1595
+ showDayOfWeek: boolean;
1596
+ showDate: boolean;
1597
+ format?: string;
1598
+ };
1599
+ swarm?: {
1600
+ color?: string;
1601
+ name?: string;
1602
+ };
1603
+ dashboard?: {
1604
+ maxMru: number;
1605
+ maxTabs: number;
1606
+ };
1607
+ script?: {
1608
+ createMenu: {
1609
+ showPreview: boolean;
1610
+ };
1611
+ colorTags: PromotedTag[];
1612
+ };
1613
+ events?: {
1614
+ graphicBaseTemplate?: string;
1615
+ };
1616
+ rundown?: {
1617
+ eventThumbnails: boolean;
1618
+ };
1619
+ gallery?: {
1620
+ dimOnBlur: boolean;
1621
+ };
1622
+ history?: boolean;
1623
+ keymap?: {
1624
+ display: {
1625
+ [actionKey: string]: KeymapSetting;
1626
+ };
1627
+ browser: {
1628
+ [actionKey: string]: KeymapSetting;
1629
+ };
1630
+ gallery: {
1631
+ [actionKey: string]: KeymapSetting;
1632
+ };
1633
+ global: {
1634
+ [actionKey: string]: KeymapSetting;
1635
+ };
1636
+ player: {
1637
+ [actionKey: string]: KeymapSetting;
1638
+ };
1639
+ script: {
1640
+ [actionKey: string]: KeymapSetting;
1641
+ };
1642
+ codeEditor: {
1643
+ [actionKey: string]: KeymapSetting;
1644
+ };
1645
+ bookmarks: {
1646
+ [actionKey: string]: KeymapSetting;
1647
+ };
1648
+ edit: {
1649
+ [actionKey: string]: KeymapSetting;
1650
+ };
1651
+ rundown: {
1652
+ [actionKey: string]: KeymapSetting;
1653
+ };
1654
+ segment: {
1655
+ [actionKey: string]: KeymapSetting;
1656
+ };
1657
+ };
1658
+ media?: {
1659
+ defaultFrameRate: number;
1660
+ placeholder?: string;
1661
+ guide?: {
1662
+ mask?: boolean;
1663
+ actionSafe?: boolean;
1664
+ titleSafe?: boolean;
1665
+ };
1666
+ stepManyFrames: number;
1667
+ liveZoomDuration: number;
1668
+ importTitleTemplate: string;
1669
+ tile: {
1670
+ preview: boolean | "play" | "seek" | "seekplay" | "disabled";
1671
+ showRenderProgress: boolean;
1672
+ };
1673
+ timecodeReference: string;
1674
+ maxSubclipDuration: number;
1675
+ rewindStep: number;
1676
+ forwardStep: number;
1677
+ interlacedPlayback: string;
1678
+ playbackRates: number[];
1679
+ subtitles: {
1680
+ spacing: number;
1681
+ maxCharactersPerLine: number;
1682
+ aspectRatios?: Array<{
1683
+ /** aspect ratio in the form of "width:height" */
1684
+ aspectRatio?: string;
1685
+ style?: string;
1686
+ maxCharactersPerLine?: number;
1687
+ }>;
1688
+ };
1689
+ subtitleTemplateId?: string;
1690
+ initialVolume: string;
1691
+ guides: Array<{
1692
+ label: string;
1693
+ aspectRatio: string;
1694
+ }>;
1695
+ download: boolean;
1696
+ editMode: {
1697
+ enabled: boolean;
1698
+ defaultEnterOption: "edit" | "createNew" | "none";
1699
+ defaultExitOption: "update" | "leave" | "none";
1700
+ };
1701
+ transcribe?: {
1702
+ subtitleDisclaimer?: {
1703
+ isUserConfigurable?: boolean;
1704
+ defaultValue?: {
1705
+ enabled?: false;
1706
+ text?: Array<{
1707
+ language: string;
1708
+ value: string;
1709
+ }>;
1710
+ offset?: number;
1711
+ duration?: number;
1712
+ };
1713
+ };
1714
+ };
1715
+ openCommand?: {
1716
+ url?: string;
1717
+ command?: string;
1718
+ app?: string;
1719
+ args?: string[];
1720
+ } | string;
1721
+ };
1722
+ edit?: {
1723
+ thumbnailView: "filmStrip" | "thumbnail" | "none";
1724
+ voiceOver: {
1725
+ inputDevice?: string;
1726
+ inputGainDb: number;
1727
+ backgroundReductionDb: number;
1728
+ recordMode: "instant" | "punchAndRoll";
1729
+ preRollDuration: number;
1730
+ };
1731
+ };
1732
+ commands?: Array<{
1733
+ title: string;
1734
+ command?: string;
1735
+ args?: string[];
1736
+ }>;
1737
+ predefinedTags?: string[];
1738
+ storyboard?: {
1739
+ folded?: {
1740
+ auto?: boolean;
1741
+ };
1742
+ assets: {
1743
+ story: {
1744
+ excerpt: {
1745
+ maxLines: number;
1746
+ mode: string;
1747
+ };
1748
+ };
1749
+ note?: {
1750
+ maxHeight?: number;
1751
+ };
1752
+ };
1753
+ pipeline: {
1754
+ search: {
1755
+ maxItemsDisplayed: number;
1756
+ };
1757
+ sortMode: PipelineSortMode;
1758
+ };
1759
+ item: {
1760
+ maxHeight: number;
1761
+ };
1762
+ };
1763
+ hiddenPreviews?: Array<{
1764
+ id: string;
1765
+ folded: boolean;
1766
+ }>;
1767
+ plugins?: {
1768
+ adobe: {
1769
+ useProxies: boolean;
1770
+ };
1771
+ rive?: {
1772
+ template?: string;
1773
+ };
1774
+ };
1775
+ crashScreen?: boolean;
1776
+ debug?: boolean;
1777
+ featurePreview?: {
1778
+ collections?: boolean;
1779
+ semanticSearch?: boolean;
1780
+ ameRemoteRendering?: boolean;
1781
+ };
1782
+ flags?: {
1783
+ utils: boolean;
1784
+ history: boolean;
1785
+ refs: boolean;
1786
+ access: boolean;
1787
+ files: boolean;
1788
+ export: boolean;
1789
+ json: boolean;
1790
+ hlsjs: boolean;
1791
+ resetRenders?: boolean;
1792
+ resetReplicas?: boolean;
1793
+ assetStatus?: boolean;
1794
+ consolidateMedia?: boolean;
1795
+ hideInAssetMenu?: boolean;
1796
+ assetRoute?: boolean;
1797
+ devWarnings?: boolean;
1798
+ };
1799
+ notifications?: {
1800
+ events: {
1801
+ comment: NotificationReason[];
1802
+ assigned: NotificationReason[];
1803
+ unassigned: NotificationReason[];
1804
+ publishSucceeded: {
1805
+ [connectionId: string]: NotificationReason[];
1806
+ };
1807
+ };
1808
+ };
1809
+ suppressDeleteAlert?: boolean;
1810
+ }
1811
+
1812
+ declare interface SettingsDomainRecords {
1813
+ ":settings": Settings;
1814
+ }
1815
+
1816
+ declare interface SettingsPanelStoreTab extends ModuleTabsSettingsValue {
1817
+ activeSectionIndex: number;
1818
+ }
1819
+
1820
+ declare interface StoryboardDomainPipelinesRecord {
1821
+ value?: string[];
1822
+ }
1823
+
1824
+ declare interface StoryboardDomainRecords {
1825
+ ":storyboard": Record<string, unknown>;
1826
+ ":storyboard.pipelines": StoryboardDomainPipelinesRecord;
1827
+ }
1828
+
1829
+ export declare const stringifyNxtpressionFetch: (input: NxtpressionFetch) => string;
1830
+
1831
+ export declare const stringifyNxtpressionNxt: (input: NxtpressionNxt) => string;
1832
+
1833
+ /** OBSERVABLE INTERFACES */
1834
+ declare interface Subscribable<T> {
1835
+ subscribe(observer: Partial<Observer<T>>): Unsubscribable;
1836
+ }
1837
+
1838
+ /**
1839
+ * Implements the {@link Observer} interface and extends the
1840
+ * {@link Subscription} class. While the {@link Observer} is the public API for
1841
+ * consuming the values of an {@link Observable}, all Observers get converted to
1842
+ * a Subscriber, in order to provide Subscription-like capabilities such as
1843
+ * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for
1844
+ * implementing operators, but it is rarely used as a public API.
1845
+ *
1846
+ * @class Subscriber<T>
1847
+ */
1848
+ declare class Subscriber<T> extends Subscription implements Observer<T> {
1849
+ /**
1850
+ * A static factory for a Subscriber, given a (potentially partial) definition
1851
+ * of an Observer.
1852
+ * @param next The `next` callback of an Observer.
1853
+ * @param error The `error` callback of an
1854
+ * Observer.
1855
+ * @param complete The `complete` callback of an
1856
+ * Observer.
1857
+ * @return A Subscriber wrapping the (partially defined)
1858
+ * Observer represented by the given arguments.
1859
+ * @nocollapse
1860
+ * @deprecated Do not use. Will be removed in v8. There is no replacement for this
1861
+ * method, and there is no reason to be creating instances of `Subscriber` directly.
1862
+ * If you have a specific use case, please file an issue.
1863
+ */
1864
+ static create<T>(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber<T>;
1865
+ /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */
1866
+ protected isStopped: boolean;
1867
+ /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */
1868
+ protected destination: Subscriber<any> | Observer<any>;
1869
+ /**
1870
+ * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.
1871
+ * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.
1872
+ */
1873
+ constructor(destination?: Subscriber<any> | Observer<any>);
1874
+ /**
1875
+ * The {@link Observer} callback to receive notifications of type `next` from
1876
+ * the Observable, with a value. The Observable may call this method 0 or more
1877
+ * times.
1878
+ * @param {T} [value] The `next` value.
1879
+ * @return {void}
1880
+ */
1881
+ next(value?: T): void;
1882
+ /**
1883
+ * The {@link Observer} callback to receive notifications of type `error` from
1884
+ * the Observable, with an attached `Error`. Notifies the Observer that
1885
+ * the Observable has experienced an error condition.
1886
+ * @param {any} [err] The `error` exception.
1887
+ * @return {void}
1888
+ */
1889
+ error(err?: any): void;
1890
+ /**
1891
+ * The {@link Observer} callback to receive a valueless notification of type
1892
+ * `complete` from the Observable. Notifies the Observer that the Observable
1893
+ * has finished sending push-based notifications.
1894
+ * @return {void}
1895
+ */
1896
+ complete(): void;
1897
+ unsubscribe(): void;
1898
+ protected _next(value: T): void;
1899
+ protected _error(err: any): void;
1900
+ protected _complete(): void;
1901
+ }
1902
+
1903
+ /**
1904
+ * Represents a disposable resource, such as the execution of an Observable. A
1905
+ * Subscription has one important method, `unsubscribe`, that takes no argument
1906
+ * and just disposes the resource held by the subscription.
1907
+ *
1908
+ * Additionally, subscriptions may be grouped together through the `add()`
1909
+ * method, which will attach a child Subscription to the current Subscription.
1910
+ * When a Subscription is unsubscribed, all its children (and its grandchildren)
1911
+ * will be unsubscribed as well.
1912
+ *
1913
+ * @class Subscription
1914
+ */
1915
+ declare class Subscription implements SubscriptionLike {
1916
+ private initialTeardown?;
1917
+ /** @nocollapse */
1918
+ static EMPTY: Subscription;
1919
+ /**
1920
+ * A flag to indicate whether this Subscription has already been unsubscribed.
1921
+ */
1922
+ closed: boolean;
1923
+ private _parentage;
1924
+ /**
1925
+ * The list of registered finalizers to execute upon unsubscription. Adding and removing from this
1926
+ * list occurs in the {@link #add} and {@link #remove} methods.
1927
+ */
1928
+ private _finalizers;
1929
+ /**
1930
+ * @param initialTeardown A function executed first as part of the finalization
1931
+ * process that is kicked off when {@link #unsubscribe} is called.
1932
+ */
1933
+ constructor(initialTeardown?: (() => void) | undefined);
1934
+ /**
1935
+ * Disposes the resources held by the subscription. May, for instance, cancel
1936
+ * an ongoing Observable execution or cancel any other type of work that
1937
+ * started when the Subscription was created.
1938
+ * @return {void}
1939
+ */
1940
+ unsubscribe(): void;
1941
+ /**
1942
+ * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called
1943
+ * when this subscription is unsubscribed. If this subscription is already {@link #closed},
1944
+ * because it has already been unsubscribed, then whatever finalizer is passed to it
1945
+ * will automatically be executed (unless the finalizer itself is also a closed subscription).
1946
+ *
1947
+ * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed
1948
+ * subscription to a any subscription will result in no operation. (A noop).
1949
+ *
1950
+ * Adding a subscription to itself, or adding `null` or `undefined` will not perform any
1951
+ * operation at all. (A noop).
1952
+ *
1953
+ * `Subscription` instances that are added to this instance will automatically remove themselves
1954
+ * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove
1955
+ * will need to be removed manually with {@link #remove}
1956
+ *
1957
+ * @param teardown The finalization logic to add to this subscription.
1958
+ */
1959
+ add(teardown: TeardownLogic): void;
1960
+ /**
1961
+ * Checks to see if a this subscription already has a particular parent.
1962
+ * This will signal that this subscription has already been added to the parent in question.
1963
+ * @param parent the parent to check for
1964
+ */
1965
+ private _hasParent;
1966
+ /**
1967
+ * Adds a parent to this subscription so it can be removed from the parent if it
1968
+ * unsubscribes on it's own.
1969
+ *
1970
+ * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.
1971
+ * @param parent The parent subscription to add
1972
+ */
1973
+ private _addParent;
1974
+ /**
1975
+ * Called on a child when it is removed via {@link #remove}.
1976
+ * @param parent The parent to remove
1977
+ */
1978
+ private _removeParent;
1979
+ /**
1980
+ * Removes a finalizer from this subscription that was previously added with the {@link #add} method.
1981
+ *
1982
+ * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves
1983
+ * from every other `Subscription` they have been added to. This means that using the `remove` method
1984
+ * is not a common thing and should be used thoughtfully.
1985
+ *
1986
+ * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance
1987
+ * more than once, you will need to call `remove` the same number of times to remove all instances.
1988
+ *
1989
+ * All finalizer instances are removed to free up memory upon unsubscription.
1990
+ *
1991
+ * @param teardown The finalizer to remove from this subscription
1992
+ */
1993
+ remove(teardown: Exclude<TeardownLogic, void>): void;
1994
+ }
1995
+
1996
+ declare interface SubscriptionLike extends Unsubscribable {
1997
+ unsubscribe(): void;
1998
+ readonly closed: boolean;
1999
+ }
2000
+
2001
+ declare interface SubtitleDomainRecord {
2002
+ value?: Array<{
2003
+ lang?: string;
2004
+ start: number;
2005
+ end: number;
2006
+ text?: string;
2007
+ }>;
2008
+ style?: unknown;
2009
+ }
2010
+
2011
+ declare interface SubtitleDomainRecords {
2012
+ ":subtitle": SubtitleDomainRecord;
2013
+ }
2014
+
2015
+ declare interface SubtitleEventStyleOverrides {
2016
+ marginL?: string;
2017
+ marginR?: string;
2018
+ marginV?: string;
2019
+ alignment?: string;
2020
+ fontname?: string;
2021
+ fontsize?: string;
2022
+ primaryColour?: string;
2023
+ secondaryColour?: string;
2024
+ outlineColour?: string;
2025
+ backColour?: string;
2026
+ bold?: string;
2027
+ italic?: string;
2028
+ underline?: string;
2029
+ strikeOut?: string;
2030
+ }
2031
+
2032
+ declare interface SubtitleFontFace {
2033
+ family: string;
2034
+ asset?: string;
2035
+ weight?: "normal" | "bold";
2036
+ style?: "normal" | "italic";
2037
+ }
2038
+
2039
+ declare interface SubtitleProfile {
2040
+ /**
2041
+ * Corresponds to a key in `media.subtitles?#languages`, or '_all' to render all languages.
2042
+ */
2043
+ lang?: string;
2044
+ /**
2045
+ * Will pick styling from the corresponding `${style}:subtitle-style` asset.
2046
+ */
2047
+ style?: string;
2048
+ }
2049
+
2050
+ declare interface SubtitleStyleDomainRecord {
2051
+ name?: string;
2052
+ fontname?: string;
2053
+ fontsize?: string;
2054
+ primaryColour?: string;
2055
+ secondaryColour?: string;
2056
+ outlineColour?: string;
2057
+ backColour?: string;
2058
+ bold?: string;
2059
+ italic?: string;
2060
+ underline?: string;
2061
+ strikeOut?: string;
2062
+ scaleX?: string;
2063
+ scaleY?: string;
2064
+ spacing?: string;
2065
+ angle?: string;
2066
+ borderStyle?: string;
2067
+ outline?: string;
2068
+ shadow?: string;
2069
+ alignment?: string;
2070
+ marginL?: string;
2071
+ marginR?: string;
2072
+ marginV?: string;
2073
+ encoding?: string;
2074
+ scaledBorderAndShadow?: boolean;
2075
+ futureWordWrapping?: boolean;
2076
+ }
2077
+
2078
+ declare interface SubtitleStyleDomainRecords {
2079
+ ":subtitle-style": SubtitleStyleDomainRecord;
2080
+ }
2081
+
2082
+ declare type TagBase<Props extends TagBase.IProps<any, any, any, any, any, any>> = {
2083
+ /**
2084
+ * This is a dummy property for compilation.
2085
+ *
2086
+ * It does not mean anything in runtime.
2087
+ */
2088
+ "typia.tag"?: Props;
2089
+ };
2090
+
2091
+ declare namespace TagBase {
2092
+ interface IProps<Target extends "boolean" | "bigint" | "number" | "string" | "array", Kind extends string, Value extends boolean | bigint | number | string | undefined, Validate extends string | {
2093
+ [key in Target]?: string;
2094
+ }, Exclusive extends boolean | string[], Schema extends object | undefined> {
2095
+ /**
2096
+ * Target type.
2097
+ *
2098
+ * If user tries to adapt this tag to a different type, it would be a compile
2099
+ * error.
2100
+ *
2101
+ * For example, you've configured target type as `string`, but user adapted it
2102
+ * onto a `number` type (`number & YourCustomTag<Value>`), then it would be
2103
+ * blocked by TypeScript compiler.
2104
+ */
2105
+ target: Target;
2106
+ /**
2107
+ * What kind of tag is this?
2108
+ */
2109
+ kind: Kind;
2110
+ /**
2111
+ * Value to be configured by user.
2112
+ */
2113
+ value: Value;
2114
+ /**
2115
+ * Validation script.
2116
+ *
2117
+ * This script would be inserted into the generated validation function.
2118
+ * In here script, target variable name must be `$input`. The variable name
2119
+ * `$input` would be transformed to the suitable when compilation.
2120
+ *
2121
+ * Also, If you've take a mistake on this script, compile error would be
2122
+ * occured. So, define it with confidence. Compiler will block all your
2123
+ * mistakes.
2124
+ */
2125
+ validate?: Validate;
2126
+ /**
2127
+ * Exclusive option.
2128
+ *
2129
+ * If this property configured as `true`, same {@link kind} tag cannot be
2130
+ * duplicated in the target type. Otherwise, if you've configured this
2131
+ * property as string array, all of the {@link kind} value assigned
2132
+ * tags cannot be compatible in the target type.
2133
+ *
2134
+ * @default false
2135
+ */
2136
+ exclusive?: Exclusive | string[];
2137
+ /**
2138
+ * Additional schema info assigned to the {@link IJsonSchema} object.
2139
+ */
2140
+ schema?: Schema;
2141
+ }
2142
+ }
2143
+
2144
+ declare interface TagPermission {
2145
+ type: "tag";
2146
+ method?: undefined;
2147
+ tags: string[];
2148
+ }
2149
+
2150
+ declare type TeardownLogic = Subscription | Unsubscribable | (() => void) | void;
2151
+
2152
+ declare interface TemplateDomainRecords {
2153
+ ":template": TemplateRecord;
2154
+ }
2155
+
2156
+ declare interface TemplateProperty {
2157
+ path?: string;
2158
+ }
2159
+
2160
+ declare interface TemplateRecord {
2161
+ mixin?: string[];
2162
+ properties?: Record<string, TemplateProperty>;
2163
+ }
2164
+
2165
+ declare interface TestOperation {
2166
+ op: 'test';
2167
+ path: string;
2168
+ value: any;
2169
+ }
2170
+
2171
+ declare type Type<Value extends "int32" | "uint32" | "int64" | "uint64" | "float" | "double"> = TagBase<{
2172
+ target: Value extends "int64" | "uint64" ? "bigint" | "number" : "number";
2173
+ kind: "type";
2174
+ value: Value;
2175
+ validate: Value extends "int32" ? `Math.floor($input) === $input && -2147483648 <= $input && $input <= 2147483647` : Value extends "uint32" ? `Math.floor($input) === $input && 0 <= $input && $input <= 4294967295` : Value extends "int64" ? {
2176
+ number: `Math.floor($input) === $input && -9223372036854775808 <= $input && $input <= 9223372036854775807`;
2177
+ bigint: `true`;
2178
+ } : Value extends "uint64" ? {
2179
+ number: `Math.floor($input) === $input && 0 <= $input && $input <= 18446744073709551615`;
2180
+ bigint: `BigInt(0) <= $input`;
2181
+ } : Value extends "float" ? `-1.175494351e38 <= $input && $input <= 3.4028235e38` : `true`;
2182
+ exclusive: true;
2183
+ schema: {
2184
+ type: Value extends "int32" | "uint32" | "int64" | "uint64" ? "integer" : "number";
2185
+ };
2186
+ }>;
2187
+
2188
+ /**
2189
+ * A function type interface that describes a function that accepts one parameter `T`
2190
+ * and returns another parameter `R`.
2191
+ *
2192
+ * Usually used to describe {@link OperatorFunction} - it always takes a single
2193
+ * parameter (the source Observable) and returns another Observable.
2194
+ */
2195
+ declare interface UnaryFunction<T, R> {
2196
+ (source: T): R;
2197
+ }
2198
+
2199
+ declare type _UnaryFunction<T, U> = (arg: T extends null ? never : T) => U;
2200
+
2201
+ export declare interface Underscore {
2202
+ <T>(input: T): T;
2203
+ <T, U>(input: T, fn1: _UnaryFunction<T, U>): U;
2204
+ <T, U, V>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>): V;
2205
+ <T, U, V, W>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>, fn3: _UnaryFunction<V, W>): W;
2206
+ <T, U, V, W, X>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>, fn3: _UnaryFunction<V, W>, fn4: _UnaryFunction<W, X>): X;
2207
+ <T, U, V, W, X, Y>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>, fn3: _UnaryFunction<V, W>, fn4: _UnaryFunction<W, X>, fn5: _UnaryFunction<X, Y>): Y;
2208
+ <T, U, V, W, X, Y, Z>(input: T, fn1: _UnaryFunction<T, U>, fn2: _UnaryFunction<U, V>, fn3: _UnaryFunction<V, W>, fn4: _UnaryFunction<W, X>, fn5: _UnaryFunction<X, Y>, fn6: _UnaryFunction<Y, Z>): Z;
2209
+ /**
2210
+ * Creates a function which returns the input assetId, only if the asset is of the provided type.
2211
+ * @param type Asset type to filter on, e.g. "general" or "media"
2212
+ */
2213
+ asset: (type: string, state?: number, suspend?: boolean) => (id: string) => string | null;
2214
+ /**
2215
+ * @deprecated
2216
+ */
2217
+ ds: <Postfix extends keyof DomainRecords, Data extends DomainRecords[Postfix] = DomainRecords[Postfix]>(postfix: Postfix, state?: number, suspend?: boolean) => (assetId: string) => Data;
2218
+ /**
2219
+ * Get a deepstream record
2220
+ *
2221
+ * Takes a postfix (typically a :domain) and optionally record path and/or
2222
+ * desired state. Returns a function which takes a prefix (typically an asset
2223
+ * ID).
2224
+ *
2225
+ * @example
2226
+ * _.get(':contact') // (assetId: string) => ContactRecord
2227
+ *
2228
+ * @example
2229
+ * _.get(':contact', null, 'server') // (assetId: string) => ContactRecord
2230
+ *
2231
+ * @example
2232
+ * _.get(':contact', 'firstName') // (assetId: string) => string | undefined
2233
+ *
2234
+ * @example
2235
+ * _.get(':contact', 'firstName', 'server') // (assetId: string) => string | undefined
2236
+ */
2237
+ get<Postfix extends keyof DomainRecords, Data extends DomainRecords[Postfix] = DomainRecords[Postfix], Path extends Paths<Data> | string | null | undefined = Paths<Data>>(postfix: Postfix, path: Path, state?: RecordState, suspend?: boolean): (assetId: string) => Path extends undefined | null ? Partial<Data> : Path extends Paths<Data> ? Get<Data, Path> | undefined : unknown;
2238
+ get<Postfix extends keyof DomainRecords, Data extends DomainRecords[Postfix] = DomainRecords[Postfix]>(postfix: Postfix): (assetId: string) => Partial<Data>;
2239
+ timer<V>(dueTime: number): (dueValue?: V) => V;
2240
+ fetch(options?: RequestInit, suspend?: boolean): (resource: string) => NxtpressionFetch;
2241
+ }
2242
+
2243
+ declare interface Unsubscribable {
2244
+ unsubscribe(): void;
2245
+ }
2246
+
2247
+ declare interface UserDomainLatestSeenNotificationRecord {
2248
+ value?: string;
2249
+ }
2250
+
2251
+ declare interface UserDomainReceivedNotificationsProvidedRecord {
2252
+ /**
2253
+ * IDs of notifications the user has received.
2254
+ */
2255
+ value?: string[];
2256
+ }
2257
+
2258
+ declare interface UserDomainRecord {
2259
+ username?: string;
2260
+ roles?: string[];
2261
+ }
2262
+
2263
+ declare interface UserDomainRecords {
2264
+ ":user": UserDomainRecord;
2265
+ ":user.latestSeenNotification": UserDomainLatestSeenNotificationRecord;
2266
+ ":user.receivedNotifications?": UserDomainReceivedNotificationsProvidedRecord;
2267
+ ":user.unseenNotifications?": UserDomainUnseenNotificationsRecord;
2268
+ }
2269
+
2270
+ declare interface UserDomainUnseenNotificationsRecord {
2271
+ hasUnseen?: boolean;
2272
+ latestReceived?: string;
2273
+ }
2274
+
2275
+ declare interface UserNotificationAddedToSearch extends UserNotificationCommon {
2276
+ type: "added-to-search";
2277
+ payload: {
2278
+ searchId: string;
2279
+ assetId: string;
2280
+ };
2281
+ }
2282
+
2283
+ declare interface UserNotificationAssigned extends UserNotificationCommon {
2284
+ type: "assigned";
2285
+ payload: {
2286
+ assetId: string;
2287
+ actionBy?: string;
2288
+ };
2289
+ }
2290
+
2291
+ declare interface UserNotificationComment extends UserNotificationCommon {
2292
+ type: "comment";
2293
+ payload: {
2294
+ commentId: string;
2295
+ };
2296
+ }
2297
+
2298
+ declare interface UserNotificationCommon {
2299
+ /** The user that the notification is for. */
2300
+ userId: string;
2301
+ /** The type of the notification, which will determine the shape of the payload. */
2302
+ type: string;
2303
+ /** Type specific data. */
2304
+ payload: object;
2305
+ /** When the notification was created. */
2306
+ timestamp: string;
2307
+ /** For what reasons the notification was created. */
2308
+ reasons: NotificationReason[];
2309
+ /**
2310
+ * Asset that triggered this notification. Not necessarily the same asset that
2311
+ * the notification is mainly about.
2312
+ */
2313
+ triggerId?: string;
2314
+ }
2315
+
2316
+ declare interface UserNotificationDomainReadAtRecord {
2317
+ /**
2318
+ * ISO8601 date string. If set, the user has marked the notification as read at that timestamp.
2319
+ */
2320
+ value?: string;
2321
+ }
2322
+
2323
+ declare interface UserNotificationDomainRecords {
2324
+ ":user-notification": UserNotificationRecord;
2325
+ ":user-notification.readAt": UserNotificationDomainReadAtRecord;
2326
+ }
2327
+
2328
+ declare interface UserNotificationPublishSucceeded extends UserNotificationCommon {
2329
+ type: "publishSucceeded";
2330
+ payload: {
2331
+ /** The user that published the asset. */
2332
+ userId?: string;
2333
+ /** The asset that was published. */
2334
+ assetId: string;
2335
+ /** The publish asset representing the publish. */
2336
+ publishId: string;
2337
+ /** The connection that was used to publish the asset. */
2338
+ connectionId: string;
2339
+ };
2340
+ }
2341
+
2342
+ declare type UserNotificationRecord = UserNotificationAssigned | UserNotificationUnassigned | UserNotificationComment | UserNotificationAddedToSearch | UserNotificationPublishSucceeded;
2343
+
2344
+ declare interface UserNotificationStatusAssignee {
2345
+ /**
2346
+ * Array of user ID:s that was assigned to the assed last time it was
2347
+ * considered for notifications.
2348
+ */
2349
+ value?: string[];
2350
+ }
2351
+
2352
+ declare interface UserNotificationStatusComment {
2353
+ /**
2354
+ * When array of user ID:s: Indicates which users have been considered for
2355
+ * notifications about this comment. When `true`: Indicates that we have
2356
+ * considered this comment for notifications, but we don't know which users
2357
+ * have been notified.
2358
+ */
2359
+ value?: string[] | true;
2360
+ }
2361
+
2362
+ declare interface UserNotificationStatusDomainRecord {
2363
+ assignee?: UserNotificationStatusAssignee;
2364
+ published?: UserNotificationStatusPublished;
2365
+ comment?: UserNotificationStatusComment;
2366
+ }
2367
+
2368
+ declare interface UserNotificationStatusDomainRecords {
2369
+ ":_user-notification-status": UserNotificationStatusDomainRecord;
2370
+ }
2371
+
2372
+ declare interface UserNotificationStatusPublished {
2373
+ /**
2374
+ * If `true`, this published asset has been considered for notifications.
2375
+ */
2376
+ value?: true;
2377
+ }
2378
+
2379
+ declare interface UserNotificationUnassigned extends UserNotificationCommon {
2380
+ type: "unassigned";
2381
+ payload: {
2382
+ assetId: string;
2383
+ actionBy?: string;
2384
+ };
2385
+ }
2386
+
2387
+ declare interface WidgetItem {
2388
+ type: WidgetType;
2389
+ readOnly?: boolean;
2390
+ }
2391
+
2392
+ declare type WidgetType = "default" | "assetTypes" | "assetTags" | "geopoint" | "poster" | "textarea" | "tags";
2393
+
2394
+ declare interface YoutubePublishRecord extends PublishRecordCommon<"youtube"> {
2395
+ draft?: {
2396
+ snippet?: {
2397
+ title?: string;
2398
+ tags?: string[];
2399
+ description?: string;
2400
+ };
2401
+ };
2402
+ }
2403
+
2404
+ declare interface YoutubePublishStatsRecord extends PublishStatsRecordCommon {
2405
+ }
2406
+
2407
+ export { }