import type Accessor from "../../core/Accessor.js";

/** @since 5.0 */
export interface DirectionsVisibleElementsProperties extends Partial<Pick<DirectionsVisibleElements, "editRouteButton" | "layerDetails" | "printButton" | "saveAsButton" | "saveButton">> {}

/**
 * The visible elements that are displayed within the widget.
 * This provides the ability to turn individual elements of the widget's display on/off.
 *
 * @since 5.0
 */
export default class DirectionsVisibleElements extends Accessor {
  constructor(properties?: DirectionsVisibleElementsProperties);
  /**
   * Indicates whether to the Edit Route button will be displayed. Default is `true`.
   *
   * @default true
   * @since 5.0
   */
  accessor editRouteButton: boolean;
  /**
   * Indicates whether to a link to the route layer portal-item (if any) will be displayed. Default is `true`.
   *
   * @default true
   * @since 5.0
   */
  accessor layerDetails: boolean;
  /**
   * (_beta_) Indicates whether to the Print button will be displayed. Default is `true`.
   *
   * @default true
   * @since 5.0
   */
  accessor printButton: boolean;
  /**
   * Indicates whether to the Save As button will be displayed. Default is `true`.
   *
   * @default true
   * @since 5.0
   */
  accessor saveAsButton: boolean;
  /**
   * Indicates whether to the Save button will be displayed. Default is `true`.
   *
   * @default true
   * @since 5.0
   */
  accessor saveButton: boolean;
}