import type ParquetGeometryEncodingBase from "./ParquetGeometryEncodingBase.js";

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/api-reference/esri-layers-ParquetLayer.html#geometryEncoding)
 * @see [getParquetLayerInfo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-parquetUtils.html#getParquetLayerInfo)
 */
export default class ParquetGeometryEncodingWkb extends ParquetGeometryEncodingBase {
  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/api-reference/esri-layers-ParquetLayer.html#geometryType) of the layer.
   */
  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.
   */
  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.
   *
   * @default "wkb"
   */
  get type(): "wkb";
}