import { Atom } from "jotai"; export declare type InternalFormId = string | symbol; export declare const formAtomFamily: (data: T) => { (param: InternalFormId): Atom & { write: (get: { (atom: Atom>): Value; (atom: Atom>): Value_1; (atom: Atom): Value_2 extends Promise ? V : Value_2; } & { (atom: Atom>, options: { unstable_promise: true; }): Value_3 | Promise; (atom: Atom>, options: { unstable_promise: true; }): Value_4 | Promise; (atom: Atom, options: { unstable_promise: true; }): (Value_5 extends Promise ? V : Value_5) | Promise ? V : Value_5>; }, set: { >(atom: import("jotai").WritableAtom): Result; >(atom: import("jotai").WritableAtom, update: Update): Result_1; }, update: T | ((prev: T) => T)) => void; onMount?: ( T), void>>(setAtom: S) => void | (() => void)) | undefined; } & { init: T; }; remove(param: InternalFormId): void; setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void; }; export declare type FieldAtomKey = { formId: InternalFormId; field: string; }; export declare const fieldAtomFamily: >(func: (key: FieldAtomKey) => T) => { (param: FieldAtomKey): T; remove(param: FieldAtomKey): void; setShouldRemove(shouldRemove: ((createdAt: number, param: FieldAtomKey) => boolean) | null): void; };