import { ExactOptional } from '../exactOptional'; import { DocumentReference } from '../refs'; import { Precondition, WriteResult, DocumentData } from '../alias'; import { Transaction } from '../transaction'; import { WriteBatch } from '../batch'; import { MetaType } from '../metaTypeCreator'; export type UpdateCreator = (reference: DocumentReference, data: Data extends never ? Data : ExactOptional, precondition?: Precondition) => U; export type Update = UpdateCreator, false>; export type UpdateNoFlatten = UpdateCreator, true>; export type TransactionUpdate = UpdateCreator; export type TransactionUpdateNoFlatten = UpdateCreator; export type WriteBatchUpdate = UpdateCreator; export type WriteBatchUpdateNoFlatten = UpdateCreator;