import { type FirestoreAccessorArrayUpdate } from '../../common/firestore/accessor/accessor'; import { type UpdateData } from '../../common/firestore/types'; /** * Converts a {@link FirestoreAccessorArrayUpdate} into Firestore `UpdateData` using the * client-side `arrayUnion()` and `arrayRemove()` FieldValue sentinels. * * Processes both `union` (add elements) and `remove` (delete elements) operations, * spreading array values as individual arguments since Firestore does not allow nested arrays. * * @param input - object with `union` and/or `remove` maps from field names to arrays of values * @returns Firestore `UpdateData` with `FieldValue.arrayUnion()`/`FieldValue.arrayRemove()` sentinels * * @example * ```ts * const updateData = firestoreClientArrayUpdateToUpdateData({ * union: { tags: ['newTag'] }, * remove: { tags: ['oldTag'] } * }); * await updateDoc(docRef, updateData); * ``` */ export declare function firestoreClientArrayUpdateToUpdateData(input: FirestoreAccessorArrayUpdate): UpdateData;