import { type AtomType } from "./atom"; export type ObjectAtomType = AtomType> & { setItem(key: string, value: V): ObjectAtomType; updateItem(key: string, fn: (value: V) => void): ObjectAtomType; deleteItem(key: string): ObjectAtomType; deleteItems(pred: (value: V, key: string) => boolean): ObjectAtomType; addItem(item: V): ObjectAtomType; removeDuplicates(keyFn: (value: V) => unknown): ObjectAtomType; merge(other: Record): ObjectAtomType; clear(): ObjectAtomType; upsert(item: V, keyFn?: (value: V) => unknown): ObjectAtomType; keys(): string[]; values(): V[]; /** Map over entries like `Array.map` — `(value, key, index) => …`. Read-only. */ map(fn: (value: V, key: string, index: number) => R): R[]; /** * Render entries via lit-html `repeat`, keyed by the object property key. * Reads the atom so the view re-renders when the object changes. */ render(template: (value: V, key: string, index: number) => unknown): unknown; has(keyOrPred: string | ((value: V, key: string) => boolean)): boolean; find(pred: (value: V, key: string) => boolean): V | undefined; findKey(pred: (value: V, key: string) => boolean): string | undefined; some(pred: (value: V, key: string) => boolean): boolean; every(pred: (value: V, key: string) => boolean): boolean; count(pred?: (value: V, key: string) => boolean): number; readonly size: number; readonly isEmpty: boolean; }; /** Reactive plain-object atom. Writes via `set` / `update`. */ export declare function createObjectAtom(defaultValue?: Record): ObjectAtomType; //# sourceMappingURL=createObjectAtom.d.ts.map