UNPKG

@zedux/stores

Version:

The legacy composable store model of Zedux

77 lines (76 loc) 2.75 kB
import { AtomApiPromise } from '@zedux/atoms'; import { Store, StoreStateType } from '@zedux/core'; import { AtomApi } from './AtomApi'; /** * Create an AtomApi * * AtomApis are the standard mechanism for passing stores, exports, and promises * around. * * An AtomApi that's returned from an atom state factory becomes _the_ api of * the atom. * * - Any exports on the AtomApi are set as the atom instance's exports on * initial evaluation and ignored forever after. * - If promise or state references change on subsequent evaluations, it * triggers the appropriate updates in all the atom's dynamic dependents. */ export declare const api: { <StoreType extends Store<any> = Store<any>, Exports extends Record<string, any> = Record<string, never>, PromiseType extends AtomApiPromise = undefined>(value: AtomApi<{ Exports: Exports; Promise: PromiseType; State: StoreStateType<StoreType>; Store: StoreType; }>): AtomApi<{ Exports: Exports; Promise: PromiseType; State: StoreStateType<StoreType>; Store: StoreType; }>; <StoreType extends Store<any> = Store<any>>(value: StoreType): AtomApi<{ Exports: Record<string, never>; Promise: undefined; State: StoreStateType<StoreType>; Store: StoreType; }>; (): AtomApi<{ Exports: Record<string, never>; Promise: undefined; State: undefined; Store: undefined; }>; <State = undefined, Exports extends Record<string, any> = Record<string, never>, PromiseType extends AtomApiPromise = undefined>(): AtomApi<{ Exports: Exports; Promise: PromiseType; State: State; Store: undefined; }>; <State = undefined, Exports extends Record<string, any> = Record<string, never>, PromiseType extends AtomApiPromise = undefined>(value: AtomApi<{ Exports: Exports; Promise: PromiseType; State: State; Store: undefined; }>): AtomApi<{ Exports: Exports; Promise: PromiseType; State: State; Store: undefined; }>; <State = undefined>(value: State): AtomApi<{ Exports: Record<string, never>; Promise: undefined; State: State; Store: undefined; }>; <State = undefined, Exports extends Record<string, any> = Record<string, never>, StoreType extends Store<State> = Store<State>, PromiseType extends AtomApiPromise = undefined>(value: State | StoreType | AtomApi<{ Exports: Exports; Promise: PromiseType; State: State; Store: StoreType; }>): AtomApi<{ Exports: Exports; Promise: PromiseType; State: State; Store: StoreType; }>; };