UNPKG

jotai

Version:

👻 Next gen state management that will spook you

28 lines (27 loc) • 1.19 kB
import type { Atom, Getter, WritableAtom } from 'jotai'; declare global { interface SymbolConstructor { readonly observable: symbol; } } declare type Subscription = { unsubscribe: () => void; }; declare type Observer<T> = { next: (value: T) => void; error: (error: unknown) => void; complete: () => void; }; declare type ObservableLike<T> = { subscribe(observer: Observer<T>): Subscription; subscribe(next: (value: T) => void, error?: (error: unknown) => void, complete?: () => void): Subscription; [Symbol.observable]?: () => ObservableLike<T> | undefined; }; declare type SubjectLike<T> = ObservableLike<T> & Observer<T>; declare type InitialValueFunction<T> = () => T | undefined; declare type AtomWithObservableOptions<TData> = { initialValue?: TData | InitialValueFunction<TData>; }; export declare function atomWithObservable<TData>(createObservable: (get: Getter) => SubjectLike<TData>, options?: AtomWithObservableOptions<TData>): WritableAtom<TData, TData>; export declare function atomWithObservable<TData>(createObservable: (get: Getter) => ObservableLike<TData>, options?: AtomWithObservableOptions<TData>): Atom<TData>; export {};