@jbrowse/mobx-state-tree 6.3.0 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -284,7 +284,7 @@ declare function isRoot(target: IAnyStateTreeNode): boolean;
284
284
  * @param path escaped json path
285
285
  * @returns
286
286
  */
287
- declare function resolvePath(target: IAnyStateTreeNode, path: string): any;
287
+ declare function resolvePath<T = any>(target: IAnyStateTreeNode, path: string): T | undefined;
288
288
  /**
289
289
  * Resolves a model instance given a root target, the type and the identifier you are searching for.
290
290
  * Returns undefined if no value can be found.
@@ -327,7 +327,7 @@ declare function isValidReference<N extends IAnyStateTreeNode>(getter: () => N |
327
327
  * @param path
328
328
  * @returns
329
329
  */
330
- declare function tryResolve(target: IAnyStateTreeNode, path: string): any;
330
+ declare function tryResolve<T = any>(target: IAnyStateTreeNode, path: string): T | undefined;
331
331
  /**
332
332
  * Given two state tree nodes that are part of the same tree,
333
333
  * returns the shortest jsonpath needed to navigate from the one to the other
@@ -591,7 +591,7 @@ declare class ObjectNode<C, S, T> extends BaseNode<C, S, T> {
591
591
  readonly type: ComplexType<C, S, T>;
592
592
  storedValue: T & IStateTreeNode<IType<C, S, T>>;
593
593
  readonly nodeId: number;
594
- readonly identifierAttribute?: string;
594
+ readonly identifierAttribute?: string | undefined;
595
595
  readonly identifier: string | null;
596
596
  readonly unnormalizedIdentifier: ReferenceIdentifier | null;
597
597
  identifierCache?: IdentifierCache;
@@ -599,7 +599,7 @@ declare class ObjectNode<C, S, T> extends BaseNode<C, S, T> {
599
599
  middlewares?: IMiddleware[];
600
600
  hasSnapshotPostProcessor: boolean;
601
601
  private _applyPatches?;
602
- applyPatches(patches: IJsonPatch[]): void;
602
+ applyPatches(patches: ReadonlyArray<IJsonPatch>): void;
603
603
  private _applySnapshot?;
604
604
  applySnapshot(snapshot: C): void;
605
605
  private _autoUnbox;
@@ -683,8 +683,8 @@ type AnyObjectNode = ObjectNode<any, any, any>;
683
683
  * @hidden
684
684
  */
685
685
  interface AssertAliveContext {
686
- subpath?: string;
687
- actionContext?: IMiddlewareEvent;
686
+ subpath?: string | undefined;
687
+ actionContext?: IMiddlewareEvent | undefined;
688
688
  }
689
689
 
690
690
  /**
@@ -717,8 +717,8 @@ declare enum TypeFlags {
717
717
  Float = 4194304
718
718
  }
719
719
  /**
720
- * @internal
721
- * @hidden
720
+ * The value `getSubTypes()` returns when a type cannot report its subtype,
721
+ * which is distinct from reporting that it has none (`null`).
722
722
  */
723
723
  declare const cannotDetermineSubtype = "cannotDetermine";
724
724
  /**
@@ -741,7 +741,7 @@ interface IType<C, S, T> {
741
741
  /**
742
742
  * Name of the identifier attribute or null if none.
743
743
  */
744
- readonly identifierAttribute?: string;
744
+ readonly identifierAttribute?: string | undefined;
745
745
  /**
746
746
  * Creates an instance for the type given an snapshot input.
747
747
  *
@@ -759,7 +759,7 @@ interface IType<C, S, T> {
759
759
  * @param thing Snapshot or instance to be checked.
760
760
  * @returns true if the value is of the current type, false otherwise.
761
761
  */
762
- is(thing: any): thing is C | this["Type"];
762
+ is(thing: unknown): thing is C | this["Type"];
763
763
  /**
764
764
  * Run's the type's typechecker on the given value with the given validation context.
765
765
  *
@@ -949,11 +949,11 @@ declare abstract class BaseType<C, S, T, N extends BaseNode<any, any, any> = Bas
949
949
  abstract reconcile(current: N, newValue: C | T, parent: AnyObjectNode, subpath: string): N;
950
950
  abstract instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, initialValue: C | T): N;
951
951
  abstract flags: TypeFlags;
952
- abstract describe(): string;
952
+ describe(): string;
953
953
  abstract isValidSnapshot(value: C, context: IValidationContext): IValidationResult;
954
954
  isAssignableFrom(type: IAnyType): boolean;
955
955
  validate(value: C | T, context: IValidationContext): IValidationResult;
956
- is(thing: any): thing is any;
956
+ is(thing: unknown): thing is any;
957
957
  get Type(): any;
958
958
  get TypeWithoutSTN(): any;
959
959
  get SnapshotType(): any;
@@ -967,7 +967,7 @@ declare abstract class BaseType<C, S, T, N extends BaseNode<any, any, any> = Bas
967
967
  * @hidden
968
968
  */
969
969
  declare abstract class ComplexType<C, S, T> extends BaseType<C, S, T, ObjectNode<C, S, T>> {
970
- identifierAttribute?: string;
970
+ identifierAttribute?: string | undefined;
971
971
  create(snapshot?: C, environment?: any): any;
972
972
  getValue(node: this["N"]): T;
973
973
  abstract getDefaultSnapshot(): C;
@@ -992,7 +992,7 @@ declare abstract class ComplexType<C, S, T> extends BaseType<C, S, T, ObjectNode
992
992
  * @param value Value to check.
993
993
  * @returns `true` if the value is a type.
994
994
  */
995
- declare function isType(value: any): value is IAnyType;
995
+ declare function isType(value: unknown): value is IAnyType;
996
996
 
997
997
  interface IActionTrackingMiddlewareHooks<T> {
998
998
  filter?: (call: IMiddlewareEvent) => boolean;
@@ -1020,7 +1020,7 @@ declare function createActionTrackingMiddleware<T = any>(hooks: IActionTrackingM
1020
1020
 
1021
1021
  interface IActionTrackingMiddleware2Call<TEnv> extends Readonly<IActionContext> {
1022
1022
  env: TEnv | undefined;
1023
- readonly parentCall?: IActionTrackingMiddleware2Call<TEnv>;
1023
+ readonly parentCall?: IActionTrackingMiddleware2Call<TEnv> | undefined;
1024
1024
  }
1025
1025
  interface IActionTrackingMiddleware2Hooks<TEnv> {
1026
1026
  filter?: (call: IActionTrackingMiddleware2Call<TEnv>) => boolean;
@@ -1153,9 +1153,9 @@ interface IMiddlewareEvent extends IActionContext {
1153
1153
  readonly allParentIds: number[];
1154
1154
  }
1155
1155
  type FunctionWithFlag = ((...args: any[]) => any) & {
1156
- _isMSTAction?: boolean;
1157
- _isFlowAction?: boolean;
1158
- $mst_middleware?: IMiddleware[];
1156
+ _isMSTAction?: boolean | undefined;
1157
+ _isFlowAction?: boolean | undefined;
1158
+ $mst_middleware?: IMiddleware[] | undefined;
1159
1159
  };
1160
1160
  /**
1161
1161
  * @internal
@@ -1245,10 +1245,10 @@ interface IValidationError {
1245
1245
  /** Value that was being validated, either a snapshot or an instance */
1246
1246
  value: any;
1247
1247
  /** Error message */
1248
- message?: string;
1248
+ message?: string | undefined;
1249
1249
  }
1250
1250
  /** Type validation result, which is an array of type validation errors */
1251
- type IValidationResult = IValidationError[];
1251
+ type IValidationResult = ReadonlyArray<IValidationError>;
1252
1252
  /**
1253
1253
  * Run's the typechecker for the given type on the given value, which can be a snapshot or an instance.
1254
1254
  * Throws if the given value is not according the provided type specification.
@@ -1315,7 +1315,7 @@ interface IAnyStateTreeNode extends STNValue<any, IAnyType> {
1315
1315
  * @param value
1316
1316
  * @returns true if the value is a state tree node.
1317
1317
  */
1318
- declare function isStateTreeNode<IT extends IAnyComplexType = IAnyComplexType>(value: any): value is STNValue<Instance<IT>, IT>;
1318
+ declare function isStateTreeNode<IT extends IAnyComplexType = IAnyComplexType>(value: unknown): value is STNValue<Instance<IT>, IT>;
1319
1319
 
1320
1320
  /**
1321
1321
  * @hidden
@@ -1508,6 +1508,11 @@ interface IMapType<IT extends IAnyType> extends IType<IKeyValueMap<IT["CreationT
1508
1508
  /** the value type of the map */
1509
1509
  getChildType(): IAnyType;
1510
1510
  }
1511
+ /**
1512
+ * The forms `merge` and `replace` accept, mirroring mobx's
1513
+ * `IObservableMapInitialValues` with MST's snapshot-or-instance value type.
1514
+ */
1515
+ type IMSTMapInitialValues<IT extends IAnyType> = IMSTMap<IType<any, any, IT["TypeWithoutSTN"]>> | IKeyValueMap<ExtractCSTWithSTN<IT>> | Map<string | number, ExtractCSTWithSTN<IT>> | readonly (readonly [string | number, ExtractCSTWithSTN<IT>])[];
1511
1516
  /** @hidden */
1512
1517
  interface IMSTMap<IT extends IAnyType> {
1513
1518
  clear(): void;
@@ -1523,8 +1528,8 @@ interface IMSTMap<IT extends IAnyType> {
1523
1528
  entries(): IterableIterator<[string, IT["Type"]]>;
1524
1529
  [Symbol.iterator](): IterableIterator<[string, IT["Type"]]>;
1525
1530
  /** Merge another object into this map, returns self. */
1526
- merge(other: IMSTMap<IType<any, any, IT["TypeWithoutSTN"]>> | IKeyValueMap<ExtractCSTWithSTN<IT>> | any): this;
1527
- replace(values: IMSTMap<IType<any, any, IT["TypeWithoutSTN"]>> | IKeyValueMap<ExtractCSTWithSTN<IT>> | any): this;
1531
+ merge(other?: IMSTMapInitialValues<IT>): this;
1532
+ replace(values: IMSTMapInitialValues<IT>): this;
1528
1533
  toJSON(): IKeyValueMap<IT["SnapshotType"]>;
1529
1534
  toString(): string;
1530
1535
  [Symbol.toStringTag]: "Map";
@@ -1784,19 +1789,6 @@ declare function extendInstance<T extends IAnyStateTreeNode>(instance: T, fn: (s
1784
1789
  state?: object;
1785
1790
  }): T;
1786
1791
 
1787
- /**
1788
- * `types.Date` - Creates a type that can only contain a javascript Date value.
1789
- *
1790
- * Example:
1791
- * ```ts
1792
- * const LogLine = types.model({
1793
- * timestamp: types.Date,
1794
- * })
1795
- *
1796
- * LogLine.create({ timestamp: new Date() })
1797
- * ```
1798
- */
1799
- declare const DatePrimitive: IType<number | Date, number, Date>;
1800
1792
  /**
1801
1793
  * Returns if a given value represents a primitive type.
1802
1794
  *
@@ -1809,8 +1801,16 @@ declare const DatePrimitive: IType<number | Date, number, Date>;
1809
1801
  * @param type
1810
1802
  * @returns
1811
1803
  */
1812
- declare function isPrimitiveType<IT extends ISimpleType<string> | ISimpleType<number> | ISimpleType<boolean> | typeof DatePrimitive>(type: IT): boolean;
1804
+ declare function isPrimitiveType(type: IAnyType): boolean;
1813
1805
 
1806
+ /**
1807
+ * A literal type, which additionally publishes the exact value it matches.
1808
+ * `getUnionSubtypes` of an enumeration returns these, so the members can be
1809
+ * mapped back to their values without a hand-declared interface.
1810
+ */
1811
+ interface ILiteralType<S extends Primitives> extends ISimpleType<S> {
1812
+ readonly value: S;
1813
+ }
1814
1814
  /**
1815
1815
  * `types.literal` - The literal type will return a type that will match only the exact given type.
1816
1816
  * The given value must be a primitive, in order to be serialized to a snapshot correctly.
@@ -1827,7 +1827,7 @@ declare function isPrimitiveType<IT extends ISimpleType<string> | ISimpleType<nu
1827
1827
  * @param value The value to use in the strict equal check
1828
1828
  * @returns
1829
1829
  */
1830
- declare function literal<S extends Primitives>(value: S): ISimpleType<S>;
1830
+ declare function literal<S extends Primitives>(value: S): ILiteralType<S>;
1831
1831
  /**
1832
1832
  * Returns if a given value represents a literal type.
1833
1833
  *
@@ -1840,7 +1840,7 @@ declare function literal<S extends Primitives>(value: S): ISimpleType<S>;
1840
1840
  * @param type
1841
1841
  * @returns
1842
1842
  */
1843
- declare function isLiteralType<IT extends ISimpleType<any>>(type: IT): boolean;
1843
+ declare function isLiteralType(type: IAnyType): boolean;
1844
1844
 
1845
1845
  declare function refinement<IT extends IAnyType>(name: string, type: IT, predicate: (snapshot: IT["CreationType"]) => boolean, message?: string | ((v: IT["CreationType"]) => string)): IT;
1846
1846
  declare function refinement<IT extends IAnyType>(type: IT, predicate: (snapshot: IT["CreationType"]) => boolean, message?: string | ((v: IT["CreationType"]) => string)): IT;
@@ -1856,7 +1856,7 @@ declare function refinement<IT extends IAnyType>(type: IT, predicate: (snapshot:
1856
1856
  * @param type
1857
1857
  * @returns
1858
1858
  */
1859
- declare function isRefinementType<IT extends IAnyType>(type: IT): boolean;
1859
+ declare function isRefinementType(type: IAnyType): boolean;
1860
1860
 
1861
1861
  /** @hidden */
1862
1862
  type UnionStringArray<T extends readonly string[]> = T[number];
@@ -1876,38 +1876,21 @@ type _CustomCSProcessor<T> = Exclude<T, _NotCustomized> extends never ? _NotCust
1876
1876
  /** @hidden */
1877
1877
  interface ITypeUnion<C, S, T> extends IType<_CustomCSProcessor<C>, _CustomCSProcessor<S>, T> {
1878
1878
  }
1879
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB>>;
1880
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB>>;
1881
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC>>;
1882
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC>>;
1883
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD>>;
1884
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD>>;
1885
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE>>;
1886
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE>>;
1887
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF>>;
1888
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF>>;
1889
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG>>;
1890
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG>>;
1891
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH>>;
1892
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH>>;
1893
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH, PI extends ModelProperties, OI, FCI, FSI>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>, I: IModelType<PI, OI, FCI, FSI>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH> | ModelCreationType2<PI, FCI>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH> | ModelSnapshotType2<PI, FSI>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH> | ModelInstanceType<PI, OI>>;
1894
- declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH, PI extends ModelProperties, OI, FCI, FSI>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>, I: IModelType<PI, OI, FCI, FSI>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH> | ModelCreationType2<PI, FCI>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH> | ModelSnapshotType2<PI, FSI>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH> | ModelInstanceType<PI, OI>>;
1879
+ /** @hidden */
1880
+ type _UnionMembersCreationType<Types extends readonly IAnyType[]> = {
1881
+ [K in keyof Types]: Types[K]["CreationType"];
1882
+ }[number];
1883
+ /** @hidden */
1884
+ type _UnionMembersSnapshotType<Types extends readonly IAnyType[]> = {
1885
+ [K in keyof Types]: Types[K]["SnapshotType"];
1886
+ }[number];
1887
+ /** @hidden */
1888
+ type _UnionMembersTypeWithoutSTN<Types extends readonly IAnyType[]> = {
1889
+ [K in keyof Types]: Types[K]["TypeWithoutSTN"];
1890
+ }[number];
1895
1891
  declare function union<CA, SA, TA, CB, SB, TB>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>): ITypeUnion<CA | CB, SA | SB, TA | TB>;
1896
- declare function union<CA, SA, TA, CB, SB, TB>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>): ITypeUnion<CA | CB, SA | SB, TA | TB>;
1897
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>): ITypeUnion<CA | CB | CC, SA | SB | SC, TA | TB | TC>;
1898
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>): ITypeUnion<CA | CB | CC, SA | SB | SC, TA | TB | TC>;
1899
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>): ITypeUnion<CA | CB | CC | CD, SA | SB | SC | SD, TA | TB | TC | TD>;
1900
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>): ITypeUnion<CA | CB | CC | CD, SA | SB | SC | SD, TA | TB | TC | TD>;
1901
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>): ITypeUnion<CA | CB | CC | CD | CE, SA | SB | SC | SD | SE, TA | TB | TC | TD | TE>;
1902
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>): ITypeUnion<CA | CB | CC | CD | CE, SA | SB | SC | SD | SE, TA | TB | TC | TD | TE>;
1903
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>): ITypeUnion<CA | CB | CC | CD | CE | CF, SA | SB | SC | SD | SE | SF, TA | TB | TC | TD | TE | TF>;
1904
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>): ITypeUnion<CA | CB | CC | CD | CE | CF, SA | SB | SC | SD | SE | SF, TA | TB | TC | TD | TE | TF>;
1905
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG, SA | SB | SC | SD | SE | SF | SG, TA | TB | TC | TD | TE | TF | TG>;
1906
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG, SA | SB | SC | SD | SE | SF | SG, TA | TB | TC | TD | TE | TF | TG>;
1907
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH, SA | SB | SC | SD | SE | SF | SG | SH, TA | TB | TC | TD | TE | TF | TG | TH>;
1908
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH, SA | SB | SC | SD | SE | SF | SG | SH, TA | TB | TC | TD | TE | TF | TG | TH>;
1909
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH, CI, SI, TI>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>, I: IType<CI, SI, TI>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH | CI, SA | SB | SC | SD | SE | SF | SG | SH | SI, TA | TB | TC | TD | TE | TF | TG | TH | TI>;
1910
- declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH, CI, SI, TI>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>, I: IType<CI, SI, TI>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH | CI, SA | SB | SC | SD | SE | SF | SG | SH | SI, TA | TB | TC | TD | TE | TF | TG | TH | TI>;
1892
+ declare function union<Types extends [IAnyType, ...IAnyType[]]>(...types: Types): ITypeUnion<_UnionMembersCreationType<Types>, _UnionMembersSnapshotType<Types>, _UnionMembersTypeWithoutSTN<Types>>;
1893
+ declare function union<Types extends [IAnyType, ...IAnyType[]]>(options: UnionOptions, ...types: Types): ITypeUnion<_UnionMembersCreationType<Types>, _UnionMembersSnapshotType<Types>, _UnionMembersTypeWithoutSTN<Types>>;
1911
1894
  declare function union(...types: IAnyType[]): IAnyType;
1912
1895
  declare function union(dispatchOrType: UnionOptions | IAnyType, ...otherTypes: IAnyType[]): IAnyType;
1913
1896
  /**
@@ -1922,7 +1905,7 @@ declare function union(dispatchOrType: UnionOptions | IAnyType, ...otherTypes: I
1922
1905
  * @param type
1923
1906
  * @returns
1924
1907
  */
1925
- declare function isUnionType<IT extends IAnyType>(type: IT): boolean;
1908
+ declare function isUnionType(type: IAnyType): boolean;
1926
1909
  /**
1927
1910
  * Returns the member types of a union.
1928
1911
  *
@@ -1944,7 +1927,7 @@ type ValidOptionalValues = [ValidOptionalValue, ...ValidOptionalValue[]];
1944
1927
  /** @hidden */
1945
1928
  type OptionalDefaultValueOrFunction<IT extends IAnyType> = IT["CreationType"] | IT["SnapshotType"] | (() => ExtractCSTWithSTN<IT>);
1946
1929
  /** @hidden */
1947
- interface IOptionalIType<IT extends IAnyType, OptionalVals extends ValidOptionalValues> extends IType<IT["CreationType"] | OptionalVals[number], IT["SnapshotType"], IT["TypeWithoutSTN"]> {
1930
+ interface IOptionalIType<IT extends IAnyType = IAnyType, OptionalVals extends ValidOptionalValues = ValidOptionalValues> extends IType<IT["CreationType"] | OptionalVals[number], IT["SnapshotType"], IT["TypeWithoutSTN"]> {
1948
1931
  getDefaultInstanceOrSnapshot(): IT["CreationType"] | IT["SnapshotType"];
1949
1932
  }
1950
1933
  declare function optional<IT extends IAnyType>(type: IT, defaultValueOrFunction: OptionalDefaultValueOrFunction<IT>): IOptionalIType<IT, [undefined]>;
@@ -1958,11 +1941,10 @@ declare function optional<IT extends IAnyType, OptionalVals extends ValidOptiona
1958
1941
  * to compile. Guards with a distinct narrowing target (`isArrayType`,
1959
1942
  * `isMapType`, `isModelType`) keep their predicate.
1960
1943
  *
1961
- * @template IT
1962
1944
  * @param type
1963
1945
  * @returns
1964
1946
  */
1965
- declare function isOptionalType<IT extends IAnyType>(type: IT): boolean;
1947
+ declare function isOptionalType(type: IAnyType): boolean;
1966
1948
  /**
1967
1949
  * `types.stripDefault` - Like `types.optional`, but the property is omitted from
1968
1950
  * a parent model's snapshot entirely when its value equals the default (instead
@@ -2015,7 +1997,7 @@ declare function late<T extends IAnyType>(name: string, type: () => T): T;
2015
1997
  * @param type
2016
1998
  * @returns
2017
1999
  */
2018
- declare function isLateType<IT extends IAnyType>(type: IT): boolean;
2000
+ declare function isLateType(type: IAnyType): boolean;
2019
2001
 
2020
2002
  interface LazyOptions<T extends IType<any, any, any>, U> {
2021
2003
  loadType: () => Promise<T>;
@@ -2038,7 +2020,7 @@ declare function frozen<T = any>(): IType<T, T, T>;
2038
2020
  * @param type
2039
2021
  * @returns
2040
2022
  */
2041
- declare function isFrozenType<IT extends IType<T | any, T, T>, T = any>(type: IT): boolean;
2023
+ declare function isFrozenType(type: IAnyType): boolean;
2042
2024
 
2043
2025
  type OnReferenceInvalidatedEvent<STN extends IAnyStateTreeNode> = {
2044
2026
  parent: IAnyStateTreeNode;
@@ -2079,7 +2061,7 @@ declare function reference<IT extends IAnyComplexType>(subType: IT, options?: Re
2079
2061
  * @param type
2080
2062
  * @returns
2081
2063
  */
2082
- declare function isReferenceType<IT extends IReferenceType<any>>(type: IT): boolean;
2064
+ declare function isReferenceType(type: IAnyType): boolean;
2083
2065
  declare function safeReference<IT extends IAnyComplexType>(subType: IT, options: (ReferenceOptionsGetSet<IT> | object) & {
2084
2066
  acceptsUndefined: false;
2085
2067
  onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>;
@@ -2089,38 +2071,6 @@ declare function safeReference<IT extends IAnyComplexType>(subType: IT, options?
2089
2071
  onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>;
2090
2072
  }): IMaybe<IReferenceType<IT>>;
2091
2073
 
2092
- /**
2093
- * `types.identifier` - Identifiers are used to make references, lifecycle events and reconciling works.
2094
- * Inside a state tree, for each type can exist only one instance for each given identifier.
2095
- * For example there couldn't be 2 instances of user with id 1. If you need more, consider using references.
2096
- * Identifier can be used only as type property of a model.
2097
- * This type accepts as parameter the value type of the identifier field that can be either string or number.
2098
- *
2099
- * Example:
2100
- * ```ts
2101
- * const Todo = types.model("Todo", {
2102
- * id: types.identifier,
2103
- * title: types.string
2104
- * })
2105
- * ```
2106
- *
2107
- * @returns
2108
- */
2109
- declare const identifier: ISimpleType<string>;
2110
- /**
2111
- * `types.identifierNumber` - Similar to `types.identifier`. This one will serialize from / to a number when applying snapshots
2112
- *
2113
- * Example:
2114
- * ```ts
2115
- * const Todo = types.model("Todo", {
2116
- * id: types.identifierNumber,
2117
- * title: types.string
2118
- * })
2119
- * ```
2120
- *
2121
- * @returns
2122
- */
2123
- declare const identifierNumber: ISimpleType<number>;
2124
2074
  /**
2125
2075
  * Returns if a given value represents an identifier type.
2126
2076
  *
@@ -2133,7 +2083,7 @@ declare const identifierNumber: ISimpleType<number>;
2133
2083
  * @param type
2134
2084
  * @returns
2135
2085
  */
2136
- declare function isIdentifierType<IT extends typeof identifier | typeof identifierNumber>(type: IT): boolean;
2086
+ declare function isIdentifierType(type: IAnyType): boolean;
2137
2087
  /**
2138
2088
  * Valid types for identifiers.
2139
2089
  */
@@ -2215,7 +2165,7 @@ interface IResilientType<IT extends IAnyType, FT extends IAnyType> extends IType
2215
2165
  * @param createFallbackSnapshot Callback that produces a fallback snapshot from the error and original snapshot.
2216
2166
  * @returns A resilient type.
2217
2167
  */
2218
- declare function resilient<IT extends IAnyType, FT extends IAnyType>(type: IT, fallbackType: FT, createFallbackSnapshot: (error: unknown, snapshot: any) => FT["CreationType"]): IResilientType<IT, FT>;
2168
+ declare function resilient<IT extends IAnyType, FT extends IAnyType>(type: IT, fallbackType: FT, createFallbackSnapshot: (error: unknown, snapshot: unknown) => FT["CreationType"]): IResilientType<IT, FT>;
2219
2169
 
2220
2170
  declare const types: {
2221
2171
  enumeration: typeof enumeration;
@@ -2251,5 +2201,5 @@ declare const types: {
2251
2201
  resilient: typeof resilient;
2252
2202
  };
2253
2203
 
2254
- export { addDisposer, addMiddleware, applyAction, applyPatch, applySnapshot, cast, castFlowReturn, castToReferenceSnapshot, castToSnapshot, clone, createActionTrackingMiddleware, createActionTrackingMiddleware2, decorate, destroy, detach, escapeJsonPath, extendInstance, flow, getChildType, getEnv, getIdentifier, getLivelinessChecking, getMembers, getNodeId, getParent, getParentOfType, getPath, getPathParts, getPropertyMembers, getRelativePath, getRoot, getRunningActionContext, getSnapshot, getType, getUnionSubtypes, hasParent, hasParentOfType, isActionContextChildOf, isActionContextThisOrChildOf, isAlive, isArrayType, isFrozenType, isIdentifierType, isLateType, isLiteralType, isMapType, isModelType, isOptionalType, isPrimitiveType, isProtected, isReferenceType, isRefinementType, isRoot, isStateTreeNode, isType, isUnionType, isValidReference, joinJsonPath, onAction, onPatch, onSnapshot, protect, recordActions, recordPatches, resolveIdentifier, resolvePath, setDevMode, setLivelinessChecking, setLivelynessChecking, setTypeChecking, splitJsonPath, types as t, toGenerator, toGeneratorFunction, tryReference, tryResolve, typecheck, types, unescapeJsonPath, unprotect, walk };
2255
- export type { $EmptyObjectBrand, CustomTypeOptions, IActionContext, IActionRecorder, IActionTrackingMiddleware2Call, IActionTrackingMiddleware2Hooks, IActionTrackingMiddlewareHooks, IAnyComplexType, IAnyModelType, IAnyStateTreeNode, IAnyType, IArrayType, IComplexType, IDisposer, IJsonPatch, IMSTArray, IMSTMap, IMapType, IMaybe, IMaybeIType, IMaybeNull, IMiddlewareEvent, IMiddlewareEventType, IMiddlewareHandler, IModelReflectionData, IModelReflectionPropertiesData, IModelType, IOptionalIType, IPatchRecorder, IReferenceType, IReversibleJsonPatch, ISerializedActionCall, ISimpleType, ISnapshotProcessor, ISnapshotProcessors, IStateTreeNode, IType, ITypeUnion, Instance, LivelinessMode, LivelynessMode, ModelActions, ModelCreationType, ModelCreationType2, ModelInstanceType, ModelInstanceTypeProps, ModelPrimitive, ModelProperties, ModelPropertiesDeclaration, ModelPropertiesDeclarationToProperties, ModelSnapshotType, ModelSnapshotType2, OnReferenceInvalidated, OnReferenceInvalidatedEvent, OptionalDefaultValueOrFunction, ReferenceIdentifier, ReferenceOptions, ReferenceOptionsGetSet, ReferenceOptionsOnInvalidated, SnapshotIn, SnapshotOrInstance, SnapshotOut, TypeOfValue, TypeOrStateTreeNodeToStateTreeNode, UnionOptions, UnionStringArray, ValidOptionalValue, ValidOptionalValues, _CustomCSProcessor, _CustomJoin, _CustomOrOther, _NotCustomized };
2204
+ export { addDisposer, addMiddleware, applyAction, applyPatch, applySnapshot, cannotDetermineSubtype, cast, castFlowReturn, castToReferenceSnapshot, castToSnapshot, clone, createActionTrackingMiddleware, createActionTrackingMiddleware2, decorate, destroy, detach, escapeJsonPath, extendInstance, flow, getChildType, getEnv, getIdentifier, getLivelinessChecking, getMembers, getNodeId, getParent, getParentOfType, getPath, getPathParts, getPropertyMembers, getRelativePath, getRoot, getRunningActionContext, getSnapshot, getType, getUnionSubtypes, hasParent, hasParentOfType, isActionContextChildOf, isActionContextThisOrChildOf, isAlive, isArrayType, isFrozenType, isIdentifierType, isLateType, isLiteralType, isMapType, isModelType, isOptionalType, isPrimitiveType, isProtected, isReferenceType, isRefinementType, isRoot, isStateTreeNode, isType, isUnionType, isValidReference, joinJsonPath, onAction, onPatch, onSnapshot, protect, recordActions, recordPatches, resolveIdentifier, resolvePath, setDevMode, setLivelinessChecking, setLivelynessChecking, setTypeChecking, splitJsonPath, types as t, toGenerator, toGeneratorFunction, tryReference, tryResolve, typecheck, types, unescapeJsonPath, unprotect, walk };
2205
+ export type { $EmptyObjectBrand, CustomTypeOptions, IActionContext, IActionRecorder, IActionTrackingMiddleware2Call, IActionTrackingMiddleware2Hooks, IActionTrackingMiddlewareHooks, IAnyComplexType, IAnyModelType, IAnyStateTreeNode, IAnyType, IArrayType, IComplexType, IDisposer, IJsonPatch, ILiteralType, IMSTArray, IMSTMap, IMapType, IMaybe, IMaybeIType, IMaybeNull, IMiddlewareEvent, IMiddlewareEventType, IMiddlewareHandler, IModelReflectionData, IModelReflectionPropertiesData, IModelType, IOptionalIType, IPatchRecorder, IReferenceType, IReversibleJsonPatch, ISerializedActionCall, ISimpleType, ISnapshotProcessor, ISnapshotProcessors, IStateTreeNode, IType, ITypeUnion, Instance, LivelinessMode, LivelynessMode, ModelActions, ModelCreationType, ModelCreationType2, ModelInstanceType, ModelInstanceTypeProps, ModelPrimitive, ModelProperties, ModelPropertiesDeclaration, ModelPropertiesDeclarationToProperties, ModelSnapshotType, ModelSnapshotType2, OnReferenceInvalidated, OnReferenceInvalidatedEvent, OptionalDefaultValueOrFunction, ReferenceIdentifier, ReferenceOptions, ReferenceOptionsGetSet, ReferenceOptionsOnInvalidated, SnapshotIn, SnapshotOrInstance, SnapshotOut, TypeOfValue, TypeOrStateTreeNodeToStateTreeNode, UnionOptions, UnionStringArray, ValidOptionalValue, ValidOptionalValues, _CustomCSProcessor, _CustomJoin, _CustomOrOther, _NotCustomized };