UNPKG

747 BTypeScriptView Raw
1export declare type SetStateAction<Value> = Value | ((prev: Value) => Value);
2export declare type Getter = <Value>(atom: Atom<Value>) => Value;
3export declare type Setter = <Value, Update>(atom: WritableAtom<Value, Update>, update: Update) => void;
4export declare type Atom<Value> = {
5 key: string | number;
6 init?: Value;
7 read: (get: Getter) => Value | Promise<Value>;
8};
9export declare type WritableAtom<Value, Update> = Atom<Value> & {
10 write: (get: Getter, set: Setter, update: Update) => void | Promise<void>;
11};
12export declare type PrimitiveAtom<Value> = WritableAtom<Value, SetStateAction<Value>>;
13export declare type AnyAtom = Atom<unknown>;
14export declare type AnyWritableAtom = WritableAtom<unknown, unknown>;