import { type DocumentReference, type DocumentSnapshot, type UpdateData, type WithFieldValue } from 'firebase/firestore'; import { type Observable } from 'rxjs'; import { type DocumentData, type FirestoreAccessorArrayUpdate, type FirestoreAccessorIncrementUpdate, type FirestoreDataConverter, type FirestoreDocumentContext, type FirestoreDocumentDataAccessor, type FirestoreDocumentDataAccessorFactory, type SetOptions, type WriteResult } from '../../common/firestore'; /** * Default (non-transactional) client-side implementation of {@link FirestoreDocumentDataAccessor}. * * Wraps a single Firestore `DocumentReference` and provides CRUD operations, streaming, * and field-level updates (increment, array union/remove) using the `firebase/firestore` SDK. * * Used as the base accessor class; {@link WriteBatchFirestoreDocumentDataAccessor} extends this * to add batch write semantics. */ export declare class DefaultFirestoreDocumentDataAccessor implements FirestoreDocumentDataAccessor { private readonly _documentRef; constructor(documentRef: DocumentReference); get documentRef(): DocumentReference; stream(): Observable>; create(data: WithFieldValue): Promise; exists(): Promise; get(): Promise>; getWithConverter(converter: null | FirestoreDataConverter): Promise>; delete(): Promise; set(data: WithFieldValue, options?: SetOptions): Promise; increment(data: FirestoreAccessorIncrementUpdate): Promise; arrayUpdate(data: FirestoreAccessorArrayUpdate): Promise; update(data: UpdateData): Promise; } /** * Creates a {@link FirestoreDocumentDataAccessorFactory} that produces {@link DefaultFirestoreDocumentDataAccessor} instances * for direct (non-batched, non-transactional) Firestore operations. * * @returns a factory that creates default (non-transactional) document data accessors * * @example * ```ts * const factory = defaultFirestoreAccessorFactory(); * const accessor = factory.accessorFor(documentRef); * const snapshot = await accessor.get(); * ``` */ export declare function defaultFirestoreAccessorFactory(): FirestoreDocumentDataAccessorFactory; /** * Creates a default (non-transactional, non-batched) {@link FirestoreDocumentContext} for client-side use. * * The context type is {@link FirestoreDocumentContextType.NONE}, meaning operations execute immediately * against Firestore without transaction or batch grouping. * * @returns a default {@link FirestoreDocumentContext} with no transaction or batch semantics * * @example * ```ts * const context = defaultFirestoreDocumentContext(); * const accessor = context.accessorFactory.accessorFor(docRef); * ``` */ export declare function defaultFirestoreDocumentContext(): FirestoreDocumentContext;