atom.io 0.40.1 → 0.40.2

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 (94) hide show
  1. package/dist/data/index.d.ts +1 -1
  2. package/dist/data/index.d.ts.map +1 -1
  3. package/dist/data/index.js.map +1 -1
  4. package/dist/internal/index.d.ts +146 -142
  5. package/dist/internal/index.d.ts.map +1 -1
  6. package/dist/internal/index.js +64 -14
  7. package/dist/internal/index.js.map +1 -1
  8. package/dist/introspection/index.d.ts +4 -4
  9. package/dist/introspection/index.d.ts.map +1 -1
  10. package/dist/introspection/index.js.map +1 -1
  11. package/dist/main/index.d.ts +79 -55
  12. package/dist/main/index.d.ts.map +1 -1
  13. package/dist/main/index.js.map +1 -1
  14. package/dist/react/index.d.ts +11 -11
  15. package/dist/react/index.d.ts.map +1 -1
  16. package/dist/react/index.js.map +1 -1
  17. package/dist/react-devtools/index.js.map +1 -1
  18. package/package.json +1 -1
  19. package/src/data/struct.ts +2 -2
  20. package/src/internal/atom/create-regular-atom.ts +8 -7
  21. package/src/internal/atom/dispose-atom.ts +6 -3
  22. package/src/internal/atom/has-role.ts +1 -1
  23. package/src/internal/caching.ts +15 -15
  24. package/src/internal/events/ingest-creation-disposal.ts +1 -1
  25. package/src/internal/families/create-readonly-pure-selector-family.ts +21 -14
  26. package/src/internal/families/create-regular-atom-family.ts +18 -11
  27. package/src/internal/families/create-selector-family.ts +9 -9
  28. package/src/internal/families/create-writable-pure-selector-family.ts +22 -14
  29. package/src/internal/families/dispose-from-store.ts +10 -7
  30. package/src/internal/families/find-in-store.ts +23 -23
  31. package/src/internal/families/get-family-of-token.ts +17 -17
  32. package/src/internal/families/mint-in-store.ts +10 -10
  33. package/src/internal/families/seek-in-store.ts +26 -26
  34. package/src/internal/get-state/get-fallback.ts +8 -8
  35. package/src/internal/get-state/get-from-store.ts +17 -12
  36. package/src/internal/get-state/read-or-compute-value.ts +78 -14
  37. package/src/internal/get-state/reduce-reference.ts +10 -10
  38. package/src/internal/index.ts +57 -52
  39. package/src/internal/join/join-internal.ts +15 -6
  40. package/src/internal/mutable/create-mutable-atom-family.ts +1 -1
  41. package/src/internal/mutable/get-json-family.ts +3 -2
  42. package/src/internal/mutable/get-update-family.ts +7 -5
  43. package/src/internal/mutable/tracker-family.ts +5 -1
  44. package/src/internal/mutable/tracker.ts +5 -1
  45. package/src/internal/operation.ts +4 -2
  46. package/src/internal/selector/create-readonly-pure-selector.ts +8 -6
  47. package/src/internal/selector/create-standalone-selector.ts +10 -10
  48. package/src/internal/selector/create-writable-pure-selector.ts +9 -7
  49. package/src/internal/selector/dispose-selector.ts +2 -2
  50. package/src/internal/selector/register-selector.ts +2 -2
  51. package/src/internal/selector/trace-selector-atoms.ts +3 -3
  52. package/src/internal/selector/update-selector-atoms.ts +1 -1
  53. package/src/internal/set-state/dispatch-state-update.ts +9 -5
  54. package/src/internal/set-state/evict-downstream.ts +4 -1
  55. package/src/internal/set-state/operate-on-store.ts +16 -10
  56. package/src/internal/set-state/reset-atom-or-selector.ts +7 -7
  57. package/src/internal/set-state/reset-in-store.ts +9 -6
  58. package/src/internal/set-state/set-atom-or-selector.ts +1 -1
  59. package/src/internal/set-state/set-atom.ts +1 -1
  60. package/src/internal/set-state/set-into-store.ts +10 -7
  61. package/src/internal/set-state/set-selector.ts +1 -1
  62. package/src/internal/store/deposit.ts +38 -30
  63. package/src/internal/store/mint-or-counterfeit.ts +23 -23
  64. package/src/internal/store/store.ts +9 -9
  65. package/src/internal/store/withdraw.ts +68 -62
  66. package/src/internal/subscribe/recall-state.ts +4 -1
  67. package/src/internal/subscribe/subscribe-to-root-atoms.ts +2 -2
  68. package/src/internal/subscribe/subscribe-to-state.ts +4 -4
  69. package/src/internal/timeline/create-timeline.ts +5 -5
  70. package/src/introspection/attach-atom-index.ts +2 -2
  71. package/src/introspection/attach-selector-index.ts +4 -2
  72. package/src/introspection/attach-timeline-family.ts +13 -11
  73. package/src/introspection/attach-timeline-index.ts +1 -1
  74. package/src/introspection/attach-transaction-index.ts +1 -1
  75. package/src/introspection/attach-transaction-logs.ts +4 -2
  76. package/src/introspection/attach-type-selectors.ts +2 -1
  77. package/src/introspection/index.ts +3 -5
  78. package/src/main/atom.ts +14 -8
  79. package/src/main/events.ts +25 -23
  80. package/src/main/get-state.ts +10 -8
  81. package/src/main/reset-state.ts +4 -4
  82. package/src/main/selector.ts +40 -24
  83. package/src/main/set-state.ts +8 -4
  84. package/src/main/timeline.ts +5 -3
  85. package/src/main/tokens.ts +72 -44
  86. package/src/main/validators.ts +4 -4
  87. package/src/react/parse-state-overloads.ts +10 -10
  88. package/src/react/use-i.ts +6 -6
  89. package/src/react/use-loadable.ts +15 -15
  90. package/src/react/use-o.ts +9 -9
  91. package/src/react-devtools/StateEditor.tsx +5 -3
  92. package/src/react-devtools/StateIndex.tsx +6 -4
  93. package/src/react-devtools/Updates.tsx +1 -1
  94. package/src/react-devtools/store.ts +16 -7
@@ -5,7 +5,7 @@ import { SetRTX } from "atom.io/transceivers/set-rtx";
5
5
  //#region src/internal/atom/has-role.d.ts
6
6
  declare const INTERNAL_ROLES: readonly ["tracker:signal"];
7
7
  type internalRole = (typeof INTERNAL_ROLES)[number];
8
- declare function hasRole(atom: Atom<any>, role: internalRole): boolean;
8
+ declare function hasRole(atom: Atom<any, any>, role: internalRole): boolean;
9
9
  //#endregion
10
10
  //#region src/internal/store/circular-buffer.d.ts
11
11
  declare class CircularBuffer<T> {
@@ -238,22 +238,22 @@ type TransactionEpoch = {
238
238
  };
239
239
  //#endregion
240
240
  //#region src/internal/store/deposit.d.ts
241
- declare function deposit<T>(state: RegularAtom<T>): RegularAtomToken<T>;
241
+ declare function deposit<T, E>(state: RegularAtom<T, E>): RegularAtomToken<T, Canonical, E>;
242
242
  declare function deposit<T extends Transceiver<any, any, any>>(state: MutableAtom<T>): MutableAtomToken<T>;
243
- declare function deposit<T>(state: Atom<T>): AtomToken<T>;
244
- declare function deposit<T>(state: WritablePureSelector<T>): WritablePureSelectorToken<T>;
245
- declare function deposit<T>(state: ReadonlyPureSelector<T>): ReadonlyPureSelectorToken<T>;
246
- declare function deposit<T>(state: Selector<T>): SelectorToken<T>;
247
- declare function deposit<T>(state: WritableState<T>): WritableToken<T>;
248
- declare function deposit<T>(state: ReadableState<T>): ReadableToken<T>;
249
- declare function deposit<T, K extends Canonical>(state: RegularAtomFamily<T, K>): RegularAtomFamilyToken<T, K>;
243
+ declare function deposit<T, E>(state: Atom<T, E>): AtomToken<T, Canonical, E>;
244
+ declare function deposit<T, E>(state: WritablePureSelector<T, E>): WritablePureSelectorToken<T, any, E>;
245
+ declare function deposit<T, E>(state: ReadonlyPureSelector<T, E>): ReadonlyPureSelectorToken<T, any, E>;
246
+ declare function deposit<T, E>(state: Selector<T, E>): SelectorToken<T, any, E>;
247
+ declare function deposit<T, E>(state: WritableState<T, E>): WritableToken<T, any, E>;
248
+ declare function deposit<T, E>(state: ReadableState<T, E>): ReadableToken<T, any, E>;
249
+ declare function deposit<T, K extends Canonical, E>(state: RegularAtomFamily<T, K, E>): RegularAtomFamilyToken<T, K, E>;
250
250
  declare function deposit<T extends Transceiver<any, any, any>, K extends Canonical>(state: MutableAtomFamily<T, K>): MutableAtomFamilyToken<T, K>;
251
- declare function deposit<T>(state: AtomFamily<T, any>): AtomFamilyToken<T, any>;
252
- declare function deposit<T>(state: WritablePureSelectorFamily<T, any>): WritablePureSelectorFamilyToken<T, any>;
253
- declare function deposit<T>(state: ReadonlyPureSelectorFamily<T, any>): ReadonlyPureSelectorFamilyToken<T, any>;
254
- declare function deposit<T>(state: SelectorFamily<T, any>): SelectorFamilyToken<T, any>;
255
- declare function deposit<T>(state: WritableFamily<T, any>): WritableFamilyToken<T, any>;
256
- declare function deposit<T>(state: ReadableFamily<T, any>): ReadableFamilyToken<T, any>;
251
+ declare function deposit<T, E>(state: AtomFamily<T, any, E>): AtomFamilyToken<T, any, E>;
252
+ declare function deposit<T, E>(state: WritablePureSelectorFamily<T, any, E>): WritablePureSelectorFamilyToken<T, any, E>;
253
+ declare function deposit<T, E>(state: ReadonlyPureSelectorFamily<T, any, E>): ReadonlyPureSelectorFamilyToken<T, any, E>;
254
+ declare function deposit<T, E>(state: SelectorFamily<T, any, E>): SelectorFamilyToken<T, any, E>;
255
+ declare function deposit<T, E>(state: WritableFamily<T, any, E>): WritableFamilyToken<T, any, E>;
256
+ declare function deposit<T, E>(state: ReadableFamily<T, any, E>): ReadableFamilyToken<T, any, E>;
257
257
  declare function deposit<T extends Fn>(state: Transaction<T>): TransactionToken<T>;
258
258
  declare function deposit<M extends TimelineManageable>(state: Timeline<M>): TimelineToken<M>;
259
259
  declare function deposit(resource: AtomIOInternalResource): AtomIOToken;
@@ -270,13 +270,13 @@ declare const FAMILY_MEMBER_TOKEN_TYPES: {
270
270
  readonly writable_pure_selector_family: "writable_pure_selector";
271
271
  };
272
272
  declare function mint<T extends Transceiver<any, any, any>, K extends Canonical, Key extends K>(token: MutableAtomFamilyToken<T, K>, key: Key): MutableAtomToken<T>;
273
- declare function mint<T, K extends Canonical, Key extends K>(token: RegularAtomFamilyToken<T, K>, key: Key, counterfeit?: typeof COUNTERFEIT): RegularAtomToken<T>;
274
- declare function mint<T, K extends Canonical, Key extends K>(token: AtomFamilyToken<T, K>, key: Key, counterfeit?: typeof COUNTERFEIT): AtomToken<T>;
275
- declare function mint<T, K extends Canonical, Key extends K>(token: WritablePureSelectorFamilyToken<T, K>, key: Key, counterfeit?: typeof COUNTERFEIT): WritablePureSelectorToken<T>;
276
- declare function mint<T, K extends Canonical, Key extends K>(token: ReadonlyPureSelectorFamilyToken<T, K>, key: Key, counterfeit?: typeof COUNTERFEIT): ReadonlyPureSelectorToken<T>;
277
- declare function mint<T, K extends Canonical, Key extends K>(token: SelectorFamilyToken<T, K>, key: Key, counterfeit?: typeof COUNTERFEIT): SelectorToken<T>;
278
- declare function mint<T, K extends Canonical, Key extends K>(token: WritableFamilyToken<T, K>, key: Key, counterfeit?: typeof COUNTERFEIT): WritableToken<T>;
279
- declare function mint<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<T, K>, key: Key, counterfeit?: typeof COUNTERFEIT): ReadableToken<T>;
273
+ declare function mint<T, K extends Canonical, Key extends K, E>(token: RegularAtomFamilyToken<T, K, E>, key: Key, counterfeit?: typeof COUNTERFEIT): RegularAtomToken<T, Key, E>;
274
+ declare function mint<T, K extends Canonical, Key extends K, E>(token: AtomFamilyToken<T, K, E>, key: Key, counterfeit?: typeof COUNTERFEIT): AtomToken<T, Key, E>;
275
+ declare function mint<T, K extends Canonical, Key extends K, E>(token: WritablePureSelectorFamilyToken<T, K, E>, key: Key, counterfeit?: typeof COUNTERFEIT): WritablePureSelectorToken<T, Key, E>;
276
+ declare function mint<T, K extends Canonical, Key extends K, E>(token: ReadonlyPureSelectorFamilyToken<T, K, E>, key: Key, counterfeit?: typeof COUNTERFEIT): ReadonlyPureSelectorToken<T, Key, E>;
277
+ declare function mint<T, K extends Canonical, Key extends K, E>(token: SelectorFamilyToken<T, K, E>, key: Key, counterfeit?: typeof COUNTERFEIT): SelectorToken<T, Key, E>;
278
+ declare function mint<T, K extends Canonical, Key extends K, E>(token: WritableFamilyToken<T, K, E>, key: Key, counterfeit?: typeof COUNTERFEIT): WritableToken<T, Key, E>;
279
+ declare function mint<T, K extends Canonical, Key extends K, E>(token: ReadableFamilyToken<T, K, E>, key: Key, counterfeit?: typeof COUNTERFEIT): ReadableToken<T, Key, E>;
280
280
  //#endregion
281
281
  //#region src/internal/join/create-join.d.ts
282
282
  declare function createJoin<ASide extends string, AType extends string, BSide extends string, BType extends string, Cardinality extends `1:1` | `1:n` | `n:n`, Content extends Json.Object>(store: RootStore, options: JoinOptions<ASide, AType, BSide, BType, Cardinality, Content>, defaultContent: Content | undefined): JoinToken<ASide, AType, BSide, BType, Cardinality, Content>;
@@ -337,7 +337,7 @@ declare function claimWithinStore<H extends Hierarchy, V extends Exclude<Vassal<
337
337
  type OperationProgress = OpenOperation<any> | {
338
338
  open: false;
339
339
  };
340
- type OpenOperation<R extends ReadableToken<any> = ReadableToken<any>> = {
340
+ type OpenOperation<R extends ReadableToken<any, any> = ReadableToken<any, any>> = {
341
341
  open: true;
342
342
  token: R;
343
343
  done: Set<string>;
@@ -345,7 +345,7 @@ type OpenOperation<R extends ReadableToken<any> = ReadableToken<any>> = {
345
345
  timestamp: number;
346
346
  subEvents: (AtomUpdateEvent<any> | StateCreationEvent<any>)[];
347
347
  };
348
- declare function openOperation(store: Store, token: ReadableToken<any>): number | (Store & {
348
+ declare function openOperation(store: Store, token: ReadableToken<any, any, any>): number | (Store & {
349
349
  operation: OpenOperation;
350
350
  });
351
351
  declare function closeOperation(store: Store): void;
@@ -376,16 +376,16 @@ declare class Store implements Lineage {
376
376
  child: ChildStore | null;
377
377
  valueMap: Map<string, any>;
378
378
  defaults: Map<string, any>;
379
- atoms: Map<string, Atom<any>>;
380
- writableSelectors: Map<string, WritableSelector<any>>;
381
- readonlySelectors: Map<string, ReadonlySelector<any>>;
379
+ atoms: Map<string, Atom<any, any>>;
380
+ writableSelectors: Map<string, WritableSelector<any, any>>;
381
+ readonlySelectors: Map<string, ReadonlySelector<any, any>>;
382
382
  atomsThatAreDefault: Set<string>;
383
383
  selectorAtoms: Junction<`selectorKey`, string, `atomKey`, string>;
384
384
  selectorGraph: Junction<`upstreamSelectorKey`, string, `downstreamSelectorKey`, string, {
385
385
  source: string;
386
386
  }>;
387
387
  trackers: Map<string, Tracker<Transceiver<any, any, any>>>;
388
- families: Map<string, HeldSelectorFamily<any, any> | MutableAtomFamily<any, any> | PureSelectorFamily<any, any> | RegularAtomFamily<any, any>>;
388
+ families: Map<string, HeldSelectorFamily<any, any> | MutableAtomFamily<any, any> | PureSelectorFamily<any, any, any> | RegularAtomFamily<any, any, any>>;
389
389
  joins: Map<string, Join<any, any, any, any, any, any>>;
390
390
  transactions: Map<string, Transaction<Fn>>;
391
391
  transactionMeta: TransactionEpoch | TransactionProgress<Fn>;
@@ -415,10 +415,10 @@ declare class Store implements Lineage {
415
415
  constructor(config: Store[`config`], store?: Store | null);
416
416
  }
417
417
  type StoreEventCarrier = {
418
- atomCreation: Subject<AtomToken<unknown>>;
419
- atomDisposal: Subject<AtomToken<unknown>>;
420
- selectorCreation: Subject<SelectorToken<unknown>>;
421
- selectorDisposal: Subject<SelectorToken<unknown>>;
418
+ atomCreation: Subject<AtomToken<unknown, any, any>>;
419
+ atomDisposal: Subject<AtomToken<unknown, any, any>>;
420
+ selectorCreation: Subject<SelectorToken<unknown, any, any>>;
421
+ selectorDisposal: Subject<SelectorToken<unknown, any, any>>;
422
422
  timelineCreation: Subject<TimelineToken<unknown>>;
423
423
  transactionCreation: Subject<TransactionToken<Fn>>;
424
424
  transactionApplying: StatefulSubject<TransactionProgress<Fn> | null>;
@@ -435,38 +435,38 @@ declare const IMPLICIT: {
435
435
  declare const clearStore: (store: Store) => void;
436
436
  //#endregion
437
437
  //#region src/internal/store/withdraw.d.ts
438
- declare function withdraw<T>(store: Store, token: RegularAtomToken<T>): RegularAtom<T>;
438
+ declare function withdraw<T, E>(store: Store, token: RegularAtomToken<T, any, E>): RegularAtom<T, E>;
439
439
  declare function withdraw<T extends Transceiver<any, any, any>>(store: Store, token: MutableAtomToken<T, any>): MutableAtom<T>;
440
- declare function withdraw<T>(store: Store, token: AtomToken<T>): Atom<T>;
440
+ declare function withdraw<T, E>(store: Store, token: AtomToken<T, any, E>): Atom<T, E>;
441
441
  declare function withdraw<T>(store: Store, token: WritableHeldSelectorToken<T>): WritableHeldSelector<T>;
442
442
  declare function withdraw<T>(store: Store, token: ReadonlyHeldSelectorToken<T>): ReadonlyHeldSelector<T>;
443
- declare function withdraw<T>(store: Store, token: WritablePureSelectorToken<T>): WritablePureSelector<T>;
444
- declare function withdraw<T>(store: Store, token: ReadonlyPureSelectorToken<T>): ReadonlyPureSelector<T>;
445
- declare function withdraw<T>(store: Store, token: ReadonlySelectorToken<T>): ReadonlySelector<T>;
446
- declare function withdraw<T>(store: Store, token: WritableSelectorToken<T>): WritableSelector<T>;
443
+ declare function withdraw<T, E>(store: Store, token: WritablePureSelectorToken<T, any, E>): WritablePureSelector<T, E>;
444
+ declare function withdraw<T, E>(store: Store, token: ReadonlyPureSelectorToken<T, any, E>): ReadonlyPureSelector<T, E>;
445
+ declare function withdraw<T, E>(store: Store, token: ReadonlySelectorToken<T, any, E>): ReadonlySelector<T, E>;
446
+ declare function withdraw<T, E>(store: Store, token: WritableSelectorToken<T, any, E>): WritableSelector<T, E>;
447
447
  declare function withdraw<T>(store: Store, token: HeldSelectorToken<T>): HeldSelector<T>;
448
- declare function withdraw<T>(store: Store, token: PureSelectorToken<T>): PureSelector<T>;
449
- declare function withdraw<T>(store: Store, token: SelectorToken<T>): Selector<T>;
450
- declare function withdraw<T>(store: Store, token: WritableToken<T>): WritableState<T>;
451
- declare function withdraw<T>(store: Store, token: ReadableToken<T>): ReadableState<T>;
452
- declare function withdraw<T, K extends Canonical>(store: Store, token: RegularAtomFamilyToken<T, K>): RegularAtomFamily<T, K>;
448
+ declare function withdraw<T, E>(store: Store, token: PureSelectorToken<T, any, E>): PureSelector<T, E>;
449
+ declare function withdraw<T, E>(store: Store, token: SelectorToken<T, any, E>): Selector<T, E>;
450
+ declare function withdraw<T, E>(store: Store, token: WritableToken<T, any, E>): WritableState<T, E>;
451
+ declare function withdraw<T, E>(store: Store, token: ReadableToken<T, any, E>): ReadableState<T, E>;
452
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: RegularAtomFamilyToken<T, K, E>): RegularAtomFamily<T, K, E>;
453
453
  declare function withdraw<T extends Transceiver<any, any, any>, K extends Canonical>(store: Store, token: MutableAtomFamilyToken<T, K>): MutableAtomFamily<T, K>;
454
- declare function withdraw<T, K extends Canonical>(store: Store, token: AtomFamilyToken<T, K>): AtomFamily<T, K>;
454
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: AtomFamilyToken<T, K, E>): AtomFamily<T, K, E>;
455
455
  declare function withdraw<T, K extends Canonical>(store: Store, token: ReadonlyHeldSelectorFamilyToken<T, K>): ReadonlyHeldSelectorFamily<T, K>;
456
456
  declare function withdraw<T, K extends Canonical>(store: Store, token: WritableHeldSelectorFamilyToken<T, K>): WritableHeldSelectorFamily<T, K>;
457
- declare function withdraw<T, K extends Canonical>(store: Store, token: ReadonlyPureSelectorFamilyToken<T, K>): ReadonlyPureSelectorFamily<T, K>;
458
- declare function withdraw<T, K extends Canonical>(store: Store, token: WritablePureSelectorFamilyToken<T, K>): WritablePureSelectorFamily<T, K>;
459
- declare function withdraw<T, K extends Canonical>(store: Store, token: ReadonlySelectorFamilyToken<T, K>): ReadonlySelectorFamily<T, K>;
460
- declare function withdraw<T, K extends Canonical>(store: Store, token: WritableSelectorFamilyToken<T, K>): WritableSelectorFamily<T, K>;
457
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: ReadonlyPureSelectorFamilyToken<T, K, E>): ReadonlyPureSelectorFamily<T, K, E>;
458
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: WritablePureSelectorFamilyToken<T, K, E>): WritablePureSelectorFamily<T, K, E>;
459
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: ReadonlySelectorFamilyToken<T, K, E>): ReadonlySelectorFamily<T, K, E>;
460
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: WritableSelectorFamilyToken<T, K, E>): WritableSelectorFamily<T, K, E>;
461
461
  declare function withdraw<T, K extends Canonical>(store: Store, token: HeldSelectorFamilyToken<T, K>): HeldSelectorFamily<T, K>;
462
- declare function withdraw<T, K extends Canonical>(store: Store, token: PureSelectorFamilyToken<T, K>): PureSelectorFamily<T, K>;
463
- declare function withdraw<T, K extends Canonical>(store: Store, token: SelectorFamilyToken<T, K>): SelectorFamily<T, K>;
464
- declare function withdraw<T, K extends Canonical>(store: Store, token: WritableFamilyToken<T, K>): WritableFamily<T, K>;
465
- declare function withdraw<T, K extends Canonical>(store: Store, token: ReadableFamilyToken<T, K>): ReadableFamily<T, K>;
462
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: PureSelectorFamilyToken<T, K, E>): PureSelectorFamily<T, K, E>;
463
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: SelectorFamilyToken<T, K, E>): SelectorFamily<T, K, E>;
464
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: WritableFamilyToken<T, K, E>): WritableFamily<T, K, E>;
465
+ declare function withdraw<T, K extends Canonical, E>(store: Store, token: ReadableFamilyToken<T, K, E>): ReadableFamily<T, K, E>;
466
466
  declare function withdraw<T extends Fn>(store: Store, token: TransactionToken<T>): Transaction<T extends Fn ? T : never>;
467
467
  declare function withdraw<T>(store: Store, token: TimelineToken<T>): Timeline<T extends TimelineManageable ? T : never>;
468
- declare function withdraw<T>(store: Store, token: WritableToken<T>): WritableState<T>;
469
- declare function withdraw<T>(store: Store, token: ReadableToken<T>): ReadableState<T>;
468
+ declare function withdraw<T, E>(store: Store, token: WritableToken<T, any, E>): WritableState<T, E>;
469
+ declare function withdraw<T, E>(store: Store, token: ReadableToken<T, any, E>): ReadableState<T, E>;
470
470
  declare function withdraw(store: Store, token: AtomIOToken): AtomIOInternalResource;
471
471
  //#endregion
472
472
  //#region src/internal/mutable/transceiver.d.ts
@@ -495,13 +495,13 @@ declare function createMutableAtom<T extends Transceiver<any, any, any>>(store:
495
495
  declare function createMutableAtomFamily<T extends Transceiver<any, any, any>, K extends Canonical>(store: RootStore, options: MutableAtomFamilyOptions<T, K>, internalRoles?: string[]): MutableAtomFamilyToken<T, K>;
496
496
  //#endregion
497
497
  //#region src/internal/mutable/get-json-family.d.ts
498
- declare const getJsonFamily: <Core extends Transceiver<any, Json.Serializable, Json.Serializable>, Key extends Canonical>(mutableAtomFamily: MutableAtomFamilyToken<Core, Key>, store: Store) => WritablePureSelectorFamily<ReturnType<Core[`toJSON`]>, Key>;
498
+ declare const getJsonFamily: <Core extends Transceiver<any, Json.Serializable, Json.Serializable>, Key extends Canonical>(mutableAtomFamily: MutableAtomFamilyToken<Core, Key>, store: Store) => WritablePureSelectorFamily<ReturnType<Core[`toJSON`]>, Key, never>;
499
499
  //#endregion
500
500
  //#region src/internal/mutable/get-json-token.d.ts
501
501
  declare const getJsonToken: <T extends Transceiver<any, any, any>>(store: Store, mutableAtomToken: MutableAtomToken<T>) => WritablePureSelectorToken<AsJSON<T>>;
502
502
  //#endregion
503
503
  //#region src/internal/mutable/get-update-family.d.ts
504
- declare const getUpdateFamily: <T extends Transceiver<any, Json.Serializable, Json.Serializable>, K extends string>(mutableAtomFamily: MutableAtomFamilyToken<T, K>, store: Store) => AtomFamily<SignalFrom<T>, K>;
504
+ declare const getUpdateFamily: <T extends Transceiver<any, Json.Serializable, Json.Serializable>, K extends string>(mutableAtomFamily: MutableAtomFamilyToken<T, K>, store: Store) => RegularAtomFamily<SignalFrom<T>, K, never>;
505
505
  //#endregion
506
506
  //#region src/internal/mutable/get-update-token.d.ts
507
507
  declare const getUpdateToken: <T extends Transceiver<any, any, any>>(mutableAtomToken: MutableAtomToken<T>) => RegularAtomToken<SignalFrom<T>>;
@@ -536,10 +536,10 @@ declare class FamilyTracker<T extends Transceiver<any, any, any>, K extends Cano
536
536
  declare function arbitrary(random?: () => number): string;
537
537
  //#endregion
538
538
  //#region src/internal/atom/create-regular-atom.d.ts
539
- declare function createRegularAtom<T>(store: Store, options: RegularAtomOptions<T>, family: FamilyMetadata | undefined, internalRoles?: internalRole[]): RegularAtomToken<T>;
539
+ declare function createRegularAtom<T, K extends Canonical, E>(store: Store, options: RegularAtomOptions<T, E>, family: FamilyMetadata<K> | undefined, internalRoles?: internalRole[]): RegularAtomToken<T, K, E>;
540
540
  //#endregion
541
541
  //#region src/internal/atom/dispose-atom.d.ts
542
- declare function disposeAtom(store: Store, atomToken: AtomToken<any>): void;
542
+ declare function disposeAtom(store: Store, atomToken: AtomToken<any, any, any>): void;
543
543
  //#endregion
544
544
  //#region src/internal/future.d.ts
545
545
  /**
@@ -563,15 +563,15 @@ declare class Future<T> extends Promise<T> {
563
563
  }
564
564
  //#endregion
565
565
  //#region src/internal/caching.d.ts
566
- declare function writeToCache<T>(target: Store, state: ReadableState<T>, value: T): T;
567
- declare function writeToCache<T extends Promise<any>>(target: Store, state: ReadableState<T>, value: T): Future<Awaited<T>>;
566
+ declare function writeToCache<T, E>(target: Store, state: ReadableState<T, E>, value: E | T): E | T;
567
+ declare function writeToCache<T extends Promise<any>, E>(target: Store, state: ReadableState<T, E>, value: T): Future<Awaited<E | T>>;
568
568
  /**
569
569
  * @param target - the newest layer of the store
570
570
  * @param state - the state to read from cache
571
571
  * @param mut - whether the value is intended to be mutable
572
572
  * @returns the state's current value
573
573
  */
574
- declare function readFromCache<T>(target: Store, state: ReadableState<T>, mut: `mut` | undefined): T;
574
+ declare function readFromCache<T, E>(target: Store, state: ReadableState<T, E>, mut: `mut` | undefined): E | T;
575
575
  declare function evictCachedValue(target: Store, key: string): void;
576
576
  //#endregion
577
577
  //#region src/internal/capitalize.d.ts
@@ -582,7 +582,7 @@ declare function ingestAtomUpdateEvent(store: Store, event: AtomUpdateEvent<any>
582
582
  //#endregion
583
583
  //#region src/internal/events/ingest-creation-disposal.d.ts
584
584
  declare function ingestCreationEvent(store: Store, event: StateCreationEvent<any>, applying: `newValue` | `oldValue`): void;
585
- declare function ingestDisposalEvent(store: Store, event: StateDisposalEvent<ReadableToken<any>>, applying: `newValue` | `oldValue`): void;
585
+ declare function ingestDisposalEvent(store: Store, event: StateDisposalEvent<ReadableToken<any, any, any>>, applying: `newValue` | `oldValue`): void;
586
586
  declare function ingestMoleculeCreationEvent(store: Store, event: MoleculeCreationEvent, applying: `newValue` | `oldValue`): void;
587
587
  declare function ingestMoleculeDisposalEvent(store: Store, event: MoleculeDisposalEvent, applying: `newValue` | `oldValue`): void;
588
588
  declare function ingestMoleculeTransferEvent(store: Store, event: MoleculeTransferEvent, applying: `newValue` | `oldValue`): void;
@@ -594,44 +594,44 @@ declare function ingestSelectorUpdateEvent(store: Store, selectorUpdate: Timelin
594
594
  declare function ingestTransactionOutcomeEvent(store: Store, event: TransactionOutcomeEvent<any>, applying: `newValue` | `oldValue`): void;
595
595
  //#endregion
596
596
  //#region src/internal/families/create-readonly-pure-selector-family.d.ts
597
- declare function createReadonlyPureSelectorFamily<T, K extends Canonical>(store: RootStore, options: ReadonlyPureSelectorFamilyOptions<T, K>, internalRoles?: string[]): ReadonlyPureSelectorFamilyToken<T, K>;
597
+ declare function createReadonlyPureSelectorFamily<T, K extends Canonical, E>(store: RootStore, options: ReadonlyPureSelectorFamilyOptions<T, K, E>, internalRoles?: string[]): ReadonlyPureSelectorFamilyToken<T, K, E>;
598
598
  //#endregion
599
599
  //#region src/internal/families/create-regular-atom-family.d.ts
600
- declare function createRegularAtomFamily<T, K extends Canonical>(store: RootStore, options: RegularAtomFamilyOptions<T, K>, internalRoles?: string[]): RegularAtomFamilyToken<T, K>;
600
+ declare function createRegularAtomFamily<T, K extends Canonical, E>(store: RootStore, options: RegularAtomFamilyOptions<T, K, E>, internalRoles?: string[]): RegularAtomFamilyToken<T, K, E>;
601
601
  //#endregion
602
602
  //#region src/internal/families/create-selector-family.d.ts
603
603
  declare function createSelectorFamily<T extends object, K extends Canonical>(store: RootStore, options: WritableHeldSelectorFamilyOptions<T, K>): WritableHeldSelectorFamilyToken<T, K>;
604
604
  declare function createSelectorFamily<T extends object, K extends Canonical>(store: RootStore, options: ReadonlyHeldSelectorFamilyOptions<T, K>): ReadonlyHeldSelectorFamilyToken<T, K>;
605
- declare function createSelectorFamily<T, K extends Canonical>(store: RootStore, options: WritablePureSelectorFamilyOptions<T, K>): WritablePureSelectorFamilyToken<T, K>;
606
- declare function createSelectorFamily<T, K extends Canonical>(store: RootStore, options: ReadonlyPureSelectorFamilyOptions<T, K>): ReadonlyPureSelectorFamilyToken<T, K>;
605
+ declare function createSelectorFamily<T, K extends Canonical, E>(store: RootStore, options: WritablePureSelectorFamilyOptions<T, K, E>): WritablePureSelectorFamilyToken<T, K, E>;
606
+ declare function createSelectorFamily<T, K extends Canonical, E>(store: RootStore, options: ReadonlyPureSelectorFamilyOptions<T, K, E>): ReadonlyPureSelectorFamilyToken<T, K, E>;
607
607
  //#endregion
608
608
  //#region src/internal/families/create-writable-pure-selector-family.d.ts
609
- declare function createWritablePureSelectorFamily<T, K extends Canonical>(store: Store, options: WritablePureSelectorFamilyOptions<T, K>, internalRoles?: string[]): WritablePureSelectorFamilyToken<T, K>;
609
+ declare function createWritablePureSelectorFamily<T, K extends Canonical, E>(store: Store, options: WritablePureSelectorFamilyOptions<T, K, E>, internalRoles?: string[]): WritablePureSelectorFamilyToken<T, K, E>;
610
610
  //#endregion
611
611
  //#region src/internal/families/dispose-from-store.d.ts
612
- declare function disposeFromStore(store: Store, token: ReadableToken<any>): void;
613
- declare function disposeFromStore<K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<any, K>, key: Key): void;
614
- declare function disposeFromStore<K extends Canonical, Key extends K>(store: Store, ...params: [token: ReadableFamilyToken<any, K>, key: Key] | [token: ReadableToken<any>]): void;
612
+ declare function disposeFromStore(store: Store, token: ReadableToken<any, any, any>): void;
613
+ declare function disposeFromStore<K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<any, K, any>, key: Key): void;
614
+ declare function disposeFromStore<K extends Canonical, Key extends K>(store: Store, ...params: [token: ReadableFamilyToken<any, K, any>, key: Key] | [token: ReadableToken<any, any, any>]): void;
615
615
  //#endregion
616
616
  //#region src/internal/families/find-in-store.d.ts
617
617
  declare function findInStore<T extends Transceiver<any, any, any>, K extends Canonical, Key extends K>(store: Store, familyToken: MutableAtomFamilyToken<T, K>, key: Key): MutableAtomToken<T, K>;
618
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K>;
619
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K>;
620
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: WritablePureSelectorFamilyToken<T, K>, key: Key): WritablePureSelectorToken<T, K>;
621
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: ReadonlyPureSelectorFamilyToken<T, K>, key: Key): ReadonlyPureSelectorToken<T, K>;
622
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K>;
623
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K>;
624
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K>;
618
+ declare function findInStore<T, K extends Canonical, Key extends K, E>(store: Store, familyToken: RegularAtomFamilyToken<T, K, E>, key: Key): RegularAtomToken<T, K, E>;
619
+ declare function findInStore<T, K extends Canonical, Key extends K, E>(store: Store, familyToken: AtomFamilyToken<T, K, E>, key: Key): AtomToken<T, K, E>;
620
+ declare function findInStore<T, K extends Canonical, Key extends K, E>(store: Store, familyToken: WritablePureSelectorFamilyToken<T, K, E>, key: Key): WritablePureSelectorToken<T, K, E>;
621
+ declare function findInStore<T, K extends Canonical, Key extends K, E>(store: Store, familyToken: ReadonlyPureSelectorFamilyToken<T, K, E>, key: Key): ReadonlyPureSelectorToken<T, K, E>;
622
+ declare function findInStore<T, K extends Canonical, Key extends K, E>(store: Store, familyToken: SelectorFamilyToken<T, K, E>, key: Key): SelectorToken<T, K, E>;
623
+ declare function findInStore<T, K extends Canonical, Key extends K, E>(store: Store, familyToken: WritableFamilyToken<T, K, E>, key: Key): WritableToken<T, K, E>;
624
+ declare function findInStore<T, K extends Canonical, Key extends K, E>(store: Store, familyToken: ReadableFamilyToken<T, K, E>, key: Key): ReadableToken<T, K, E>;
625
625
  //#endregion
626
626
  //#region src/internal/families/seek-in-store.d.ts
627
- declare function seekInStore<T extends Transceiver<any, any, any>, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, K>, key: Key): MutableAtomToken<T, K> | undefined;
628
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K> | undefined;
629
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K> | undefined;
630
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritablePureSelectorFamilyToken<T, K>, key: Key): WritablePureSelectorToken<T, K> | undefined;
631
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlyPureSelectorFamilyToken<T, K>, key: Key): ReadonlyPureSelectorToken<T, K> | undefined;
632
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K> | undefined;
633
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K> | undefined;
634
- declare function seekInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K> | undefined;
627
+ declare function seekInStore<T extends Transceiver<any, any, any>, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, K>, key: Key): MutableAtomToken<T, Key> | undefined;
628
+ declare function seekInStore<T, K extends Canonical, Key extends K, E>(store: Store, token: RegularAtomFamilyToken<T, K, E>, key: Key): RegularAtomToken<T, Key, E> | undefined;
629
+ declare function seekInStore<T, K extends Canonical, Key extends K, E>(store: Store, token: AtomFamilyToken<T, K, E>, key: Key): AtomToken<T, Key, E> | undefined;
630
+ declare function seekInStore<T, K extends Canonical, Key extends K, E>(store: Store, token: WritablePureSelectorFamilyToken<T, K, E>, key: Key): WritablePureSelectorToken<T, Key, E> | undefined;
631
+ declare function seekInStore<T, K extends Canonical, Key extends K, E>(store: Store, token: ReadonlyPureSelectorFamilyToken<T, K, E>, key: Key): ReadonlyPureSelectorToken<T, Key, E> | undefined;
632
+ declare function seekInStore<T, K extends Canonical, Key extends K, E>(store: Store, token: SelectorFamilyToken<T, K, E>, key: Key): SelectorToken<T, Key, E> | undefined;
633
+ declare function seekInStore<T, K extends Canonical, Key extends K, E>(store: Store, token: WritableFamilyToken<T, K, E>, key: Key): WritableToken<T, Key, E> | undefined;
634
+ declare function seekInStore<T, K extends Canonical, Key extends K, E>(store: Store, token: ReadableFamilyToken<T, K, E>, key: Key): ReadableToken<T, Key, E> | undefined;
635
635
  //#endregion
636
636
  //#region src/internal/get-environment-data.d.ts
637
637
  type EnvironmentData = {
@@ -641,12 +641,13 @@ declare function getEnvironmentData(store: Store): EnvironmentData;
641
641
  //#endregion
642
642
  //#region src/internal/get-state/get-from-store.d.ts
643
643
  declare function getFromStore<T>(store: Store, token: ReadableToken<T>): T;
644
- declare function getFromStore<T, K extends Canonical>(store: Store, token: ReadableFamilyToken<T, K>, key: K): T;
645
- declare function getFromStore<T, K extends Canonical, Key extends K>(store: Store, ...params: [token: ReadableFamilyToken<T, K>, key: Key] | [token: ReadableToken<T>]): T;
644
+ declare function getFromStore<T, E>(store: Store, token: ReadableToken<T, any, E>): E | T;
645
+ declare function getFromStore<T, K extends Canonical, E>(store: Store, token: ReadableFamilyToken<T, K, E>, key: K): ViewOf<E | T>;
646
+ declare function getFromStore<T, K extends Canonical, Key extends K, E>(store: Store, ...params: [token: ReadableFamilyToken<T, K, E>, key: Key] | [token: ReadableToken<T, any, E>]): ViewOf<E | T>;
646
647
  //#endregion
647
648
  //#region src/internal/get-state/read-or-compute-value.d.ts
648
- declare function readOrComputeValue<T>(target: Store, state: ReadableState<T>, mut?: undefined): ViewOf<T>;
649
- declare function readOrComputeValue<T>(target: Store, state: ReadableState<T>, mut: `mut`): T;
649
+ declare function readOrComputeValue<T, E>(target: Store, state: ReadableState<T, E>, mut?: undefined): ViewOf<E | T>;
650
+ declare function readOrComputeValue<T, E>(target: Store, state: ReadableState<T, E>, mut: `mut`): E | T;
650
651
  //#endregion
651
652
  //#region src/internal/get-trace.d.ts
652
653
  declare function getTrace(error: Error): string;
@@ -694,22 +695,22 @@ declare function isReservedIntrospectionKey(value: string): value is ReservedInt
694
695
  declare function createReadonlyHeldSelector<T extends object>(store: Store, options: ReadonlyHeldSelectorOptions<T>, family: FamilyMetadata | undefined): ReadonlyHeldSelectorToken<T>;
695
696
  //#endregion
696
697
  //#region src/internal/selector/create-readonly-pure-selector.d.ts
697
- declare function createReadonlyPureSelector<T>(store: Store, options: ReadonlyPureSelectorOptions<T>, family: FamilyMetadata | undefined): ReadonlyPureSelectorToken<T>;
698
+ declare function createReadonlyPureSelector<T, K extends Canonical, E>(store: Store, options: ReadonlyPureSelectorOptions<T, E>, family: FamilyMetadata<K> | undefined): ReadonlyPureSelectorToken<T, K, E>;
698
699
  //#endregion
699
700
  //#region src/internal/selector/create-standalone-selector.d.ts
700
701
  declare function createStandaloneSelector<T extends object>(store: Store, options: WritableHeldSelectorOptions<T>): WritableHeldSelectorToken<T>;
701
702
  declare function createStandaloneSelector<T extends object>(store: Store, options: ReadonlyHeldSelectorOptions<T>): ReadonlyHeldSelectorToken<T>;
702
- declare function createStandaloneSelector<T>(store: Store, options: WritablePureSelectorOptions<T>): WritablePureSelectorToken<T>;
703
- declare function createStandaloneSelector<T>(store: Store, options: ReadonlyPureSelectorOptions<T>): ReadonlyPureSelectorToken<T>;
703
+ declare function createStandaloneSelector<T, E>(store: Store, options: WritablePureSelectorOptions<T, E>): WritablePureSelectorToken<T, any, E>;
704
+ declare function createStandaloneSelector<T, E>(store: Store, options: ReadonlyPureSelectorOptions<T, E>): ReadonlyPureSelectorToken<T, any, E>;
704
705
  //#endregion
705
706
  //#region src/internal/selector/create-writable-held-selector.d.ts
706
707
  declare function createWritableHeldSelector<T extends object>(store: Store, options: WritableHeldSelectorOptions<T>, family: FamilyMetadata | undefined): WritableHeldSelectorToken<T>;
707
708
  //#endregion
708
709
  //#region src/internal/selector/create-writable-pure-selector.d.ts
709
- declare function createWritablePureSelector<T>(store: Store, options: WritablePureSelectorOptions<T>, family: FamilyMetadata | undefined): WritablePureSelectorToken<T>;
710
+ declare function createWritablePureSelector<T, K extends Canonical, E>(store: Store, options: WritablePureSelectorOptions<T, E>, family: FamilyMetadata<K> | undefined): WritablePureSelectorToken<T, K, E>;
710
711
  //#endregion
711
712
  //#region src/internal/selector/dispose-selector.d.ts
712
- declare function disposeSelector(store: Store, selectorToken: SelectorToken<unknown>): void;
713
+ declare function disposeSelector(store: Store, selectorToken: SelectorToken<unknown, any, any>): void;
713
714
  //#endregion
714
715
  //#region src/internal/selector/get-selector-dependency-keys.d.ts
715
716
  declare function getSelectorDependencyKeys(store: Store, key: string): (AtomKey<unknown> | ReadonlySelectorKey<unknown> | SelectorKey<unknown>)[];
@@ -718,23 +719,23 @@ declare function getSelectorDependencyKeys(store: Store, key: string): (AtomKey<
718
719
  declare function registerSelector(store: Store, selectorType: `readonly_held_selector` | `readonly_pure_selector` | `writable_held_selector` | `writable_pure_selector`, selectorKey: string, covered: Set<string>): WriterToolkit;
719
720
  //#endregion
720
721
  //#region src/internal/selector/trace-selector-atoms.d.ts
721
- declare function traceRootSelectorAtoms(store: Store, selectorKey: string, covered?: Set<string>): Map<string, Atom<unknown>>;
722
+ declare function traceRootSelectorAtoms(store: Store, selectorKey: string, covered?: Set<string>): Map<string, Atom<any, any>>;
722
723
  //#endregion
723
724
  //#region src/internal/selector/update-selector-atoms.d.ts
724
- declare function updateSelectorAtoms(store: Store, selectorType: `readonly_held_selector` | `readonly_pure_selector` | `writable_held_selector` | `writable_pure_selector`, selectorKey: string, dependency: ReadableToken<unknown>, covered: Set<string>): void;
725
+ declare function updateSelectorAtoms(store: Store, selectorType: `readonly_held_selector` | `readonly_pure_selector` | `writable_held_selector` | `writable_pure_selector`, selectorKey: string, dependency: ReadableToken<unknown, any, unknown>, covered: Set<string>): void;
725
726
  //#endregion
726
727
  //#region src/internal/set-state/become.d.ts
727
728
  declare function become<T>(nextVersionOfThing: T | ((prev: T) => T), originalThing: T): T;
728
729
  //#endregion
729
730
  //#region src/internal/set-state/evict-downstream.d.ts
730
- declare function evictDownstreamFromAtom(store: Store, atom: Atom<any>): void;
731
+ declare function evictDownstreamFromAtom(store: Store, atom: Atom<any, any>): void;
731
732
  declare function evictDownstreamFromSelector(store: Store, selectorKey: string): void;
732
733
  //#endregion
733
734
  //#region src/internal/set-state/reset-in-store.d.ts
734
735
  declare const RESET_STATE: unique symbol;
735
- declare function resetInStore(store: Store, token: WritableToken<any>): void;
736
- declare function resetInStore<K extends Canonical>(store: Store, token: WritableFamilyToken<any, K>, key: K): void;
737
- declare function resetInStore<T, K extends Canonical, Key extends K>(store: Store, ...params: [token: WritableFamilyToken<T, K>, key: Key] | [token: WritableToken<T>]): void;
736
+ declare function resetInStore(store: Store, token: WritableToken<any, any, any>): void;
737
+ declare function resetInStore<K extends Canonical>(store: Store, token: WritableFamilyToken<any, K, any>, key: K): void;
738
+ declare function resetInStore<T, K extends Canonical, Key extends K>(store: Store, ...params: [token: WritableFamilyToken<T, K, any>, key: Key] | [token: WritableToken<T, any, any>]): void;
738
739
  //#endregion
739
740
  //#region src/internal/set-state/operate-on-store.d.ts
740
741
  type ProtoUpdate<T> = {
@@ -743,22 +744,22 @@ type ProtoUpdate<T> = {
743
744
  };
744
745
  //#endregion
745
746
  //#region src/internal/set-state/reset-atom-or-selector.d.ts
746
- declare function resetAtomOrSelector<T>(target: Store & {
747
+ declare function resetAtomOrSelector<T, E>(target: Store & {
747
748
  operation: OpenOperation;
748
- }, state: WritableState<T>): ProtoUpdate<T>;
749
+ }, state: WritableState<T, E>): ProtoUpdate<E | T>;
749
750
  //#endregion
750
751
  //#region src/internal/set-state/set-atom-or-selector.d.ts
751
752
  declare const setAtomOrSelector: <T>(target: Store & {
752
753
  operation: OpenOperation;
753
- }, state: WritableState<T>, value: T | ((oldValue: T) => T)) => ProtoUpdate<T>;
754
+ }, state: WritableState<T, any>, value: T | ((oldValue: T) => T)) => ProtoUpdate<T>;
754
755
  //#endregion
755
756
  //#region src/internal/set-state/set-into-store.d.ts
756
- declare function setIntoStore<T, New extends T>(store: Store, token: WritableToken<T>, value: New | typeof RESET_STATE | ((oldValue: T) => New)): void;
757
- declare function setIntoStore<T, K extends Canonical, New extends T, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key, value: New | typeof RESET_STATE | ((oldValue: T) => New)): void;
758
- declare function setIntoStore<T, K extends Canonical, New extends T, Key extends K>(store: Store, ...params: [token: WritableFamilyToken<T, K>, key: Key, value: New | typeof RESET_STATE | ((oldValue: T) => New)] | [token: WritableToken<T>, value: New | typeof RESET_STATE | ((oldValue: T) => New)]): void;
757
+ declare function setIntoStore<T, New extends T, E>(store: Store, token: WritableToken<T, any, E>, value: New | typeof RESET_STATE | ((oldValue: T) => New)): void;
758
+ declare function setIntoStore<T, K extends Canonical, New extends T, Key extends K, E>(store: Store, token: WritableFamilyToken<T, K, E>, key: Key, value: New | typeof RESET_STATE | ((oldValue: T) => New)): void;
759
+ declare function setIntoStore<T, K extends Canonical, New extends T, Key extends K, E>(store: Store, ...params: [token: WritableFamilyToken<T, K, E>, key: Key, value: New | typeof RESET_STATE | ((oldValue: T) => New)] | [token: WritableToken<T, any, E>, value: New | typeof RESET_STATE | ((oldValue: T) => New)]): void;
759
760
  //#endregion
760
761
  //#region src/internal/subscribe/recall-state.d.ts
761
- declare const recallState: <T>(store: Store, state: ReadableState<T>) => T;
762
+ declare const recallState: <T, E>(store: Store, state: ReadableState<T, E>) => T;
762
763
  //#endregion
763
764
  //#region src/internal/subscribe/subscribe-in-store.d.ts
764
765
  declare function subscribeInStore<T>(store: Store, token: ReadableToken<T>, handleUpdate: UpdateHandler<T>, key?: string): () => void;
@@ -767,10 +768,10 @@ declare function subscribeInStore<M extends TimelineManageable>(store: Store, to
767
768
  declare function subscribeInStore<M extends TimelineManageable>(store: Store, token: ReadableToken<any> | TimelineToken<M> | TransactionToken<any>, handleUpdate: TransactionUpdateHandler<any> | UpdateHandler<any> | ((update: TimelineEvent<M> | `redo` | `undo`) => void), key?: string): () => void;
768
769
  //#endregion
769
770
  //#region src/internal/subscribe/subscribe-to-root-atoms.d.ts
770
- declare const subscribeToRootDependency: (target: Store, selector: Selector<any>, atom: Atom<any>) => (() => void);
771
+ declare const subscribeToRootDependency: (target: Store, selector: Selector<any, any>, atom: Atom<any, any>) => (() => void);
771
772
  //#endregion
772
773
  //#region src/internal/subscribe/subscribe-to-state.d.ts
773
- declare function subscribeToState<T>(store: Store, token: ReadableToken<T>, key: string, handleUpdate: UpdateHandler<T>): () => void;
774
+ declare function subscribeToState<T, E>(store: Store, token: ReadableToken<T, any, E>, key: string, handleUpdate: UpdateHandler<E | T>): () => void;
774
775
  //#endregion
775
776
  //#region src/internal/subscribe/subscribe-to-timeline.d.ts
776
777
  declare const subscribeToTimeline: <ManagedAtom extends TimelineManageable>(store: Store, token: TimelineToken<ManagedAtom>, key: string, handleUpdate: (update: TimelineEvent<any> | `redo` | `undo`) => void) => (() => void);
@@ -785,18 +786,19 @@ type AtomIOState = {
785
786
  install: (store: RootStore) => void;
786
787
  subject: Subject<StateUpdate<any>>;
787
788
  };
788
- type RegularAtom<T> = Flat<AtomIOState & {
789
+ type RegularAtom<T, E> = Flat<AtomIOState & {
789
790
  type: `atom`;
790
791
  default: T | (() => T);
791
792
  cleanup?: () => void;
792
793
  internalRoles?: internalRole[];
794
+ catch?: readonly (new () => E)[];
793
795
  }>;
794
796
  type MutableAtom<T extends Transceiver<any, any, any>> = Flat<AtomIOState & {
795
797
  type: `mutable_atom`;
796
798
  class: ConstructorOf<T>;
797
799
  cleanup?: () => void;
798
800
  }>;
799
- type Atom<T> = RegularAtom<T> | (T extends Transceiver<any, any, any> ? MutableAtom<T> : never);
801
+ type Atom<T, E> = RegularAtom<T, E> | (T extends Transceiver<any, any, any> ? MutableAtom<T> : never);
800
802
  type WritableHeldSelector<T> = Flat<AtomIOState & {
801
803
  type: `writable_held_selector`;
802
804
  const: T;
@@ -808,67 +810,69 @@ type ReadonlyHeldSelector<T> = Flat<AtomIOState & {
808
810
  const: T;
809
811
  getFrom: (target: Store) => T;
810
812
  }>;
811
- type WritablePureSelector<T> = Flat<AtomIOState & {
813
+ type WritablePureSelector<T, E> = Flat<AtomIOState & {
812
814
  type: `writable_pure_selector`;
813
- getFrom: (target: Store) => T;
815
+ getFrom: (target: Store) => E | T;
814
816
  setSelf: (newValue: T) => void;
817
+ catch?: readonly (new () => E)[];
815
818
  }>;
816
- type ReadonlyPureSelector<T> = Flat<AtomIOState & {
819
+ type ReadonlyPureSelector<T, E> = Flat<AtomIOState & {
817
820
  type: `readonly_pure_selector`;
818
- getFrom: (target: Store) => T;
821
+ getFrom: (target: Store) => E | T;
822
+ catch?: readonly (new () => E)[];
819
823
  }>;
820
- type ReadonlySelector<T> = ReadonlyHeldSelector<T> | ReadonlyPureSelector<T>;
821
- type WritableSelector<T> = WritableHeldSelector<T> | WritablePureSelector<T>;
824
+ type ReadonlySelector<T, E> = ReadonlyHeldSelector<T> | ReadonlyPureSelector<T, E>;
825
+ type WritableSelector<T, E> = WritableHeldSelector<T> | WritablePureSelector<T, E>;
822
826
  type HeldSelector<T> = ReadonlyHeldSelector<T> | WritableHeldSelector<T>;
823
- type PureSelector<T> = ReadonlyPureSelector<T> | WritablePureSelector<T>;
824
- type Selector<T> = ReadonlyHeldSelector<T> | ReadonlyPureSelector<T> | WritableHeldSelector<T> | WritablePureSelector<T>;
825
- type WritableState<T> = Atom<T> | WritableSelector<T>;
826
- type ReadableState<T> = Atom<T> | Selector<T>;
827
- type RegularAtomFamily<T, K extends Canonical> = Flat<RegularAtomFamilyToken<T, K> & {
827
+ type PureSelector<T, E> = ReadonlyPureSelector<T, E> | WritablePureSelector<T, E>;
828
+ type Selector<T, E> = ReadonlyHeldSelector<T> | ReadonlyPureSelector<T, E> | WritableHeldSelector<T> | WritablePureSelector<T, E>;
829
+ type WritableState<T, E> = Atom<T, E> | WritableSelector<T, E>;
830
+ type ReadableState<T, E> = Atom<T, E> | Selector<T, E>;
831
+ type RegularAtomFamily<T, K extends Canonical, E = never> = Flat<RegularAtomFamilyToken<T, K, E> & {
828
832
  default: T | ((key: K) => T);
829
833
  install: (store: RootStore) => void;
830
834
  internalRoles: string[] | undefined;
831
- subject: Subject<StateLifecycleEvent<RegularAtomToken<T>>>;
832
- }> & ((key: K) => RegularAtomToken<T>);
835
+ subject: Subject<StateLifecycleEvent<RegularAtomToken<T, K, E>>>;
836
+ }> & (<Key extends K>(key: Key) => RegularAtomToken<T, Key, E>);
833
837
  type MutableAtomFamily<T extends Transceiver<any, any, any>, K extends Canonical> = Flat<MutableAtomFamilyToken<T, K> & {
834
838
  class: ConstructorOf<T>;
835
839
  install: (store: RootStore) => void;
836
840
  internalRoles: string[] | undefined;
837
841
  subject: Subject<StateLifecycleEvent<MutableAtomToken<T>>>;
838
- }> & ((key: K) => MutableAtomToken<T>);
839
- type AtomFamily<T, K extends Canonical = Canonical> = MutableAtomFamily<T extends Transceiver<any, any, any> ? T : never, K> | RegularAtomFamily<T, K>;
840
- type WritablePureSelectorFamily<T, K extends Canonical> = Flat<WritablePureSelectorFamilyToken<T, K> & {
842
+ }> & (<Key extends K>(key: Key) => MutableAtomToken<T, Key>);
843
+ type AtomFamily<T, K extends Canonical, E> = MutableAtomFamily<T extends Transceiver<any, any, any> ? T : never, K> | RegularAtomFamily<T, K, E>;
844
+ type WritablePureSelectorFamily<T, K extends Canonical, E> = Flat<WritablePureSelectorFamilyToken<T, K, E> & {
841
845
  default: (key: K) => T;
842
846
  install: (store: RootStore) => void;
843
847
  internalRoles: string[] | undefined;
844
- subject: Subject<StateLifecycleEvent<WritablePureSelectorToken<T>>>;
845
- }> & ((key: K) => WritablePureSelectorToken<T>);
848
+ subject: Subject<StateLifecycleEvent<WritablePureSelectorToken<T, K, E>>>;
849
+ }> & (<Key extends K>(key: Key) => WritablePureSelectorToken<T, Key, E>);
846
850
  type WritableHeldSelectorFamily<T, K extends Canonical> = Flat<WritableHeldSelectorFamilyToken<T, K> & {
847
851
  default: (key: K) => T;
848
852
  install: (store: RootStore) => void;
849
853
  internalRoles: string[] | undefined;
850
- subject: Subject<StateLifecycleEvent<WritableHeldSelectorToken<T>>>;
851
- }> & ((key: K) => WritableHeldSelectorToken<T>);
852
- type ReadonlyPureSelectorFamily<T, K extends Canonical> = Flat<ReadonlyPureSelectorFamilyToken<T, K> & {
854
+ subject: Subject<StateLifecycleEvent<WritableHeldSelectorToken<T, K>>>;
855
+ }> & (<Key extends K>(key: Key) => WritableHeldSelectorToken<T, Key>);
856
+ type ReadonlyPureSelectorFamily<T, K extends Canonical, E> = Flat<ReadonlyPureSelectorFamilyToken<T, K, E> & {
853
857
  default: (key: K) => T;
854
858
  install: (store: RootStore) => void;
855
859
  internalRoles: string[] | undefined;
856
- subject: Subject<StateLifecycleEvent<ReadonlyPureSelectorToken<T>>>;
857
- }> & ((key: K) => ReadonlyPureSelectorToken<T>);
860
+ subject: Subject<StateLifecycleEvent<ReadonlyPureSelectorToken<T, K, E>>>;
861
+ }> & (<Key extends K>(key: Key) => ReadonlyPureSelectorToken<T, Key, E>);
858
862
  type ReadonlyHeldSelectorFamily<T, K extends Canonical> = Flat<ReadonlyHeldSelectorFamilyToken<T, K> & {
859
863
  default: (key: K) => T;
860
864
  install: (store: RootStore) => void;
861
865
  internalRoles: string[] | undefined;
862
866
  subject: Subject<StateLifecycleEvent<ReadonlyHeldSelectorToken<T>>>;
863
- }> & ((key: K) => ReadonlyHeldSelectorToken<T>);
864
- type PureSelectorFamily<T, K extends Canonical> = ReadonlyPureSelectorFamily<T, K> | WritablePureSelectorFamily<T, K>;
867
+ }> & (<Key extends K>(key: Key) => ReadonlyHeldSelectorToken<T, Key>);
868
+ type PureSelectorFamily<T, K extends Canonical, E> = ReadonlyPureSelectorFamily<T, K, E> | WritablePureSelectorFamily<T, K, E>;
865
869
  type HeldSelectorFamily<T, K extends Canonical> = ReadonlyHeldSelectorFamily<T, K> | WritableHeldSelectorFamily<T, K>;
866
- type ReadonlySelectorFamily<T, K extends Canonical> = ReadonlyHeldSelectorFamily<T, K> | ReadonlyPureSelectorFamily<T, K>;
867
- type WritableSelectorFamily<T, K extends Canonical> = WritableHeldSelectorFamily<T, K> | WritablePureSelectorFamily<T, K>;
868
- type SelectorFamily<T, K extends Canonical> = HeldSelectorFamily<T, K> | PureSelectorFamily<T, K>;
869
- type WritableFamily<T, K extends Canonical> = AtomFamily<T, K> | WritablePureSelectorFamily<T, K>;
870
- type ReadableFamily<T, K extends Canonical> = AtomFamily<T, K> | SelectorFamily<T, K>;
871
- type AtomIOInternalResource = ReadableFamily<any, any> | ReadableState<any> | Timeline<any> | Transaction<any>;
870
+ type ReadonlySelectorFamily<T, K extends Canonical, E> = ReadonlyHeldSelectorFamily<T, K> | ReadonlyPureSelectorFamily<T, K, E>;
871
+ type WritableSelectorFamily<T, K extends Canonical, E> = WritableHeldSelectorFamily<T, K> | WritablePureSelectorFamily<T, K, E>;
872
+ type SelectorFamily<T, K extends Canonical, E> = HeldSelectorFamily<T, K> | PureSelectorFamily<T, K, E>;
873
+ type WritableFamily<T, K extends Canonical, E> = AtomFamily<T, K, E> | WritableSelectorFamily<T, K, E>;
874
+ type ReadableFamily<T, K extends Canonical, E> = AtomFamily<T, K, E> | SelectorFamily<T, K, E>;
875
+ type AtomIOInternalResource = ReadableFamily<any, any, any> | ReadableState<any, any> | Timeline<any> | Transaction<any>;
872
876
  //#endregion
873
877
  export { AsJSON, Atom, AtomFamily, AtomIOInternalResource, AtomIOState, AtomKey, BaseExternalStoreConfiguration, COUNTERFEIT, ChildStore, CircularBuffer, ConstructorOf, Count, Each, Empty, EnvironmentData, ExternalStoreConfiguration, ExternalStoreWithContentConfiguration, FAMILY_MEMBER_TOKEN_TYPES, FamilyTracker, Flat, Fn, Future, HeldSelector, HeldSelectorFamily, IMPLICIT, INTERNAL_ROLES, Join, JoinStateFamilies, Junction, JunctionAdvancedConfiguration, JunctionEntries, JunctionEntriesBase, JunctionJSON, JunctionOverlay, JunctionSchema, JunctionSchemaBase, Lineage, MapOverlay, Molecule, MutableAtom, MutableAtomFamily, NotFoundError, OpenOperation, OperationProgress, PureSelector, PureSelectorFamily, RESET_STATE, ReadableFamily, ReadableState, ReadonlyHeldSelector, ReadonlyHeldSelectorFamily, ReadonlyPureSelector, ReadonlyPureSelectorFamily, ReadonlySelector, ReadonlySelectorFamily, ReadonlySelectorKey, Refinement, RegularAtom, RegularAtomFamily, RelationsOverlay, ReservedIntrospectionKey, RootStore, Selector, SelectorFamily, SelectorKey, SetOverlay, SignalFrom, StateKey, StatefulSubject, Store, StoreEventCarrier, Subject, TRANSACTION_PHASES, Timeline, Tracker, Transaction, TransactionEpoch, TransactionPhase, TransactionProgress, Transceiver, TransceiverConstructor, TransceiverMode, WritableFamily, WritableHeldSelector, WritableHeldSelectorFamily, WritablePureSelector, WritablePureSelectorFamily, WritableSelector, WritableSelectorFamily, WritableState, abortTransaction, actUponStore, allocateIntoStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, capitalize, claimWithinStore, clearStore, closeOperation, createClaimTX, createDeallocateTX, createJoin, createMutableAtom, createMutableAtomFamily, createReadonlyHeldSelector, createReadonlyPureSelector, createReadonlyPureSelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneSelector, createTimeline, createTransaction, createWritableHeldSelector, createWritablePureSelector, createWritablePureSelectorFamily, deallocateFromStore, deposit, disposeAtom, disposeFromStore, disposeSelector, editRelationsInStore, eldest, evictCachedValue, evictDownstreamFromAtom, evictDownstreamFromSelector, findInStore, findRelationsInStore, fuseWithinStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getInternalRelationsFromStore, getJoin, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getTrace, getUpdateFamily, getUpdateToken, hasRole, ingestAtomUpdateEvent, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestMoleculeTransferEvent, ingestSelectorUpdateEvent, ingestTransactionOutcomeEvent, installIntoStore, internalRole, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isReservedIntrospectionKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeRootMoleculeInStore, markDone, mint, newest, openOperation, readFromCache, readOrComputeValue, recallState, registerSelector, resetAtomOrSelector, resetInStore, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeInStore, subscribeToRootDependency, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceRootSelectorAtoms, updateSelectorAtoms, withdraw, writeToCache };
874
878
  //# sourceMappingURL=index.d.ts.map