import { 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>; declare type Awaited = T extends Promise ? V : T;