import type { Atom, PrimitiveAtom, WritableAtom } from './atom'; export type Getter = Parameters['read']>[0]; export type Setter = Parameters['write']>[1]; export type ExtractAtomValue = AtomType extends Atom ? Value : never; export type ExtractAtomUpdate = AtomType extends WritableAtom ? Update : never; export type ExtractAtomResult = AtomType extends WritableAtom ? Result : never; export type SetStateAction = ExtractAtomUpdate>;