UNPKG

jotai

Version:

👻 Next gen state management that will spook you

151 lines (150 loc) • 12.3 kB
import { Context } from 'react'; import { Atom, Scope } from './atom'; import { Store } from './store'; declare type VersionedWrite = (write: (version?: object) => void) => void; export declare type ScopeContainer = { s: Store; w?: VersionedWrite; }; export declare const createScopeContainer: (initialValues?: Iterable<readonly [ Atom<unknown>, unknown ]> | undefined, unstable_createStore?: ((initialValues?: Iterable<readonly [ { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }, unknown ]> | undefined) => { get: <Value_3>(atom: Atom<Value_3>) => (Value_3 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_3) | undefined; asyncGet: <Value_4>(atom: Atom<Value_4>) => Promise<Value_4 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_4>; set: <Value_5, Update, Result extends void | Promise<void>>(atom: import("./atom").WritableAtom<Value_5, Update, Result>, update: Update) => Result; sub: (atom: { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }, callback: () => void) => () => void; SECRET_INTERNAL_store: { r: <Value_6>(readingAtom: Atom<Value_6>, version?: import("./store").VersionObject | undefined) => import("./store").AtomState<Value_6>; w: <Value_7, Update_1, Result_1 extends void | Promise<void>>(writingAtom: import("./atom").WritableAtom<Value_7, Update_1, Result_1>, update: Update_1, version?: import("./store").VersionObject | undefined) => Result_1; c: (_atom: { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; } | null, version?: import("./store").VersionObject | undefined) => void; s: (atom: { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }, callback: (version?: import("./store").VersionObject | undefined) => void) => () => void; h: (values: Iterable<readonly [ { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }, unknown ]>, version?: import("./store").VersionObject | undefined) => void; n: (l: () => void) => () => void; l: () => IterableIterator<{ toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }>; a: (a: { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }) => import("./store").AtomState<unknown> | undefined; m: (a: { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }) => { l: Set<(version?: import("./store").VersionObject | undefined) => void>; t: Set<{ toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }>; u?: () => void; } | undefined; } | { r: <Value_6>(readingAtom: Atom<Value_6>, version?: import("./store").VersionObject | undefined) => import("./store").AtomState<Value_6>; w: <Value_7, Update_1, Result_1 extends void | Promise<void>>(writingAtom: import("./atom").WritableAtom<Value_7, Update_1, Result_1>, update: Update_1, version?: import("./store").VersionObject | undefined) => Result_1; c: (_atom: { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; } | null, version?: import("./store").VersionObject | undefined) => void; s: (atom: { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }, callback: (version?: import("./store").VersionObject | undefined) => void) => () => void; h: (values: Iterable<readonly [ { toString: () => string; debugLabel?: string; read: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2; }) => unknown; }, unknown ]>, version?: import("./store").VersionObject | undefined) => void; n?: never; l?: never; a?: never; m?: never; }; }) | undefined) => ScopeContainer; declare type ScopeContext = Context<ScopeContainer>; export declare const getScopeContext: (scope?: Scope | undefined) => ScopeContext; export {};