@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
522 lines (517 loc) • 28.7 kB
TypeScript
import type Collection from "../core/Collection.js";
import type CatalogLayer from "../layers/CatalogLayer.js";
import type KnowledgeGraphLayer from "../layers/KnowledgeGraphLayer.js";
import type MapImageLayer from "../layers/MapImageLayer.js";
import type TileLayer from "../layers/TileLayer.js";
import type CatalogLayerList from "./CatalogLayerList.js";
import type TableList from "./TableList.js";
import type Widget from "./Widget.js";
import type LayerListViewModel from "./LayerList/LayerListViewModel.js";
import type LayerListVisibleElements from "./LayerList/LayerListVisibleElements.js";
import type ListItem from "./LayerList/ListItem.js";
import type { Icon } from "@esri/calcite-components/components/calcite-icon";
import type { IdentifiableMixin, IdentifiableMixinProperties } from "../core/Identifiable.js";
import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
import type { CatalogLayerListProperties } from "./CatalogLayerList.js";
import type { TableListProperties } from "./TableList.js";
import type { WidgetProperties } from "./Widget.js";
import type { LayerListViewModelEvents, LayerListViewModelProperties } from "./LayerList/LayerListViewModel.js";
import type { Action, FilterPredicate, ListItemModifier, VisibilityAppearance } from "./LayerList/types.js";
import type { HeadingLevel } from "./support/types.js";
import type { LayerListVisibleElementsProperties } from "./LayerList/LayerListVisibleElements.js";
export interface LayerListProperties extends WidgetProperties, IdentifiableMixinProperties, Partial<Pick<LayerList, "catalogOptions" | "collapsed" | "dragEnabled" | "filterPlaceholder" | "filterPredicate" | "filterText" | "headingLevel" | "knowledgeGraphOptions" | "listItemCreatedFunction" | "minDragEnabledItems" | "minFilterItems" | "operationalItems" | "selectedItems" | "selectionMode" | "view" | "visibilityAppearance">> {
/**
* Icon which represents the widget. It is typically used when the widget is controlled by another
* one (e.g. in the Expand widget).
*
* @default "layers"
* @since 4.27
* @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/)
* @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/)
*/
icon?: Icon["icon"] | null;
/**
* The widget's default label.
*
* @since 4.7
*/
label?: string | null;
/**
* The view model for this widget. This is a class that contains all the logic
* (properties and methods) that controls this widget's behavior. See the
* [LayerListViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListViewModel/) class to access
* all properties and methods on the widget.
*/
viewModel?: LayerListViewModelProperties;
/**
* The visible elements that are displayed within the widget.
* This property provides the ability to turn individual elements of the widget's display on/off.
*
* @since 4.15
* @example
* layerList.visibleElements = {
* catalogLayerList: true,
* closeButton: false,
* collapseButton: true,
* errors: true,
* filter: true,
* heading: true,
* statusIndicators: true
* };
*/
visibleElements?: LayerListVisibleElementsProperties;
}
/**
* Represents a layer type that supports displaying associated tables within the LayerList.
*
* @see [openedLayers](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#openedLayers)
* @since 5.0
*/
export type SubtablesLayer = KnowledgeGraphLayer | MapImageLayer | TileLayer;
/**
* Represents a layer that can be displayed in a separate flow item within the LayerList.
*
* @see [openedLayers](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#openedLayers)
* @since 5.0
*/
export type FlowLayer = SubtablesLayer | CatalogLayer;
export interface LayerListEvents extends LayerListViewModelEvents {}
/**
* The LayerList widget provides a way to display a list of layers, and switch on/off their visibility.
* The [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) API provides access to each layer's properties, allows
* the developer to configure actions related to the layer, and allows the developer to add content to the item related to the layer.
*
* > [!WARNING]
* >
* > **Notes**
* >
* > The LayerList does not emit an event when the visibility of a layer changes. To respond to layer visibility changes,
* > watch the [Layer.visible](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#visible) property or the [Map.allLayers](https://developers.arcgis.com/javascript/latest/references/core/Map/#allLayers) property with [reactiveUtils](https://developers.arcgis.com/javascript/latest/references/core/core/reactiveUtils/).
* > To hide layers in the map from the LayerList widget, you must set the [Layer.listMode](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#listMode) property on the desired layers to `hide`.
* > When a [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/) is present in the map, the LayerList widget will display the
* > [KnowledgeGraphLayer.tables](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/#tables) as a [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList) [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/).
* > When a [CatalogLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/) is present in the map, the LayerList widget will display the
* > [CatalogLayer.dynamicGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#dynamicGroupLayer) in a [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList) [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/).
*
* @deprecated since version 5.0. Use the [Layer List](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list/) component instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
* @since 4.2
* @see [Sample - LayerList widget](https://developers.arcgis.com/javascript/latest/sample-code/widgets-layerlist/)
* @see [Sample - LayerList widget with actions](https://developers.arcgis.com/javascript/latest/sample-code/widgets-layerlist-actions/)
* @see [LayerListViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListViewModel/)
* @example
* const layerList = new LayerList({
* view: view
* });
* // Adds widget below other elements in the top left corner of the view
* view.ui.add(layerList, {
* position: "top-left"
* });
*/
export default class LayerList extends LayerListSuperclass {
/**
* @deprecated
* Do not directly reference this property.
* Use EventNames and EventTypes helpers from \@arcgis/core/Evented
*/
"@eventTypes": LayerListEvents;
/**
* @example
* // typical usage
* const layerlist = new LayerList({
* view
* });
*/
constructor(properties?: LayerListProperties);
/**
* The [CatalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/CatalogLayerList/) widget instance that displays a catalog layer's [dynamic group layer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#dynamicGroupLayer).
* The catalog layer list will be displayed as an expandable [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) in the LayerList widget.
* This property is set when a catalog layer's dynamic group layer is expanded in the LayerList.
* Otherwise, it is `null`.
* This list item will only be displayed when catalog layers are loaded in the map and will be displayed as a child of the catalog layer.
* This property is useful for listening to the [CatalogLayerList.@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/widgets/CatalogLayerList/#event-trigger-action) event and managing selections in catalog layers.
*
* 
*
* @since 4.30
* @see [catalogOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogOptions)
* @example
* // Use reactiveUtils to respond to the layerList.catalogLayerList "trigger-action" event
* reactiveUtils.on(
* () => layerList.catalogLayerList,
* "trigger-action",
* async (event) => {
* if (event.action.id === "add-layer") {
* // Get the parent catalog layer
* const parentCatalogLayer = catalogUtils.getCatalogLayerForLayer(event.item.layer);
* // Get the footprint from the parent catalog layer
* const footprint = parentCatalogLayer.createFootprintFromLayer(event.item.layer);
* // Get the layer from the footprint
* const layerFromFootprint = await parentCatalogLayer.createLayerFromFootprint(footprint);
* // Add the layer to the map
* map.add(layerFromFootprint);
* // back out of the catalog layer list to the main layer list
* layerList.openedLayers.pop();
* }
* }
* );
*
* // Use reactiveUtils to watch for a selected item in the layerList.catalogLayerList
* reactiveUtils.watch(
* () => layerList.catalogLayerList?.selectedItems.at(0)?.layer,
* (layer) => {
* // When a layer is selected log out its title
* if (layer) {
* console.log(layer.title);
* }
* }
* );
*/
get catalogLayerList(): CatalogLayerList | null | undefined;
/**
* [CatalogLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/) specific properties.
* Catalog layers will display their [CatalogLayer.dynamicGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#dynamicGroupLayer) as an expandable [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList) in the LayerList widget.
* This list item will only be displayed when catalog layers with dynamic group layers are loaded in the map.
* These are the properties that are used to configure the [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList).
*
* @since 4.30
* @see [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList)
* @example
* const layerList = new LayerList({
* catalogOptions: {
* listItemCreatedFunction: (event) => {
* const { item } = event;
* item.actionsSections = [
* [
* {
* title: "Add layer to map",
* icon: "add-layer",
* id: "add-layer"
* }
* ]
* ];
* },
* selectionMode: "single",
* visibleElements: {
* filter: true
* }
* },
* view,
* });
*/
accessor catalogOptions: CatalogLayerListProperties | null | undefined;
/**
* Indicates whether the widget is collapsed.
* When collapsed, only the collapse button and heading are displayed.
*
* @default false
* @since 4.29
* @see [visibleElements.collapseButton](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements)
* @example layerList.collapsed = true;
*/
accessor collapsed: boolean;
/**
* Indicates whether [list items](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) may be reordered within the list by dragging and dropping.
* MapImageLayer [MapImageLayer.sublayers](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/#sublayers) can be reordered only within their parent MapImageLayer and can not be dragged out as a separate layer.
* Drag won't be enabled until the number of list items is equal to or greater than than the value set set in [minDragEnabledItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#minDragEnabledItems).
*
* @default false
* @since 4.29
* @see [minDragEnabledItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#minDragEnabledItems)
* @example layerList.dragEnabled = true;
*/
accessor dragEnabled: boolean;
/**
* Placeholder text used in the filter input if [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements) is true.
*
* @default ""
* @since 4.29
* @see [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements)
* @example layerList.filterPlaceholder = "Filter layers";
*/
accessor filterPlaceholder: string;
/**
* Specifies a function to handle filtering [list items](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/).
*
* @since 4.32
* @example layerList.filterPredicate = (item) => item.title.toLowerCase().includes("streets");
*/
accessor filterPredicate: FilterPredicate | null | undefined;
/**
* The value of the filter input if [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements) is true.
*
* @default ""
* @since 4.29
* @see [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements)
* @example
* reactiveUtils.watch(
* () => layerList.filterText,
* (filterText) => console.log(filterText)
* );
*/
accessor filterText: string;
/**
* Indicates the heading level to use for the heading of the widget.
* By default, the heading is rendered as a level 2 heading (e.g., `<h2>Layer List</h2>`).
* Depending on the widget's placement in your app, you may need to adjust this heading for proper semantics.
* This is important for meeting accessibility standards.
*
* @default 2
* @since 4.29
* @see [visibleElements.heading](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements)
* @example layerList.headingLevel = 3;
*/
accessor headingLevel: HeadingLevel;
/**
* Icon which represents the widget. It is typically used when the widget is controlled by another
* one (e.g. in the Expand widget).
*
* @default "layers"
* @since 4.27
* @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/)
* @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/)
*/
get icon(): Icon["icon"];
set icon(value: Icon["icon"] | null | undefined);
/**
* [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/) specific properties.
* Knowledge graph layers will display [KnowledgeGraphLayer.tables](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/#tables)
* as an expandable [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList) in the LayerList widget.
* This tables list item will only be displayed when knowledge graph layers with tables are loaded in the map.
* These are the properties that are used to configure the [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList).
*
* @since 4.30
* @see [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList)
* @example
* layerList.knowledgeGraphOptions = {
* filterPlaceholder: "Filter tables",
* listItemCreatedFunction: (event) => {
* const { item } = event;
* item.actionsSections = [
* [
* {
* icon: "table",
* id: "open-table",
* title: "Show table"
* },
* {
* icon: "information",
* id: "information",
* title: "Show information"
* }
* ]
* ];
* },
* minFilterItems: 1,
* visibleElements: {
* errors: true,
* filter: true,
* statusIndicators: true
* }
* }
*/
accessor knowledgeGraphOptions: TableListProperties | null | undefined;
/**
* The widget's default label.
*
* @since 4.7
*/
get label(): string;
set label(value: string | null | undefined);
/**
* A function that executes each time a [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) is created.
* Use this function to add actions and panels to list items, and to override
* the default settings of a list item. Actions can be added to list items
* using the [ListItem.actionsSections](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/#actionsSections)
* property of the ListItem.
*
* @since 4.4
* @see [Sample - LayerList widget with actions](https://developers.arcgis.com/javascript/latest/sample-code/widgets-layerlist-actions/)
* @example
* let layerList = new LayerList({
* view: view,
* // executes for each ListItem in the LayerList
* listItemCreatedFunction: async function (event) {
*
* // The event object contains properties of the
* // layer in the LayerList widget.
*
* let item = event.item;
*
* // Wait for the layer to load and the item title to become available
* await item.layer.when();
*
* if (item.title === "US Demographics") {
* // open the list item in the LayerList
* item.open = true;
* // change the title to something more descriptive
* item.title = "Population by county";
* // set an action for zooming to the full extent of the layer
* item.actionsSections = [[{
* title: "Go to full extent",
* className: "esri-icon-zoom-out-fixed",
* id: "full-extent"
* }]];
* }
* }
* });
*/
accessor listItemCreatedFunction: ListItemModifier | null | undefined;
/**
* The minimum number of list items required to enable drag and drop reordering with [dragEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#dragEnabled).
*
* @default 2
* @since 4.29
* @see [dragEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#dragEnabled)
* @example
* layerList.dragEnabled = true;
* layerList.minDragEnabledItems = 5;
*/
accessor minDragEnabledItems: number;
/**
* The minimum number of list items required to display the [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListVisibleElements/) input box.
*
* @default 10
* @since 4.29
* @see [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListVisibleElements/)
* @example
* layerList.visibleElements.filter = true;
* layerList.minFilterItems = 5;
*/
accessor minFilterItems: number;
/**
* A collection of [Layer](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/)s that are opened
* in a [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList) or [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList) flow item.
* This property is useful for backing out of the catalog layer list or table list
* programmatically to the parent layer list.
*
* @default []
* @since 4.31
* @see [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList)
* @see [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList)
* @example
* // back out of the catalog layer list to the main layer list
* layerList.openedLayers.pop();
*/
get openedLayers(): Collection<FlowLayer>;
/**
* A collection of [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/)s representing operational layers.
* To hide layers from the LayerList widget, set the
* [Layer.listMode](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#listMode) property on the layer(s) to `hide`.
*
* @see [Layer.listMode](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#listMode)
*/
accessor operationalItems: Collection<ListItem>;
/**
* A collection of selected [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/)s representing operational layers
* selected by the user.
*
* @see [selectionMode](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#selectionMode)
*/
accessor selectedItems: Collection<ListItem>;
/**
* Specifies the selection mode.
* Selected items are available in the [selectedItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#selectedItems) property.
*
* | Value | Description |
* | ----- | ----------- |
* | multiple | Allows any number of items to be selected at once. This is useful when you want to apply an operation to multiple items at the same time. |
* | none | Disables selection. Use this when you want to prevent selecting items. |
* | single | Allows only one item to be selected at a time. If another item is selected, the previous selection is cleared. This is useful when you want to ensure that a maximum of one item is selected at a time. |
* | single-persist | Allows only one item to be selected at a time and prevents de-selection. Once an item is selected, it remains selected until another item is selected. This is useful when you want to ensure that there is always exactly one selected item. |
*
* @default "none"
* @since 4.29
* @see [selectedItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#selectedItems)
* @example layerList.selectionMode = "multiple";
*/
accessor selectionMode: "multiple" | "single" | "none" | "single-persist";
/**
* The [TableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/) widget instance that displays the tables associated with a [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/).
* The table list will be displayed as an expandable [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) in the LayerList widget.
* This property is set when a knowledge graph layer's tables [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) is expanded in the LayerList.
* Otherwise, it is `null`.
* This list item will only be displayed when knowledge graph layers with tables are loaded in the map and will be displayed as a child of the knowledge graph layer.
* This property is useful for listening to the [TableList.@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/#event-trigger-action) event and managing selections in knowledge graph tables.
*
* 
*
* @since 4.30
* @see [knowledgeGraphOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#knowledgeGraphOptions)
* @example
* // Use reactiveUtils to respond to the layerList.tableList "trigger-action" event
* reactiveUtils.on(
* () => layerList.tableList,
* "trigger-action",
* (event) => {
* if (event.action.id === "open-table") {
* // Open the table in the FeatureTable widget
* featureTable.layer = event.item.layer;
* // Back out of the table list to the layer list
* layerList.openedLayers.pop();
* }
* }
* );
*
* // Use reactiveUtils to watch for a selected item in the layerList.tableList
* reactiveUtils.watch(
* () => layerList.tableList?.selectedItems.at(0)?.layer,
* (layer) => {
* // When a layer is selected log out its title
* if (layer) {
* console.log(layer.title);
* }
* }
* );
*/
get tableList(): TableList | null | undefined;
/** A reference to the [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). Set this to link the widget to a specific view. */
accessor view: MapViewOrSceneView | null | undefined;
/**
* The view model for this widget. This is a class that contains all the logic
* (properties and methods) that controls this widget's behavior. See the
* [LayerListViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListViewModel/) class to access
* all properties and methods on the widget.
*/
get viewModel(): LayerListViewModel;
set viewModel(value: LayerListViewModelProperties);
/**
* Determines the icons used to indicate visibility.
*
* | Value | Description | Example |
* | ----- | ----------- | ------- |
* | default | Displays view icons on the far side. Icons are hidden except on hover or if they have keyboard focus. See [view-visible](https://developers.arcgis.com/calcite-design-system/icons/?icon=view-visible&library=Calcite%20UI&query=view) and [view-hide](https://developers.arcgis.com/calcite-design-system/icons/?icon=view-hide&library=Calcite%20UI&query=view) calcite icons. |  |
* | checkbox | Displays checkbox icons on the near side. See [check-square-f](https://developers.arcgis.com/calcite-design-system/icons/?icon=check-square-f&library=Calcite%20UI&query=check) and [square](https://developers.arcgis.com/calcite-design-system/icons/?icon=square&library=Calcite%20UI&query=square) calcite icons. |  |
*
* @default "default"
* @since 4.29
* @example layerList.visibilityAppearance = "checkbox";
*/
accessor visibilityAppearance: VisibilityAppearance;
/**
* The visible elements that are displayed within the widget.
* This property provides the ability to turn individual elements of the widget's display on/off.
*
* @since 4.15
* @example
* layerList.visibleElements = {
* catalogLayerList: true,
* closeButton: false,
* collapseButton: true,
* errors: true,
* filter: true,
* heading: true,
* statusIndicators: true
* };
*/
get visibleElements(): LayerListVisibleElements;
set visibleElements(value: LayerListVisibleElementsProperties);
/**
* Triggers the [@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#event-trigger-action) event and executes
* the given [action](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionButton/) or [action toggle](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionToggle/).
*
* @param action - The action to execute.
* @param item - An item associated with the action.
*/
triggerAction(action: Action, item: ListItem): void;
}
declare const LayerListSuperclass: typeof Widget & typeof IdentifiableMixin