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

/** @since 5.0 */
export interface GeometryEncodingLocationProperties extends Partial<Pick<GeometryEncodingLocation, "xField" | "yField">> {}

/**
 * The location format used to store geometries. Geometries are represented as x and y coordinate pairs, typically stored in two separate columns.
 * If the file contains coordinate fields named `"lng/lat"`, `"lon/lat"`, `"long/lat"`,  `"longitude/latitude"`, `"x/y"`, `"xcenter/ycenter"`, `"longitude83/latitude83"`,
 * `"longdecdeg/latdecdeg"`, `"point-x/point-y"`, these are detected automatically. The field names are case insensitive.
 * For other coordinate field names, set the [xField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/GeometryEncodingLocation/#xField) and [yField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/GeometryEncodingLocation/#yField) properties to the names of the fields
 * containing the latitude and longitude values respectively.
 *
 * @since 5.1
 * @see [ParquetLayer.geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding)
 * @see [getParquetLayerInfo()](https://developers.arcgis.com/javascript/latest/references/core/layers/support/parquetUtils/#getParquetLayerInfo)
 */
export default class GeometryEncodingLocation extends GeometryEncodingLocationSuperclass {
  /** @since 5.0 */
  constructor(properties?: GeometryEncodingLocationProperties);
  /**
   * The type of encoding used for the geometries.
   * This will always be "location" for this class.
   *
   * @since 5.0
   */
  get type(): "location";
  /**
   * The name of the field that contains the x values.
   *
   * @since 5.0
   */
  accessor xField: string;
  /**
   * The name of the field that contains the y values.
   *
   * @since 5.0
   */
  accessor yField: string;
}
declare const GeometryEncodingLocationSuperclass: typeof JSONSupport & typeof ClonableMixin