import type MapSurroundInfoBase from "./MapSurroundInfoBase.js";
import type MapSurroundInfoLegend from "./MapSurroundInfoLegend.js";
import type MapSurroundInfoNorthArrow from "./MapSurroundInfoNorthArrow.js";
import type MapSurroundInfoScaleLine from "./MapSurroundInfoScaleLine.js";
import type { MapSurroundInfoBaseProperties } from "./MapSurroundInfoBase.js";

export interface MapSurroundInfoGroupElementProperties extends MapSurroundInfoBaseProperties, Partial<Pick<MapSurroundInfoGroupElement, "elements">> {
  /**
   * The type of MapSurroundInfo.
   *
   * @default "cim-group-element"
   */
  type?: "cim-group-element";
}

/** The `MapSurroundInfoGroupElement` class defines a group of map surround elements */
export default class MapSurroundInfoGroupElement extends MapSurroundInfoBase {
  constructor(properties?: MapSurroundInfoGroupElementProperties);
  /** The default legend item configuration. */
  accessor elements: (MapSurroundInfoNorthArrow | MapSurroundInfoLegend | MapSurroundInfoScaleLine)[] | undefined;
  /**
   * The type of MapSurroundInfo.
   *
   * @default "cim-group-element"
   */
  type: "cim-group-element";
}