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