import type ExpressionInfo from "./ExpressionInfo.js"; import type { ClonableMixin } from "../../core/Clonable.js"; import type { JSONSupport } from "../../core/JSONSupport.js"; import type { ExpressionInfoProperties } from "./ExpressionInfo.js"; export interface DeviceLocationFeedProperties { /** An optional Arcade expression that controls whether a location update will be used by a geotrigger. For example, the expression could reject GPS updates with a poor horizontal accuracy. This expression uses the [Location Update Constraint](https://developers.arcgis.com/arcade/profiles/location-update-constraint/) Arcade profile. The expression should return a Boolean where false indicates the location will not be used. */ filterExpression?: ExpressionInfoProperties | null; } /** * A Geotrigger feed which uses the device location to provide updates. * * @since 4.24 * @example * let feed = new DeviceLocationFeed({ * filterExpression: { // autocasts as new ExpressionInfo() * title: "Location filter", * expression: "return $locationupdate.horizontalaccuracy <= 20" * } * }) */ export default class DeviceLocationFeed extends DeviceLocationFeedSuperclass { constructor(properties?: DeviceLocationFeedProperties); /** An optional Arcade expression that controls whether a location update will be used by a geotrigger. For example, the expression could reject GPS updates with a poor horizontal accuracy. This expression uses the [Location Update Constraint](https://developers.arcgis.com/arcade/profiles/location-update-constraint/) Arcade profile. The expression should return a Boolean where false indicates the location will not be used. */ get filterExpression(): ExpressionInfo | null | undefined; set filterExpression(value: ExpressionInfoProperties | null | undefined); /** String indicating the type of Geotrigger feed. */ get type(): "device-location"; } declare const DeviceLocationFeedSuperclass: typeof JSONSupport & typeof ClonableMixin