import { Store, StoreStateType } from '@zedux/core'; import { AtomApi } from '../classes/AtomApi'; import { AtomApiPromise } from '../types/index'; /** * 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: { = Store, Exports extends Record = Record, PromiseType extends AtomApiPromise = undefined>(value: AtomApi<{ Exports: Exports; Promise: PromiseType; State: StoreStateType; Store: StoreType; }>): AtomApi<{ Exports: Exports; Promise: PromiseType; State: StoreStateType; Store: StoreType; }>; = Store>(value: StoreType): AtomApi<{ Exports: Record; Promise: undefined; State: StoreStateType; Store: StoreType; }>; (): AtomApi<{ Exports: Record; Promise: undefined; State: undefined; Store: undefined; }>; = Record, PromiseType extends AtomApiPromise = undefined>(): AtomApi<{ Exports: Exports; Promise: PromiseType; State: State; Store: undefined; }>; = Record, PromiseType extends AtomApiPromise = undefined>(value: AtomApi<{ Exports: Exports; Promise: PromiseType; State: State; Store: undefined; }>): AtomApi<{ Exports: Exports; Promise: PromiseType; State: State; Store: undefined; }>; (value: State): AtomApi<{ Exports: Record; Promise: undefined; State: State; Store: undefined; }>; = Record, StoreType extends Store = Store, 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; }>; };