UNPKG

606 BTypeScriptView Raw
1import type { Atom, PrimitiveAtom, WritableAtom } from './atom';
2export type Getter = Parameters<Atom<unknown>['read']>[0];
3export type Setter = Parameters<WritableAtom<unknown, unknown>['write']>[1];
4export type ExtractAtomValue<AtomType> = AtomType extends Atom<infer Value> ? Value : never;
5export type ExtractAtomUpdate<AtomType> = AtomType extends WritableAtom<unknown, infer Update> ? Update : never;
6export type ExtractAtomResult<AtomType> = AtomType extends WritableAtom<unknown, unknown, infer Result> ? Result : never;
7export type SetStateAction<Value> = ExtractAtomUpdate<PrimitiveAtom<Value>>;