import { GeoFirestoreTypes } from 'geofirestore-core'; import { GeoCollectionReference } from './GeoCollectionReference'; import { GeoDocumentSnapshot } from './GeoDocumentSnapshot'; import { GeoFirestore } from './GeoFirestore'; /** * A `GeoDocumentReference` refers to a document location in a Firestore database and can be used to write, read, or listen to the * location. The document at the referenced location may or may not exist. A `GeoDocumentReference` can also be used to create a * `CollectionReference` to a subcollection. */ export declare class GeoDocumentReference { private _document; private _isWeb; /** * @param _document The `DocumentReference` instance. */ constructor(_document: GeoFirestoreTypes.cloud.DocumentReference | GeoFirestoreTypes.web.DocumentReference); /** The native `DocumentReference` instance. */ get native(): GeoFirestoreTypes.cloud.DocumentReference | GeoFirestoreTypes.web.DocumentReference; /** The identifier of the document within its collection. */ get id(): string; /** * The `GeoFirestore` for the Firestore database (useful for performing transactions, etc.). */ get firestore(): GeoFirestore; /** * Attaches a listener for GeoDocumentSnapshot events. You may either pass individual `onNext` and `onError` callbacks. * * @param onNext A callback to be called every time a new `GeoDocumentSnapshot` is available. * @param onError A callback to be called if the listen fails or is cancelled. No further callbacks will occur. * @return An unsubscribe function that can be called to cancel the snapshot listener. */ get onSnapshot(): (onNext: (snapshot: GeoDocumentSnapshot) => void, onError?: (error: Error) => void) => () => void; /** * A reference to the GeoCollection to which this GeoDocumentReference belongs. */ get parent(): GeoCollectionReference; /** * A string representing the path of the referenced document (relative to the root of the database). */ get path(): string; /** * Gets a `GeoCollectionReference` instance that refers to the collection at the specified path. * * @param collectionPath A slash-separated path to a collection. * @return The `GeoCollectionReference` instance. */ collection(collectionPath: string): GeoCollectionReference; /** * Deletes the document referred to by this `GeoDocumentReference`. * * @return A Promise resolved once the document has been successfully deleted from the backend (Note that it won't resolve while you're * offline). */ delete(): Promise; /** * Reads the document referred to by this `GeoDocumentReference`. * * Note: By default, get() attempts to provide up-to-date data when possible by waiting for data from the server, but it may return * cached data or fail if you are offline and the server cannot be reached. This behavior can be altered via the `GetOptions` parameter. * * @param options An object to configure the get behavior. * @return A Promise resolved with a GeoDocumentSnapshot containing the current document contents. */ get(options?: GeoFirestoreTypes.web.GetOptions): Promise; /** * Returns true if this `GeoDocumentReference` is equal to the provided one. * * @param other The `DocumentReference` or `GeoDocumentReference` to compare against. * @return true if this `DocumentReference` or `GeoDocumentReference` is equal to the provided one. */ isEqual(other: GeoDocumentReference | GeoFirestoreTypes.cloud.DocumentReference | GeoFirestoreTypes.web.DocumentReference): boolean; /** * Writes to the document referred to by this `GeoDocumentReference`. If the document does not yet exist, it will be created. If you pass * `SetOptions`, the provided data can be merged into an existing document. * * @param documentData A map of the fields and values for the document. * @param options An object to configure the set behavior. Includes custom key for location in document. * @return A Promise resolved once the data has been successfully written to the backend (Note it won't resolve while you're offline). */ set(documentData: GeoFirestoreTypes.DocumentData, options?: GeoFirestoreTypes.SetOptions): Promise; /** * Updates fields in the document referred to by this `GeoDocumentReference`. The update will fail if applied to a document that does not * exist. * * @param data An object containing the fields and values with which to update the document. Fields can contain dots to reference nested * fields within the document. * @param customKey The key of the document to use as the location. Otherwise we default to `coordinates`. * @return A Promise resolved once the data has been successfully written to the backend (Note it won't resolve while you're offline). */ update(data: GeoFirestoreTypes.UpdateData, customKey?: string): Promise; }