import type { ClonableMixin } from "../../core/Clonable.js";
import type { JSONSupport } from "../../core/JSONSupport.js";

/** @since 5.0 */
export interface LocateSettingSourceProperties extends Partial<Pick<LocateSettingSource, "name" | "where">> {}

/**
 * A `LocateSettingSource` defines a network source feature class that can be used
 * for locating inputs during a route analysis. You can also define an SQL where
 * clause to filter the features used for locating.
 *
 * @since 5.0
 * @see [LocateSetting](https://developers.arcgis.com/javascript/latest/references/core/rest/support/LocateSetting/)
 * @see [LocateSettings](https://developers.arcgis.com/javascript/latest/references/core/rest/support/LocateSettings/)
 * @see [RouteParameters.locateSettings](https://developers.arcgis.com/javascript/latest/references/core/rest/support/RouteParameters/#locateSettings)
 * @see [locateSettings](https://developers.arcgis.com/rest/services-reference/enterprise/route-sync-services/#locatesettings)
 * @see [Locate analysis inputs](https://pro.arcgis.com/en/pro-app/latest/help/analysis/networks/locating-analysis-inputs.htm)
 */
export default class LocateSettingSource extends LocateSettingSourceSuperclass {
  /** @since 5.0 */
  constructor(properties?: LocateSettingSourceProperties);
  /**
   * The name of the network source feature class that can be used for locating inputs.
   *
   * @since 5.0
   */
  accessor name: string | null | undefined;
  /**
   * An SQL expression on the network source feature class.
   *
   * @since 5.0
   */
  accessor where: string | null | undefined;
}
declare const LocateSettingSourceSuperclass: typeof JSONSupport & typeof ClonableMixin