import { GeoFirestoreTypes, GeoQuerySnapshot } from 'geofirestore-core'; import { GeoFirestore } from './GeoFirestore'; /** * A `GeoQuery` refers to a Query which you can read or listen to. You can also construct refined `GeoQuery` objects by adding filters and * ordering. */ export declare class GeoQuery { private _query; private _center; private _limit; private _radius; private _isWeb; /** * @param _query The `Query` instance. * @param queryCriteria The query criteria of geo based queries, includes field such as center, radius, and limit. */ constructor(_query: GeoFirestoreTypes.cloud.Query | GeoFirestoreTypes.web.Query, queryCriteria?: GeoFirestoreTypes.QueryCriteria); /** The native `Query` instance. */ get native(): GeoFirestoreTypes.cloud.Query | GeoFirestoreTypes.web.Query; /** * The `Firestore` for the Firestore database (useful for performing transactions, etc.). */ get firestore(): GeoFirestore; /** * Attaches a listener for `GeoQuerySnapshot` events. * * @param onNext A callback to be called every time a new `GeoQuerySnapshot` is available. * @param onError A callback to be called if the listen fails or is cancelled. Since multuple queries occur only the failed query will * cease. * @return An unsubscribe function that can be called to cancel the snapshot listener. */ get onSnapshot(): (onNext: (snapshot: GeoQuerySnapshot) => void, onError?: (error: Error) => void) => () => void; /** * Executes the query and returns the results as a GeoQuerySnapshot. * * WEB CLIENT ONLY * 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 that will be resolved with the results of the GeoQuery. */ get(options?: GeoFirestoreTypes.web.GetOptions): Promise; /** * Creates and returns a new GeoQuery that's additionally limited to only return up to the specified number of documents. * * This function returns a new (immutable) instance of the GeoQuery (rather than modify the existing instance) to impose the limit. * * Note: Limits on geoqueries are applied based on the distance from the center. Geoqueries require an aggregation of queries. * When performing a geoquery the library applies the limit on the client. This may mean you are loading to the client more documents * then you intended. Use with this performance limitation in mind. * * @param limit The maximum number of items to return. * @return The created GeoQuery. */ limit(limit: number): GeoQuery; /** * Creates and returns a new GeoQuery with the geoquery filter where `get` and `onSnapshot` will query around. * * This function returns a new (immutable) instance of the GeoQuery (rather than modify the existing instance) to impose the filter. * * @param newQueryCriteria The criteria which specifies the query's center and radius. * @return The created GeoQuery. */ near(newGeoQueryCriteria: GeoFirestoreTypes.QueryCriteria): GeoQuery; /** * Creates and returns a new GeoQuery with the additional filter that documents must contain the specified field and that its value * should satisfy the relation constraint provided. * * This function returns a new (immutable) instance of the GeoQuery (rather than modify the existing instance) to impose the filter. * * @param fieldPath The path to compare * @param opStr The operation string (e.g "<", "<=", "==", ">", ">="). * @param value The value for comparison * @return The created GeoQuery. */ where(fieldPath: string | GeoFirestoreTypes.cloud.FieldPath | GeoFirestoreTypes.web.FieldPath, opStr: GeoFirestoreTypes.WhereFilterOp, value: any): GeoQuery; /** * Returns the center and radius of geo based queries as a QueryCriteria object. */ private get _queryCriteria(); }