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

/** @since 5.1 */
export interface GeometryEncodingWkbProperties extends Partial<Pick<GeometryEncodingWkb, "field" | "orientation">> {}

/**
 * Well-Known Binary (WKB) is a binary format used to encode geometries in a column.
 *
 * @beta
 * @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 GeometryEncodingWkb extends GeometryEncodingWkbSuperclass {
  /** @since 5.0 */
  constructor(properties?: GeometryEncodingWkbProperties);
  /**
   * The name of the geometry column. When columns contain multiple geometry fields,
   * set this property to specify which geometry column should be used by 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.
   * This will always be "wkb" for this class.
   *
   * @since 5.0
   */
  get type(): "wkb";
}
declare const GeometryEncodingWkbSuperclass: typeof JSONSupport & typeof ClonableMixin