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

/** @since 5.0 */
export interface BookmarksVisibleElementsProperties extends Partial<Pick<BookmarksVisibleElements, "addBookmarkButton" | "closeButton" | "collapseButton" | "editBookmarkButton" | "filter" | "flow" | "heading" | "thumbnail" | "time">> {}

/**
 * The visible elements that are displayed within the widget.
 * This provides the ability to turn individual elements of the widget's display on/off.
 *
 * ![bookmarks-visibleElements](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/bookmarks-visibleElements.avif)
 *
 * @since 5.0
 */
export default class BookmarksVisibleElements extends Accessor {
  constructor(properties?: BookmarksVisibleElementsProperties);
  /**
   * Indicates whether the button to add a new bookmark displays.
   *
   * @default false
   * @since 5.0
   */
  accessor addBookmarkButton: boolean;
  /**
   * Indicates whether to display a close button at the top of the widget.
   *
   * @default false
   * @since 5.0
   */
  accessor closeButton: boolean;
  /**
   * Indicates whether to display a collapse button at the top of the widget.
   *
   * @default false
   * @since 5.0
   */
  accessor collapseButton: boolean;
  /**
   * Indicates whether the button to edit a bookmark displays.
   *
   * @default false
   * @since 5.0
   */
  accessor editBookmarkButton: boolean;
  /**
   * Indicates whether the bookmarks filter displays.
   *
   * @default false
   * @since 5.0
   */
  accessor filter: boolean;
  /**
   * Determines whether the widget should be shown within its built-in [flow component](https://developers.arcgis.com/calcite-design-system/components/flow/) or if the flow component should be excluded. The widget will be displayed within its original flow component if set to `true`. The flow component will be omitted from the widget if set to `false`. To place the widget into an existing Calcite flow component, set this property to `false`.
   *
   * @default true
   * @since 5.0
   */
  accessor flow: boolean;
  /**
   * Indicates whether to display the widget heading. The heading text is "Bookmarks".
   *
   * @default false
   * @since 5.0
   */
  accessor heading: boolean;
  /**
   * Indicates whether the thumbnail associated with the bookmark displays.
   *
   * @default true
   * @since 5.0
   */
  accessor thumbnail: boolean;
  /**
   * Indicates whether the time (`h:m:s`) is displayed alongside the date if the bookmark has a [time extent](https://developers.arcgis.com/javascript/latest/references/core/webmap/Bookmark/#timeExtent) defined.
   *
   * @default true
   * @since 5.0
   */
  accessor time: boolean;
}