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

/** @since 5.0 */
export interface ParquetGeometryEncodingWkbProperties extends Partial<Pick<ParquetGeometryEncodingWkb, "field" | "orientation">> {}

/**
 * Well-Known Binary (WKB) is a binary format used to encode geometries before storing them in parquet files.
 *
 * @since 4.33
 * @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 ParquetGeometryEncodingWkb extends ParquetGeometryEncodingWkbSuperclass {
  /** @since 5.0 */
  constructor(properties?: ParquetGeometryEncodingWkbProperties);
  /**
   * The name of the geometry column. When a parquet file contains multiple geometry fields,
   * set this property to specify which geometry column should be used by the ParquetLayer.
   * This field is used to set the [ParquetLayer.geometryType](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryType) of the layer.
   *
   * @since 5.0
   */
  accessor field: string;
  /**
   * Winding order of exterior ring of polygons. If present must be "counter-clockwise"; interior rings are wound in opposite order. If absent, no assertions
   * are made regarding the winding order.
   *
   * @since 5.0
   */
  accessor orientation: "counter-clockwise" | null | undefined;
  /**
   * The type of encoding used for the geometries in the parquet file.
   * This will always be "wkb" for this class.
   *
   * @since 5.0
   */
  get type(): "wkb";
}
declare const ParquetGeometryEncodingWkbSuperclass: typeof JSONSupport & typeof ClonableMixin