import type Edges3D from "./Edges3D.js";
import type { Edges3DProperties } from "./Edges3D.js";

export interface SolidEdges3DProperties extends Edges3DProperties {}

/**
 * SolidEdges3D is a symbol type that visualizes edges of [3D Object SceneLayers](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/), extruded
 * polygons or mesh geometries with a solid line. It can be used to emphasize the form of 3D objects and to improve the
 * three-dimensional spatial understanding.
 *
 * ![symbol3D-edges-solid](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3d-edges-solid.avif)
 *
 * This symbol can only be set on the [FillSymbol3DLayer.edges](https://developers.arcgis.com/javascript/latest/references/core/symbols/FillSymbol3DLayer/#edges) within a [MeshSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/MeshSymbol3D/)
 * or on the [ExtrudeSymbol3DLayer.edges](https://developers.arcgis.com/javascript/latest/references/core/symbols/ExtrudeSymbol3DLayer/#edges) on [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/).
 *
 * @since 4.7
 * @see [Sample: Extrude building footprints based on real world heights](https://developers.arcgis.com/javascript/latest/sample-code/visualization-buildings-3d/)
 * @example
 * let symbol = {
 *   type: "mesh-3d", // autocasts as new MeshSymbol3D()
 *   symbolLayers: [{
 *     type: "fill", // autocasts as new FillSymbol3DLayer()
 *     material: {
 *       color: [244, 247, 134]
 *     },
 *     edges: {
 *       type: "solid", // autocasts as new SolidEdges3D()
 *       color: [50, 50, 50, 0.5],
 *       size: 1
 *     }
 *   }]
 * };
 */
export default class SolidEdges3D extends Edges3D {
  constructor(properties?: SolidEdges3DProperties);
  /** The symbol type. */
  readonly type: "solid";
  /**
   * Creates a deep clone of the object.
   *
   * @returns A deep clone of the object that
   *   invoked this method.
   */
  clone(): SolidEdges3D;
}