@nxtedition/types 23.1.3 → 23.1.5

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 (39) hide show
  1. package/dist/common/block.d.ts +1 -0
  2. package/dist/common/block.js +31 -13
  3. package/dist/common/file.js +9 -8
  4. package/dist/common/index.d.ts +2 -0
  5. package/dist/common/index.js +2 -0
  6. package/dist/common/json-schema.d.ts +95 -0
  7. package/dist/common/json-schema.js +1 -0
  8. package/dist/common/location.js +1 -1
  9. package/dist/common/nxtpression.d.ts +1 -1
  10. package/dist/common/print.d.ts +30 -0
  11. package/dist/common/print.js +1 -0
  12. package/dist/common/render-scene.d.ts +1 -0
  13. package/dist/common/rule.js +2 -2
  14. package/dist/common/settings.d.ts +11 -2
  15. package/dist/nxtpression.d.ts +451 -205
  16. package/dist/records/domains/connection/file/smb.d.ts +2 -0
  17. package/dist/records/domains/event.d.ts +20 -0
  18. package/dist/records/domains/gallery.d.ts +8 -0
  19. package/dist/records/domains/gallery.js +1 -0
  20. package/dist/records/domains/index.d.ts +5 -1
  21. package/dist/records/domains/index.js +2 -0
  22. package/dist/records/domains/role.d.ts +8 -0
  23. package/dist/records/domains/storage.d.ts +87 -0
  24. package/dist/records/domains/storage.js +1 -0
  25. package/dist/records/domains/template.d.ts +32 -0
  26. package/dist/records/exact/index.d.ts +6 -0
  27. package/dist/records/exact/monitor.d.ts +1 -0
  28. package/dist/records/validate/assert-guard.js +1641 -454
  29. package/dist/records/validate/assert.js +1645 -448
  30. package/dist/records/validate/is.js +92 -26
  31. package/dist/records/validate/schemas.d.ts +3 -10
  32. package/dist/records/validate/schemas.js +1336 -254
  33. package/dist/records/validate/stringify.js +348 -253
  34. package/dist/records/validate/utils.js +2 -2
  35. package/dist/records/validate/validate-equals.js +2245 -481
  36. package/dist/records/validate/validate.js +1549 -429
  37. package/dist/rpc.js +2 -2
  38. package/dist/tsdoc-metadata.json +1 -1
  39. package/package.json +13 -14
@@ -1,5 +1,7 @@
1
1
  /// <reference lib="esnext.asynciterable" />
2
2
 
3
+ import { TagBase } from './TagBase';
4
+
3
5
  /**
4
6
  All diff* functions should return a list of operations, often empty.
5
7
 
@@ -58,6 +60,7 @@ declare interface AssetCreatedProvidedRecord {
58
60
 
59
61
  declare interface AssetDaemonRecord {
60
62
  "user-notify"?: boolean;
63
+ validate?: boolean;
61
64
  }
62
65
 
63
66
  declare interface AssetDaemonUserNotifyStateRecord {
@@ -65,6 +68,11 @@ declare interface AssetDaemonUserNotifyStateRecord {
65
68
  version?: number;
66
69
  }
67
70
 
71
+ declare interface AssetDaemonValidateStateRecord {
72
+ since?: string | 0 | null;
73
+ version?: number;
74
+ }
75
+
68
76
  declare interface AssetDeadlinesRecord {
69
77
  value?: Nxtpression<string, {
70
78
  id: string;
@@ -687,7 +695,7 @@ declare interface DeviceDomainStatusRecord {
687
695
  version?: string;
688
696
  }
689
697
 
690
- 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, SchemaDomainRecords, ScriptDomainRecords, SearchDomainRecords, SettingsDomainRecords, ShotboxDomainRecords, StoryboardDomainRecords, StreamDomainRecords, SubtitleStyleDomainRecords, SubtitleDomainRecords, TemplateDomainRecords, UserNotificationStatusDomainRecords, UserNotificationDomainRecords, UserDomainRecords, UsernameDomainRecords {
698
+ declare interface DomainRecords extends AssetDomainRecords, AuthDomainRecords, BundleDomainRecords, CalendarEventDomainRecords, CloneDomainRecords, CommentReactionDomainRecords, CommentReadMarkDomainRecords, CommentDomainRecords, ConditionDomainRecords, ConnectionDomainRecords, ContactDomainRecords, DeepstreamDomainRecords, DesignDomainRecords, DeviceDomainRecords, EditDomainRecords, EventDomainRecords, FileDomainRecords, FolderDomainRecords, GalleryDomainRecords, GeneralDomainRecords, HarvestDomainRecords, IngestclipDomainRecords, IngestScheduleDomainRecords, MediaDomainRecords, MonitorDomainRecords, NoteDomainRecords, PanelDomainRecords, PermissionDomainRecords, PipelinePresetDomainRecords, PipelineDomainRecords, PlanningDomainRecords, PrompterDomainRecords, PublishDomainRecords, PublishedDomainRecords, RenderPresetDomainRecords, RenderDomainRecords, RevsDomainRecords, RoleDomainRecords, SchemaDomainRecords, ScriptDomainRecords, SearchDomainRecords, SettingsDomainRecords, ShotboxDomainRecords, StorageDomainRecords, StoryboardDomainRecords, StreamDomainRecords, SubtitleStyleDomainRecords, SubtitleDomainRecords, TemplateDomainRecords, UserNotificationStatusDomainRecords, UserNotificationDomainRecords, UserDomainRecords, UsernameDomainRecords {
691
699
  }
692
700
 
693
701
  declare type Dynamic = false | string[];
@@ -761,8 +769,11 @@ declare type EmptyObject = {
761
769
 
762
770
  // With `EmptyObject` only the first case is valid.
763
771
  const bar1: EmptyObject = {}; // Pass
764
- const bar2: EmptyObject = 42; // Fail
765
- const bar3: EmptyObject = []; // Fail
772
+ // @ts-expect-error
773
+ const bar2: EmptyObject = []; // Fail
774
+ // @ts-expect-error
775
+ const bar3: EmptyObject = 42; // Fail
776
+ // @ts-expect-error
766
777
  const bar4: EmptyObject = {a: 1}; // Fail
767
778
  ```
768
779
 
@@ -807,6 +818,9 @@ declare interface EventDomainRecords {
807
818
  ":event.duration?": EventDurationRecord;
808
819
  ":event.children?": EventChildrenRecord;
809
820
  ":event.props?": EventPropsRecord;
821
+ ":event.stats?": EventStatsRecord;
822
+ ":event.readDuration?": EventReadDurationRecord;
823
+ ":event.readRate?": EventReadRateRecord;
810
824
  }
811
825
 
812
826
  declare interface EventDurationRecord {
@@ -832,6 +846,7 @@ declare interface EventOverlayRecord {
832
846
  declare type EventProps = {
833
847
  source?: string;
834
848
  cueCard?: boolean | string;
849
+ printRundownColor?: string;
835
850
  startTime?: number;
836
851
  shotboxGroup?: string | string[];
837
852
  shotboxVisible?: boolean;
@@ -839,16 +854,34 @@ declare type EventProps = {
839
854
 
840
855
  declare type EventPropsRecord = EventProps & Record<Exclude<string, keyof EventProps>, JsonValue>;
841
856
 
857
+ declare interface EventReadDurationRecord {
858
+ numChars?: number;
859
+ numWords?: number;
860
+ readRate?: number;
861
+ readDuration?: number;
862
+ readType?: ReadType;
863
+ }
864
+
865
+ declare interface EventReadRateRecord {
866
+ readRate?: number;
867
+ readType?: ReadType;
868
+ }
869
+
842
870
  declare interface EventRecord {
843
871
  start?: number | null;
844
872
  end?: number | null;
845
873
  duration?: number | null;
874
+ position?: string;
846
875
  text?: string;
847
876
  lang?: string;
848
877
  style?: string;
849
878
  styleOverrides?: SubtitleEventStyleOverrides;
850
879
  }
851
880
 
881
+ declare interface EventStatsRecord {
882
+ type?: string;
883
+ }
884
+
852
885
  declare interface EventTemplateRecord {
853
886
  mixin?: string[];
854
887
  properties?: object;
@@ -1010,9 +1043,11 @@ declare interface FileConnectionSmbRecord extends FileConnectionBase {
1010
1043
  protocol?: "smb";
1011
1044
  host?: string;
1012
1045
  share?: string;
1046
+ root?: string;
1013
1047
  workgroup?: string;
1014
1048
  username?: string;
1015
1049
  password?: string;
1050
+ createFolders?: boolean;
1016
1051
  }
1017
1052
 
1018
1053
  declare interface FileDomainRecords {
@@ -1184,6 +1219,16 @@ declare interface FormattedTextNodeContent {
1184
1219
  format?: number;
1185
1220
  }
1186
1221
 
1222
+ declare interface GalleryDomainRecord {
1223
+ sources?: {
1224
+ program?: string;
1225
+ };
1226
+ }
1227
+
1228
+ declare interface GalleryDomainRecords {
1229
+ ":gallery": GalleryDomainRecord;
1230
+ }
1231
+
1187
1232
  declare interface GeneralAssetRecord {
1188
1233
  title?: string;
1189
1234
  tags?: string;
@@ -1358,7 +1403,7 @@ declare interface HttpConnectionResponseHandler<ResOutput = undefined> {
1358
1403
 
1359
1404
  @example
1360
1405
  ```
1361
- import {If} from 'type-fest';
1406
+ import type {If} from 'type-fest';
1362
1407
 
1363
1408
  type A = If<true, 'yes', 'no'>;
1364
1409
  //=> 'yes'
@@ -1378,7 +1423,7 @@ declare interface HttpConnectionResponseHandler<ResOutput = undefined> {
1378
1423
 
1379
1424
  @example
1380
1425
  ```
1381
- import {If, IsAny, IsNever} from 'type-fest';
1426
+ import type {If, IsAny, IsNever} from 'type-fest';
1382
1427
 
1383
1428
  type A = If<IsAny<unknown>, 'is any', 'not any'>;
1384
1429
  //=> 'not any'
@@ -1389,7 +1434,7 @@ declare interface HttpConnectionResponseHandler<ResOutput = undefined> {
1389
1434
 
1390
1435
  @example
1391
1436
  ```
1392
- import {If, IsEqual} from 'type-fest';
1437
+ import type {If, IsEqual} from 'type-fest';
1393
1438
 
1394
1439
  type IfEqual<T, U, IfBranch, ElseBranch> = If<IsEqual<T, U>, IfBranch, ElseBranch>;
1395
1440
 
@@ -1400,6 +1445,41 @@ declare interface HttpConnectionResponseHandler<ResOutput = undefined> {
1400
1445
  //=> 'not equal'
1401
1446
  ```
1402
1447
 
1448
+ Note: Sometimes using the `If` type can make an implementation non–tail-recursive, which can impact performance. In such cases, it’s better to use a conditional directly. Refer to the following example:
1449
+
1450
+ @example
1451
+ ```
1452
+ import type {If, IsEqual, StringRepeat} from 'type-fest';
1453
+
1454
+ type HundredZeroes = StringRepeat<'0', 100>;
1455
+
1456
+ // The following implementation is not tail recursive
1457
+ type Includes<S extends string, Char extends string> =
1458
+ S extends `${infer First}${infer Rest}`
1459
+ ? If<IsEqual<First, Char>,
1460
+ 'found',
1461
+ Includes<Rest, Char>>
1462
+ : 'not found';
1463
+
1464
+ // Hence, instantiations with long strings will fail
1465
+ // @ts-expect-error
1466
+ type Fails = Includes<HundredZeroes, '1'>;
1467
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1468
+ // Error: Type instantiation is excessively deep and possibly infinite.
1469
+
1470
+ // However, if we use a simple conditional instead of `If`, the implementation becomes tail-recursive
1471
+ type IncludesWithoutIf<S extends string, Char extends string> =
1472
+ S extends `${infer First}${infer Rest}`
1473
+ ? IsEqual<First, Char> extends true
1474
+ ? 'found'
1475
+ : IncludesWithoutIf<Rest, Char>
1476
+ : 'not found';
1477
+
1478
+ // Now, instantiations with long strings will work
1479
+ type Works = IncludesWithoutIf<HundredZeroes, '1'>;
1480
+ //=> 'not found'
1481
+ ```
1482
+
1403
1483
  @category Type Guard
1404
1484
  @category Utilities
1405
1485
  */
@@ -1483,7 +1563,7 @@ declare type InternalIsUnion<T, U = T> =
1483
1563
  IsNever<T> extends true
1484
1564
  ? false
1485
1565
  : T extends any
1486
- ? [U] extends [T]
1566
+ ? IsEqual<U, T> extends true
1487
1567
  ? false
1488
1568
  : true
1489
1569
  : never
@@ -1503,15 +1583,54 @@ declare type InternalIsUnion<T, U = T> =
1503
1583
  import type {IsEmptyObject} from 'type-fest';
1504
1584
 
1505
1585
  type Pass = IsEmptyObject<{}>; //=> true
1506
- type Fail = IsEmptyObject<[]>; //=> false
1507
- type Fail = IsEmptyObject<null>; //=> false
1586
+ type Fail1 = IsEmptyObject<[]>; //=> false
1587
+ type Fail2 = IsEmptyObject<null>; //=> false
1508
1588
  ```
1509
1589
 
1510
- @see EmptyObject
1590
+ @see {@link EmptyObject}
1511
1591
  @category Object
1512
1592
  */
1513
1593
  declare type IsEmptyObject<T> = T extends EmptyObject_2 ? true : false;
1514
1594
 
1595
+ /**
1596
+ Returns a boolean for whether the two given types are equal.
1597
+
1598
+ @link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650
1599
+ @link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796
1600
+
1601
+ Use-cases:
1602
+ - If you want to make a conditional branch based on the result of a comparison of two types.
1603
+
1604
+ @example
1605
+ ```
1606
+ import type {IsEqual} from 'type-fest';
1607
+
1608
+ // This type returns a boolean for whether the given array includes the given item.
1609
+ // `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
1610
+ type Includes<Value extends readonly any[], Item> =
1611
+ Value extends readonly [Value[0], ...infer rest]
1612
+ ? IsEqual<Value[0], Item> extends true
1613
+ ? true
1614
+ : Includes<rest, Item>
1615
+ : false;
1616
+ ```
1617
+
1618
+ @category Type Guard
1619
+ @category Utilities
1620
+ */
1621
+ declare type IsEqual<A, B> =
1622
+ [A] extends [B]
1623
+ ? [B] extends [A]
1624
+ ? _IsEqual<A, B>
1625
+ : false
1626
+ : false;
1627
+
1628
+ declare type _IsEqual<A, B> =
1629
+ (<G>() => G extends A & G | G ? 1 : 2) extends
1630
+ (<G>() => G extends B & G | G ? 1 : 2)
1631
+ ? true
1632
+ : false;
1633
+
1515
1634
  /**
1516
1635
  Returns a boolean for whether the given type is `never`.
1517
1636
 
@@ -1525,29 +1644,41 @@ declare type IsEmptyObject<T> = T extends EmptyObject_2 ? true : false;
1525
1644
  ```
1526
1645
  import type {IsNever, And} from 'type-fest';
1527
1646
 
1528
- // https://github.com/andnp/SimplyTyped/blob/master/src/types/strings.ts
1529
- type AreStringsEqual<A extends string, B extends string> =
1530
- And<
1531
- IsNever<Exclude<A, B>> extends true ? true : false,
1532
- IsNever<Exclude<B, A>> extends true ? true : false
1533
- >;
1534
-
1535
- type EndIfEqual<I extends string, O extends string> =
1536
- AreStringsEqual<I, O> extends true
1537
- ? never
1538
- : void;
1539
-
1540
- function endIfEqual<I extends string, O extends string>(input: I, output: O): EndIfEqual<I, O> {
1541
- if (input === output) {
1542
- process.exit(0);
1543
- }
1544
- }
1545
-
1546
- endIfEqual('abc', 'abc');
1647
+ type A = IsNever<never>;
1648
+ //=> true
1649
+
1650
+ type B = IsNever<any>;
1651
+ //=> false
1652
+
1653
+ type C = IsNever<unknown>;
1654
+ //=> false
1655
+
1656
+ type D = IsNever<never[]>;
1657
+ //=> false
1658
+
1659
+ type E = IsNever<object>;
1660
+ //=> false
1661
+
1662
+ type F = IsNever<string>;
1663
+ //=> false
1664
+ ```
1665
+
1666
+ @example
1667
+ ```
1668
+ import type {IsNever} from 'type-fest';
1669
+
1670
+ type IsTrue<T> = T extends true ? true : false;
1671
+
1672
+ // When a distributive conditional is instantiated with `never`, the entire conditional results in `never`.
1673
+ type A = IsTrue<never>;
1547
1674
  //=> never
1548
1675
 
1549
- endIfEqual('abc', '123');
1550
- //=> void
1676
+ // If you don't want that behaviour, you can explicitly add an `IsNever` check before the distributive conditional.
1677
+ type IsTrueFixed<T> =
1678
+ IsNever<T> extends true ? false : T extends true ? true : false;
1679
+
1680
+ type B = IsTrueFixed<never>;
1681
+ //=> false
1551
1682
  ```
1552
1683
 
1553
1684
  @category Type Guard
@@ -1607,24 +1738,29 @@ declare interface ListNodeContent {
1607
1738
  }
1608
1739
 
1609
1740
  /**
1610
- * Maximum value constraint tag.
1611
- *
1612
- * Enforces that a numeric value must be less than or equal to the specified
1613
- * maximum. This constraint validates that the input value satisfies: input <=
1614
- * maximum.
1741
+ * Inclusive maximum value constraint (value <= max).
1615
1742
  *
1616
- * Example usage:
1743
+ * `Maximum<N>` is a type tag that validates numeric values are less than or
1744
+ * equal to the specified bound. Apply it to `number` or `bigint` properties
1745
+ * using TypeScript intersection types.
1617
1746
  *
1618
- * ```typescript
1619
- * type Percentage = number & tags.Maximum<100>; // Must be <= 100
1620
- * type SmallInt = bigint & tags.Maximum<255n>; // BigInt must be <= 255
1621
- * ```
1747
+ * This constraint is **mutually exclusive** with {@link ExclusiveMaximum} - you
1748
+ * cannot use both on the same property. Use `Maximum` for inclusive bounds (<=)
1749
+ * and `ExclusiveMaximum` for exclusive bounds (<).
1622
1750
  *
1623
- * Note: This tag is mutually exclusive with ExclusiveMaximum. You cannot apply
1624
- * both Maximum and ExclusiveMaximum constraints to the same property.
1751
+ * The constraint is enforced at runtime by `typia.is()`, `typia.assert()`, and
1752
+ * `typia.validate()`. It also generates `maximum` in JSON Schema output.
1625
1753
  *
1626
1754
  * @author Jeongho Nam - https://github.com/samchon
1627
- * @template Value - The maximum value constraint (number or bigint literal)
1755
+ * @example
1756
+ * interface Rating {
1757
+ * // Score from 0-100
1758
+ * score: number & Minimum<0> & Maximum<100>;
1759
+ * // Percentage cannot exceed 1.0
1760
+ * ratio: number & Maximum<1.0>;
1761
+ * }
1762
+ *
1763
+ * @template Value The maximum allowed value (inclusive)
1628
1764
  */
1629
1765
  declare type Maximum<Value extends number | bigint> = TagBase<{
1630
1766
  target: Value extends bigint ? "bigint" : "number";
@@ -1786,24 +1922,29 @@ declare interface Message {
1786
1922
  declare type MethodsRecord = Union["methods"];
1787
1923
 
1788
1924
  /**
1789
- * Minimum value constraint tag.
1790
- *
1791
- * Enforces that a numeric value must be greater than or equal to the specified
1792
- * minimum. This constraint validates that the input value satisfies: input >=
1793
- * minimum.
1925
+ * Inclusive minimum value constraint (value >= min).
1794
1926
  *
1795
- * Example usage:
1927
+ * `Minimum<N>` is a type tag that validates numeric values are greater than or
1928
+ * equal to the specified bound. Apply it to `number` or `bigint` properties
1929
+ * using TypeScript intersection types.
1796
1930
  *
1797
- * ```typescript
1798
- * type Age = number & tags.Minimum<0>; // Age must be 0 or greater
1799
- * type Balance = bigint & tags.Minimum<0n>; // BigInt balance must be non-negative
1800
- * ```
1931
+ * This constraint is **mutually exclusive** with {@link ExclusiveMinimum} - you
1932
+ * cannot use both on the same property. Use `Minimum` for inclusive bounds (>=)
1933
+ * and `ExclusiveMinimum` for exclusive bounds (>).
1801
1934
  *
1802
- * Note: This tag is mutually exclusive with ExclusiveMinimum. You cannot apply
1803
- * both Minimum and ExclusiveMinimum constraints to the same property.
1935
+ * The constraint is enforced at runtime by `typia.is()`, `typia.assert()`, and
1936
+ * `typia.validate()`. It also generates `minimum` in JSON Schema output.
1804
1937
  *
1805
1938
  * @author Jeongho Nam - https://github.com/samchon
1806
- * @template Value - The minimum value constraint (number or bigint literal)
1939
+ * @example
1940
+ * interface Product {
1941
+ * // Price must be 0 or greater
1942
+ * price: number & Minimum<0>;
1943
+ * // Quantity must be at least 1
1944
+ * quantity: number & Minimum<1>;
1945
+ * }
1946
+ *
1947
+ * @template Value The minimum allowed value (inclusive)
1807
1948
  */
1808
1949
  declare type Minimum<Value extends number | bigint> = TagBase<{
1809
1950
  target: Value extends bigint ? "bigint" : "number";
@@ -1821,6 +1962,7 @@ declare type Minimum<Value extends number | bigint> = TagBase<{
1821
1962
  declare interface MiscRecords {
1822
1963
  "asset-daemon": AssetDaemonRecord;
1823
1964
  "asset-daemon:user-notify.state": AssetDaemonUserNotifyStateRecord;
1965
+ "asset-daemon:validate.state": AssetDaemonValidateStateRecord;
1824
1966
  "deepstream-replicator.stats?": DeepstreamReplicatorStatsRecord;
1825
1967
  }
1826
1968
 
@@ -2000,7 +2142,7 @@ declare interface NxtError {
2000
2142
  errors?: NxtError[] | null;
2001
2143
  }
2002
2144
 
2003
- declare type Nxtpression<ReturnValue = unknown, Context extends object = object> = {
2145
+ declare type Nxtpression<ReturnValue = unknown, Context extends Record<string, unknown> = Record<string, unknown>> = {
2004
2146
  /**
2005
2147
  * TS-HACK: this property doesn't really exist on the nxtpression string,
2006
2148
  * it is only here to make sure the generic Context won't get stripped.
@@ -2060,6 +2202,7 @@ declare interface NxtStatusMessage {
2060
2202
  title: string;
2061
2203
  url: string;
2062
2204
  };
2205
+ data?: unknown;
2063
2206
  }
2064
2207
 
2065
2208
  declare interface NxtStatusNode extends NxtStatusObject {
@@ -2107,8 +2250,6 @@ declare interface NxtStatusService extends NxtStatusObject {
2107
2250
  /**
2108
2251
  * A representation of any set of values over any amount of time. This is the most basic building block
2109
2252
  * of RxJS.
2110
- *
2111
- * @class Observable<T>
2112
2253
  */
2113
2254
  declare class Observable<T> implements Subscribable<T> {
2114
2255
  /**
@@ -2120,8 +2261,7 @@ declare class Observable<T> implements Subscribable<T> {
2120
2261
  */
2121
2262
  operator: Operator<any, T> | undefined;
2122
2263
  /**
2123
- * @constructor
2124
- * @param {Function} subscribe the function that is called when the Observable is
2264
+ * @param subscribe The function that is called when the Observable is
2125
2265
  * initially subscribed to. This function is given a Subscriber, to which new values
2126
2266
  * can be `next`ed, or an `error` method can be called to raise an error, or
2127
2267
  * `complete` can be called to notify of a successful completion.
@@ -2129,20 +2269,16 @@ declare class Observable<T> implements Subscribable<T> {
2129
2269
  constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic);
2130
2270
  /**
2131
2271
  * Creates a new Observable by calling the Observable constructor
2132
- * @owner Observable
2133
- * @method create
2134
- * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor
2135
- * @return {Observable} a new observable
2136
- * @nocollapse
2272
+ * @param subscribe the subscriber function to be passed to the Observable constructor
2273
+ * @return A new observable.
2137
2274
  * @deprecated Use `new Observable()` instead. Will be removed in v8.
2138
2275
  */
2139
2276
  static create: (...args: any[]) => any;
2140
2277
  /**
2141
2278
  * Creates a new Observable, with this Observable instance as the source, and the passed
2142
2279
  * operator defined as the new observable's operator.
2143
- * @method lift
2144
2280
  * @param operator the operator defining the operation to take on the observable
2145
- * @return a new observable with the Operator applied
2281
+ * @return A new observable with the Operator applied.
2146
2282
  * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.
2147
2283
  * If you have implemented an operator using `lift`, it is recommended that you create an
2148
2284
  * operator by simply returning `new Observable()` directly. See "Creating new operators from
@@ -2192,9 +2328,9 @@ declare class Observable<T> implements Subscribable<T> {
2192
2328
  * // 'Total: 6'
2193
2329
  * ```
2194
2330
  *
2195
- * @param next a handler for each value emitted by the observable
2196
- * @return a promise that either resolves on observable completion or
2197
- * rejects with the handled error
2331
+ * @param next A handler for each value emitted by the observable.
2332
+ * @return A promise that either resolves on observable completion or
2333
+ * rejects with the handled error.
2198
2334
  */
2199
2335
  forEach(next: (value: T) => void): Promise<void>;
2200
2336
  /**
@@ -2278,6 +2414,10 @@ declare interface Operator<T, R> {
2278
2414
  declare interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Observable<R>> {
2279
2415
  }
2280
2416
 
2417
+ declare type PageOrientation = "landscape" | "portrait";
2418
+
2419
+ declare type PageSize = "A5" | "A4" | "A3";
2420
+
2281
2421
  declare interface PanelDomainPanelRecord {
2282
2422
  title?: string;
2283
2423
  /**
@@ -2311,22 +2451,33 @@ declare interface ParagraphNodeContent extends ElementNodeContent {
2311
2451
  declare type Paths<Data> = keyof Data & string;
2312
2452
 
2313
2453
  /**
2314
- * String pattern (regular expression) constraint tag.
2454
+ * Regular expression pattern constraint for strings.
2315
2455
  *
2316
- * Validates that a string matches a specified regular expression pattern. Use
2317
- * this tag to enforce custom string formats through regex validation.
2456
+ * `Pattern<Regex>` is a type tag that validates string values match the
2457
+ * specified regular expression pattern. Apply it to `string` properties using
2458
+ * TypeScript intersection types.
2318
2459
  *
2319
- * Examples:
2460
+ * This constraint is **mutually exclusive** with {@link Format} - you cannot use
2461
+ * both on the same property. Use `Pattern` for custom regex validation, or
2462
+ * `Format` for standard formats (email, uuid, etc.).
2320
2463
  *
2321
- * ```ts
2322
- * type PhoneNumber = string & Pattern<"^\d{3}-\d{3}-\d{4}$">; // 123-456-7890
2323
- * type HexColor = string & Pattern<"^#[0-9A-Fa-f]{6}$">; // #FF5733
2324
- * ```
2464
+ * The pattern should be a valid JavaScript regular expression string without
2465
+ * the surrounding slashes. The entire string must match (implicit `^` and `$`
2466
+ * anchors).
2325
2467
  *
2326
- * Note: This tag is mutually exclusive with the Format tag. You cannot use both
2327
- * Pattern and Format on the same type.
2468
+ * The constraint is enforced at runtime by `typia.is()`, `typia.assert()`, and
2469
+ * `typia.validate()`. It generates `pattern` in JSON Schema output.
2328
2470
  *
2329
2471
  * @author Jeongho Nam - https://github.com/samchon
2472
+ * @example
2473
+ * interface Product {
2474
+ * // SKU format: 3 letters, dash, 4 digits
2475
+ * sku: string & Pattern<"^[A-Z]{3}-[0-9]{4}$">;
2476
+ * // Phone number: digits and optional dashes
2477
+ * phone: string & Pattern<"^[0-9-]+$">;
2478
+ * }
2479
+ *
2480
+ * @template Value Regular expression pattern as a string literal
2330
2481
  */
2331
2482
  declare type Pattern<Value extends string> = TagBase<{
2332
2483
  target: "string";
@@ -2399,6 +2550,39 @@ declare interface PlanningRecord {
2399
2550
  deadline?: string | null;
2400
2551
  }
2401
2552
 
2553
+ declare type PrintOptionalScriptNodes = "event" | "event-data" | "comment" | "heading" | "list" | "quote" | "paragraph" | "horizontalrule";
2554
+
2555
+ declare type PrintOptions = PrintScriptOptions | PrintRundownOptions;
2556
+
2557
+ declare interface PrintOptionsBase {
2558
+ title: string;
2559
+ horizontalMargin: number;
2560
+ pageSize: PageSize;
2561
+ orientation: PageOrientation;
2562
+ fontSize: number;
2563
+ fontFamily?: string;
2564
+ hide: PrintOptionalScriptNodes[];
2565
+ }
2566
+
2567
+ declare interface PrintRundownColumn {
2568
+ key: "id" | "title" | "time" | "duration" | "position" | "accDuration" | "type";
2569
+ label: string;
2570
+ width: string;
2571
+ textAlign: "right" | "left" | "center";
2572
+ }
2573
+
2574
+ declare interface PrintRundownOptions extends PrintOptionsBase {
2575
+ type: "rundown";
2576
+ columns: PrintRundownColumn[];
2577
+ rangeStart?: number;
2578
+ rangeEnd?: number;
2579
+ hide: Exclude<PrintOptionalScriptNodes, "event-data">[];
2580
+ }
2581
+
2582
+ declare interface PrintScriptOptions extends PrintOptionsBase {
2583
+ type: "script";
2584
+ }
2585
+
2402
2586
  declare interface PromotedTag {
2403
2587
  name: string | null;
2404
2588
  icon: string | null;
@@ -2527,6 +2711,8 @@ number,
2527
2711
  number
2528
2712
  ];
2529
2713
 
2714
+ declare type ReadType = "characters" | "words" | "wordsPerMinute";
2715
+
2530
2716
  declare interface Records extends KeyedDomainRecords, KeyedProvidedDomainRecords, DbExactRecords, DbProvidedRecord {
2531
2717
  [key: string]: unknown;
2532
2718
  }
@@ -2834,6 +3020,7 @@ declare interface RenderSceneObject {
2834
3020
  transcribe?: {
2835
3021
  language?: string;
2836
3022
  pan?: number[];
3023
+ diarization?: boolean;
2837
3024
  };
2838
3025
  /** @deprecated Use video.crop instead */
2839
3026
  crop?: RenderSceneCrop;
@@ -2898,13 +3085,23 @@ declare interface RevsRecord {
2898
3085
  }
2899
3086
 
2900
3087
  declare interface RoleDomainRecords {
3088
+ ":role": RoleRecord;
3089
+ ":role.users?": RoleUsersRecord;
2901
3090
  ":role.tags": RoleTagsRecord;
2902
3091
  }
2903
3092
 
3093
+ declare type RoleRecord = {
3094
+ permissions?: Record<string, string[]>;
3095
+ };
3096
+
2904
3097
  declare interface RoleTagsRecord {
2905
3098
  value: string[];
2906
3099
  }
2907
3100
 
3101
+ declare type RoleUsersRecord = {
3102
+ value?: string[];
3103
+ };
3104
+
2908
3105
  declare interface RpcPermission {
2909
3106
  type: "rpc";
2910
3107
  method: string;
@@ -3103,6 +3300,10 @@ declare type SerializedLexicalNode = {
3103
3300
  type: string;
3104
3301
  /** A numeric version for this schema, defaulting to 1, but not generally recommended for use */
3105
3302
  version: number;
3303
+ /**
3304
+ * Any state persisted with the NodeState API that is not
3305
+ * configured for flat storage
3306
+ */
3106
3307
  [NODE_STATE_KEY]?: Record<string, unknown>;
3107
3308
  };
3108
3309
 
@@ -3251,6 +3452,7 @@ declare interface Settings {
3251
3452
  sortBy?: "index" | "title";
3252
3453
  showPreview?: boolean;
3253
3454
  };
3455
+ contentMaxWidth?: number;
3254
3456
  colorTags?: PromotedTag[];
3255
3457
  readType?: "characters" | "words" | "wordsPerMinute";
3256
3458
  readRate?: number;
@@ -3436,6 +3638,7 @@ declare interface Settings {
3436
3638
  };
3437
3639
  print?: {
3438
3640
  fontFamilies?: string[];
3641
+ presets?: Array<PrintOptions>;
3439
3642
  };
3440
3643
  hiddenPreviews?: Array<{
3441
3644
  id?: string;
@@ -3451,6 +3654,7 @@ declare interface Settings {
3451
3654
  downloadPath?: string;
3452
3655
  renderPath?: string;
3453
3656
  renderPresetPath?: string;
3657
+ renderPresets?: string[];
3454
3658
  videoRenderPreset?: string;
3455
3659
  imageRenderPreset?: string;
3456
3660
  audioRenderPreset?: string;
@@ -3461,6 +3665,9 @@ declare interface Settings {
3461
3665
  template?: string;
3462
3666
  };
3463
3667
  };
3668
+ ograf?: {
3669
+ template?: string;
3670
+ };
3464
3671
  rive?: {
3465
3672
  template?: string;
3466
3673
  };
@@ -3536,8 +3743,10 @@ declare interface Settings {
3536
3743
  layout?: string;
3537
3744
  };
3538
3745
  performance?: {
3539
- /** List of message identifiers to ignore in overall health aggregation (format: "serviceName:messageText") */
3540
- ignoredMessages?: string[];
3746
+ /** List of message identifiers to ignore warnings (format: "serviceName:messageText") */
3747
+ ignoredWarnings?: string[];
3748
+ /** List of message identifiers to ignore errors (format: "serviceName:messageText") */
3749
+ ignoredErrors?: string[];
3541
3750
  };
3542
3751
  app?: {
3543
3752
  enableUpdate?: boolean;
@@ -3622,16 +3831,12 @@ declare interface ShotboxStreamGroup {
3622
3831
  ```
3623
3832
  import type {SingleKeyObject} from 'type-fest';
3624
3833
 
3625
- const someFunction = <T>(parameter: SingleKeyObject<T>) => {};
3834
+ declare function someFunction<T>(parameter: SingleKeyObject<T>): void;
3626
3835
 
3627
- someFunction({
3628
- value: true
3629
- });
3836
+ someFunction({value: true});
3630
3837
 
3631
- someFunction({
3632
- value: true,
3633
- otherKey: true
3634
- });
3838
+ // @ts-expect-error
3839
+ someFunction({value: true, otherKey: true});
3635
3840
  // Error: Argument of type '{value: boolean; otherKey: boolean}' is not assignable to parameter of type 'never'.ts(2345)
3636
3841
  ```
3637
3842
 
@@ -3646,6 +3851,48 @@ declare type Spread<T1, T2> = Omit<T2, keyof T1> & T1;
3646
3851
 
3647
3852
  declare type StatsRecord = Union["stats"];
3648
3853
 
3854
+ declare interface StorageDomainRecord {
3855
+ zone: string;
3856
+ hostname: string | null;
3857
+ port?: number | null;
3858
+ location?: string;
3859
+ cache?: boolean | null;
3860
+ allows?: string[];
3861
+ capacity?: number | null;
3862
+ rxBytesSecMax?: number | null;
3863
+ txBytesSecMax?: number | null;
3864
+ rxBytesSecLimit?: number | null;
3865
+ txBytesSecLimit?: number | null;
3866
+ }
3867
+
3868
+ declare interface StorageDomainRecords {
3869
+ ":storage": StorageDomainRecord;
3870
+ ":storage.stats": StorageStatsDomainRecord;
3871
+ ":storage-zone": StorageZoneDomainRecord;
3872
+ }
3873
+
3874
+ declare interface StorageFsStats {
3875
+ concurrency?: number;
3876
+ path?: string;
3877
+ snapshot?: number | null;
3878
+ available?: number;
3879
+ free?: number;
3880
+ used?: number;
3881
+ size?: number;
3882
+ state?: string;
3883
+ [key: string]: unknown;
3884
+ }
3885
+
3886
+ declare interface StorageIoQueues {
3887
+ highest: number;
3888
+ higher: number;
3889
+ high: number;
3890
+ normal: number;
3891
+ low: number;
3892
+ lower: number;
3893
+ lowest: number;
3894
+ }
3895
+
3649
3896
  declare interface StorageLocationsRecord {
3650
3897
  [key: string]: StorageLocationsRecordEntry;
3651
3898
  }
@@ -3675,6 +3922,58 @@ declare interface StorageRecords {
3675
3922
  "storage.zones?": StorageZonesRecord;
3676
3923
  }
3677
3924
 
3925
+ declare interface StorageS3Stats {
3926
+ bucket?: string;
3927
+ region?: string;
3928
+ endpoint?: string;
3929
+ path?: string;
3930
+ storageClass?: string;
3931
+ [key: string]: unknown;
3932
+ }
3933
+
3934
+ declare interface StorageStatsDomainRecord {
3935
+ id: string;
3936
+ location: string;
3937
+ timestamp: string;
3938
+ type: string;
3939
+ zone: string;
3940
+ origin: string;
3941
+ free: number | null;
3942
+ size: number | null;
3943
+ available: number | null;
3944
+ cache: boolean | null;
3945
+ capacity: number | null;
3946
+ limiter: {
3947
+ readBytesPerSecond: number | undefined;
3948
+ writeBytesPerSecond: number | undefined;
3949
+ };
3950
+ http: {
3951
+ downstreamConnected: number;
3952
+ upstreamConnected: number;
3953
+ pending: number;
3954
+ completed: number;
3955
+ failed: number;
3956
+ };
3957
+ io: {
3958
+ read: {
3959
+ bytesPerSecond: number;
3960
+ pending: number;
3961
+ queues: StorageIoQueues;
3962
+ };
3963
+ write: {
3964
+ bytesPerSecond: number;
3965
+ pending: number;
3966
+ queues: StorageIoQueues;
3967
+ };
3968
+ };
3969
+ fs?: StorageFsStats;
3970
+ s3?: StorageS3Stats;
3971
+ }
3972
+
3973
+ declare interface StorageZoneDomainRecord {
3974
+ priority?: number;
3975
+ }
3976
+
3678
3977
  declare interface StorageZonesRecord {
3679
3978
  [key: string]: {
3680
3979
  priority: number;
@@ -3802,8 +4101,6 @@ declare interface Subscribable<T> {
3802
4101
  * a Subscriber, in order to provide Subscription-like capabilities such as
3803
4102
  * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for
3804
4103
  * implementing operators, but it is rarely used as a public API.
3805
- *
3806
- * @class Subscriber<T>
3807
4104
  */
3808
4105
  declare class Subscriber<T> extends Subscription implements Observer<T> {
3809
4106
  /**
@@ -3816,7 +4113,6 @@ declare class Subscriber<T> extends Subscription implements Observer<T> {
3816
4113
  * Observer.
3817
4114
  * @return A Subscriber wrapping the (partially defined)
3818
4115
  * Observer represented by the given arguments.
3819
- * @nocollapse
3820
4116
  * @deprecated Do not use. Will be removed in v8. There is no replacement for this
3821
4117
  * method, and there is no reason to be creating instances of `Subscriber` directly.
3822
4118
  * If you have a specific use case, please file an issue.
@@ -3835,23 +4131,20 @@ declare class Subscriber<T> extends Subscription implements Observer<T> {
3835
4131
  * The {@link Observer} callback to receive notifications of type `next` from
3836
4132
  * the Observable, with a value. The Observable may call this method 0 or more
3837
4133
  * times.
3838
- * @param {T} [value] The `next` value.
3839
- * @return {void}
4134
+ * @param value The `next` value.
3840
4135
  */
3841
- next(value?: T): void;
4136
+ next(value: T): void;
3842
4137
  /**
3843
4138
  * The {@link Observer} callback to receive notifications of type `error` from
3844
4139
  * the Observable, with an attached `Error`. Notifies the Observer that
3845
4140
  * the Observable has experienced an error condition.
3846
- * @param {any} [err] The `error` exception.
3847
- * @return {void}
4141
+ * @param err The `error` exception.
3848
4142
  */
3849
4143
  error(err?: any): void;
3850
4144
  /**
3851
4145
  * The {@link Observer} callback to receive a valueless notification of type
3852
4146
  * `complete` from the Observable. Notifies the Observer that the Observable
3853
4147
  * has finished sending push-based notifications.
3854
- * @return {void}
3855
4148
  */
3856
4149
  complete(): void;
3857
4150
  unsubscribe(): void;
@@ -3869,12 +4162,9 @@ declare class Subscriber<T> extends Subscription implements Observer<T> {
3869
4162
  * method, which will attach a child Subscription to the current Subscription.
3870
4163
  * When a Subscription is unsubscribed, all its children (and its grandchildren)
3871
4164
  * will be unsubscribed as well.
3872
- *
3873
- * @class Subscription
3874
4165
  */
3875
4166
  declare class Subscription implements SubscriptionLike {
3876
4167
  private initialTeardown?;
3877
- /** @nocollapse */
3878
4168
  static EMPTY: Subscription;
3879
4169
  /**
3880
4170
  * A flag to indicate whether this Subscription has already been unsubscribed.
@@ -3895,7 +4185,6 @@ declare class Subscription implements SubscriptionLike {
3895
4185
  * Disposes the resources held by the subscription. May, for instance, cancel
3896
4186
  * an ongoing Observable execution or cancel any other type of work that
3897
4187
  * started when the Subscription was created.
3898
- * @return {void}
3899
4188
  */
3900
4189
  unsubscribe(): void;
3901
4190
  /**
@@ -4063,88 +4352,6 @@ declare interface SubtitleStyleDomainRecords {
4063
4352
  ":subtitle-style": SubtitleStyleDomainRecord;
4064
4353
  }
4065
4354
 
4066
- /**
4067
- * Base type for all validation tags in typia.
4068
- *
4069
- * TagBase provides the foundation for all typia's validation tags. It attaches
4070
- * metadata to TypeScript types that typia's transformer processes at
4071
- * compile-time to generate optimized runtime validation code.
4072
- *
4073
- * @author Jeongho Nam - https://github.com/samchon
4074
- * @example
4075
- * ```typescript
4076
- * // Custom tag example
4077
- * type MyCustomTag<Value extends number> = TagBase<{
4078
- * target: "number";
4079
- * kind: "MyCustom";
4080
- * value: Value;
4081
- * validate: `$input === ${Value}`;
4082
- * }>;
4083
- * ```
4084
- *
4085
- * @template Props - Tag properties that define validation behavior
4086
- */
4087
- declare type TagBase<Props extends TagBase.IProps<any, any, any, any, any, any>> = {
4088
- /**
4089
- * This is a dummy property for compilation.
4090
- *
4091
- * It does not mean anything in runtime.
4092
- */
4093
- "typia.tag"?: Props;
4094
- };
4095
-
4096
- declare namespace TagBase {
4097
- /**
4098
- * Properties interface for validation tags.
4099
- *
4100
- * @author Jeongho Nam - https://github.com/samchon
4101
- */
4102
- interface IProps<Target extends "boolean" | "bigint" | "number" | "string" | "array" | "object", Kind extends string, Value extends boolean | bigint | number | string | undefined, Validate extends string | {
4103
- [key in Target]?: string;
4104
- }, Exclusive extends boolean | string[], Schema extends object | undefined> {
4105
- /**
4106
- * Target type.
4107
- *
4108
- * If user tries to adapt this tag to a different type, it would be a
4109
- * compile error.
4110
- *
4111
- * For example, you've configured target type as `string`, but user adapted
4112
- * it onto a `number` type (`number & YourCustomTag<Value>`), then it would
4113
- * be blocked by TypeScript compiler.
4114
- */
4115
- target: Target;
4116
- /** What kind of tag is this? */
4117
- kind: Kind;
4118
- /** Value to be configured by user. */
4119
- value: Value;
4120
- /**
4121
- * Validation script.
4122
- *
4123
- * This script would be inserted into the generated validation function. In
4124
- * here script, target variable name must be `$input`. The variable name
4125
- * `$input` would be transformed to the suitable when compilation.
4126
- *
4127
- * Also, If you've take a mistake on this script, compile error would be
4128
- * occurred. So, define it with confidence. Compiler will block all your
4129
- * mistakes.
4130
- */
4131
- validate?: Validate;
4132
- /**
4133
- * Exclusive option.
4134
- *
4135
- * If this property configured as `true`, same {@link kind} tag cannot be
4136
- * duplicated in the target type. Otherwise, if you've configured this
4137
- * property as string array, all of the {@link kind} value assigned tags
4138
- * cannot be compatible in the target type.
4139
- *
4140
- * @default false
4141
- */
4142
- exclusive?: Exclusive | string[];
4143
- /** Additional schema info assigned to the {@link IJsonSchema} object. */
4144
- schema?: Schema;
4145
- }
4146
- }
4147
-
4148
4355
  declare interface TagPermission {
4149
4356
  type: "tag";
4150
4357
  method?: undefined;
@@ -4159,6 +4366,39 @@ declare interface TemplateDomainRecords {
4159
4366
 
4160
4367
  declare interface TemplateProperty {
4161
4368
  path?: string;
4369
+ type?: string;
4370
+ label?: string;
4371
+ defaultValue?: string;
4372
+ widget?: {
4373
+ type: string;
4374
+ };
4375
+ properties?: object;
4376
+ items?: {
4377
+ properties?: Record<string, TemplatePropertySchema>;
4378
+ };
4379
+ render?: {
4380
+ type: "image";
4381
+ profile?: {
4382
+ format?: string;
4383
+ video?: {
4384
+ width: number;
4385
+ height: number;
4386
+ fit: "cover";
4387
+ };
4388
+ };
4389
+ };
4390
+ }
4391
+
4392
+ declare interface TemplatePropertySchema {
4393
+ path?: string;
4394
+ type?: string;
4395
+ label?: string;
4396
+ defaultValue?: string;
4397
+ widget?: {
4398
+ type: string;
4399
+ };
4400
+ items?: TemplatePropertySchema;
4401
+ properties?: Record<string, TemplatePropertySchema>;
4162
4402
  }
4163
4403
 
4164
4404
  declare interface TemplateRecord {
@@ -4210,31 +4450,37 @@ declare interface TranscribeReplaceReplacer {
4210
4450
  }
4211
4451
 
4212
4452
  /**
4213
- * Type tag for specifying numeric bit-width representations.
4453
+ * Numeric precision and bit-width type constraint.
4454
+ *
4455
+ * `Type<Value>` is a type tag that constrains numeric values to specific
4456
+ * bit-width representations. This is essential for Protocol Buffers
4457
+ * serialization and ensures values fit within their specified ranges.
4214
4458
  *
4215
- * Constrains numeric types to specific bit-width formats used in systems
4216
- * programming and protocol buffers. Ensures numbers conform to
4217
- * platform-specific representations.
4459
+ * Available types:
4218
4460
  *
4219
- * Supported types:
4461
+ * - `"int32"`: Signed 32-bit integer (-2,147,483,648 to 2,147,483,647)
4462
+ * - `"uint32"`: Unsigned 32-bit integer (0 to 4,294,967,295)
4463
+ * - `"int64"`: Signed 64-bit integer (for `number` or `bigint`)
4464
+ * - `"uint64"`: Unsigned 64-bit integer (for `number` or `bigint`)
4465
+ * - `"float"`: 32-bit floating point
4466
+ * - `"double"`: 64-bit floating point (default JavaScript number)
4220
4467
  *
4221
- * - `int32`: 32-bit signed integer (-2^31 to 2^31-1)
4222
- * - `uint32`: 32-bit unsigned integer (0 to 2^32-1)
4223
- * - `int64`: 64-bit signed integer (supports both bigint and number)
4224
- * - `uint64`: 64-bit unsigned integer (supports both bigint and number)
4225
- * - `float`: 32-bit floating point (single precision)
4226
- * - `double`: 64-bit floating point (double precision, default JS number)
4468
+ * For Protocol Buffers, integer types also determine the wire encoding. The
4469
+ * constraint is enforced at runtime by `typia.is()`, `typia.assert()`, and
4470
+ * `typia.validate()`. It generates appropriate `type` in JSON Schema.
4227
4471
  *
4228
4472
  * @author Jeongho Nam - https://github.com/samchon
4229
4473
  * @example
4230
- * ```typescript
4231
- * type Score = number & Type<"int32">; // -2,147,483,648 to 2,147,483,647
4232
- * type UserId = number & Type<"uint32">; // 0 to 4,294,967,295
4233
- * type FileSize = bigint & Type<"int64">; // Large file sizes
4234
- * type Coordinate = number & Type<"double">; // High precision coordinates
4235
- * ```
4474
+ * interface Message {
4475
+ * // 32-bit unsigned integer
4476
+ * id: number & Type<"uint32">;
4477
+ * // 64-bit signed integer as bigint
4478
+ * timestamp: bigint & Type<"int64">;
4479
+ * // 32-bit float for memory efficiency
4480
+ * score: number & Type<"float">;
4481
+ * }
4236
4482
  *
4237
- * @template Value - The numeric type representation
4483
+ * @template Value Numeric type identifier
4238
4484
  */
4239
4485
  declare type Type<Value extends "int32" | "uint32" | "int64" | "uint64" | "float" | "double"> = TagBase<{
4240
4486
  target: Value extends "int64" | "uint64" ? "bigint" | "number" : "number";