import { GeoFirestoreTypes } from '../definitions';
/**
 * Encodes a Firestore Document to be added as a GeoDocument.
 *
 * @param documentData The document being set.
 * @param customKey The key of the document to use as the location. Otherwise we default to `coordinates`.
 * @return The document encoded as GeoDocument object.
 */
export declare function encodeDocumentAdd(documentData: GeoFirestoreTypes.DocumentData, customKey?: string): GeoFirestoreTypes.GeoDocumentData;
/**
 * Encodes a Firestore Document to be set as a GeoDocument.
 *
 * @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 The document encoded as GeoDocument object.
 */
export declare function encodeDocumentSet(documentData: GeoFirestoreTypes.DocumentData, options?: GeoFirestoreTypes.SetOptions): GeoFirestoreTypes.GeoDocumentData | GeoFirestoreTypes.DocumentData;
/**
 * Encodes a Firestore Document to be updated as a GeoDocument.
 *
 * @param documentData The document being updated.
 * @param customKey The key of the document to use as the location. Otherwise we default to `coordinates`.
 * @return The document encoded as GeoDocument object.
 */
export declare function encodeDocumentUpdate(documentData: GeoFirestoreTypes.UpdateData, customKey?: string): GeoFirestoreTypes.UpdateData;
/**
 * Encodes a document with a GeoPoint as a GeoDocument.
 *
 * @param geopoint The location as a Firestore GeoPoint.
 * @param documentData Document to encode.
 * @return The document encoded as GeoDocument object.
 */
export declare function encodeGeoDocument(geopoint: GeoFirestoreTypes.cloud.GeoPoint | GeoFirestoreTypes.web.GeoPoint, documentData: GeoFirestoreTypes.DocumentData): GeoFirestoreTypes.GeoDocumentData;
