import type * as AtomRegistry from "./AtomRegistry.ts"; /** * Marker interface for entries in a dehydrated atom registry state. * * @stability unstable * @category models * @since 4.0.0 */ export interface DehydratedAtom { readonly "~effect/reactivity/Hydration/DehydratedAtom": true; } /** * A dehydrated serializable atom value. * * **Details** * * It stores the atom serialization key, encoded value, dehydration timestamp, and * an optional promise used when an `AsyncResult.Initial` value is encoded as a * future non-initial value. * * @stability unstable * @category models * @since 4.0.0 */ export interface DehydratedAtomValue extends DehydratedAtom { readonly key: string; readonly value: unknown; readonly dehydratedAt: number; readonly resultPromise?: Promise | undefined; } /** * Encodes the serializable atoms currently stored in a registry into dehydrated * state. * * **Details** * * Only atoms marked with `Atom.serializable` whose current values can be encoded * are included. Atoms that fail schema encoding are skipped without throwing. * `encodeInitialAs` controls whether `AsyncResult.Initial` values are ignored, * encoded as values, or represented by promises that resolve when the atom * leaves the initial state. * * @stability unstable * @category dehydration * @since 4.0.0 */ export declare const dehydrate: (registry: AtomRegistry.AtomRegistry, options?: { /** * How to encode `AsyncResult.Initial` values. Default is "ignore". */ readonly encodeInitialAs?: "ignore" | "promise" | "value-only" | undefined; }) => Array; /** * Returns dehydrated state entries as `DehydratedAtomValue` records. * * @stability unstable * @category converting * @since 4.0.0 */ export declare const toValues: (state: ReadonlyArray) => Array; /** * Applies dehydrated atom state to a registry. * * **When to use** * * Use to preload serialized atom values into a target registry before those * atoms are read. * * **Details** * * Encoded values are preloaded by serialization key. Entries with a * `resultPromise` update the matching registry node, or preload the resolved value, * when the promise resolves. * * @stability unstable * @category hydration * @since 4.0.0 */ export declare const hydrate: (registry: AtomRegistry.AtomRegistry, dehydratedState: Iterable) => void; //# sourceMappingURL=Hydration.d.ts.map