# Class GroupLayerExtension<TProps, TLayer, TColl>

Extends the capabilities of an Esri GroupLayer object.

#### Type Parameters

- TProps extends LayerExtensionProperties = LayerExtensionProperties
- TLayer extends LayerExtension<TProps> = LayerExtension<TProps>
- TColl extends GroupLayerExtensionCollection<TProps, TLayer> = GroupLayerExtensionCollection<TProps, TLayer>

#### Hierarchy (view full)

- LayerExtension<GroupLayerExtensionProperties>
  - GroupLayerExtension

#####
Index

### Constructors

constructor

### Properties

_handles
_id
_itemType
_layerExtensions
@eventTypes
allSublayerExtensions
iconUrl?
layerListSettings
onAddFeature?
onEditFeature?
queryService?
tpkSource
factory

### Accessors

basemapExtension
canChangeDefinitionExpression
canChangeLabels
canChangeOpacity
canChangeRenderer
canChangeScale
capabilities
dynamicallyAddedLayer
effectiveFullExtent
effectiveMaxScale
effectiveMinScale
failureMode
featureActions
featureSettings
featureSourceActions
groundExtension
hasFeatures
hyperlinks
id
initialDefinitionExpression
initialRenderer
initialVisibility
isDestroyed
isEffectivelyVisible
isInitialized
itemType
layer
layerExtensions
mapExtension
parentLayerExtension
relationships
renderer
requestHelper
schema
sublayerExtensions
sublayersAreReadOnly
supportsSublayers
taskSettings
title
visibilityMode

### Methods

_addAttachment
_addFeatures
_applyLayerProperties
_applyPortalItemProperties
_capabilities
_createFeatureSettings
_createHyperlinks
_createLayer
_createLayerExtensionCollection
_createLayerListSettings
_createRelationships
_createSchema
_createSublayerExtension
_createSublayerExtensionCollection
_createTaskSettings
_deleteAttachments
_deleteFeatures
_getAttachments
_getFeatures
_getSerializableLayerType
_getSerializableProperties
_getSerializableRefLayerProperties
_initializableChildCollections
_initializeChildren
_initializeLayer
_isRelationship
_isSupportedLayer
_onDestroy
_onInitialize
_onLayerAddedPostInitialize
_onSublayerAddedPostInitialize
_postInitialize
_toPropertyDef
_updateFeatures
addAttachment
addFeature
addFeatures
assignProperties
assignPropertiesAsync
deleteAttachments
deleteFeature
deleteFeatures
destroy
finishAssignProperties
getAttachments
getDefault
getDefaults
getFeature
getFeatures
getFullExtent
getSerializableProperties
initialize
toItemUri
toJSON
updateFeature
updateFeatures
create
fromPortalItem

##
Constructors

### constructor

- new GroupLayerExtension<TProps, TLayer, TColl>(properties?): GroupLayerExtension<TProps, TLayer, TColl>

- Creates a new instance of GroupLayerExtension.

  #### Type Parameters

  - TProps extends LayerExtensionProperties = LayerExtensionProperties
  - TLayer extends LayerExtension<TProps> = LayerExtension<TProps>
  - TColl extends GroupLayerExtensionCollection<TProps, TLayer> = GroupLayerExtensionCollection<TProps, TLayer>

  #### Parameters

  - `Optional` properties: GroupLayerExtensionProperties

    An object containing initial property values to set.

  #### Returns GroupLayerExtension<TProps, TLayer, TColl>

  Overrides LayerExtension.constructor

##
Properties

### `Protected` `Readonly`_handles

_handles: Handles<unknown, ResourceHandle>

Inherited from LayerExtension._handles

### `Protected`_id

_id: string

The unique ID for this entity. Once set, this should never change.

Inherited from LayerExtension._id

### `Protected` `Readonly`_itemType

_itemType: string = ItemType.LAYER_EXTENSION

The item type for this entity when it participates in an App.

Inherited from LayerExtension._itemType

### `Protected` `Readonly`_layerExtensions

_layerExtensions: TColl

The collection of layer extensions contained within the group.

### @eventTypes

@eventTypes: InitializableBaseEvents

#### Deprecated

Do not directly reference this property. Use EventNames and EventTypes helpers from @arcgis/core/Evented.

Inherited from LayerExtension.@eventTypes

### `Readonly` allSublayerExtensions

allSublayerExtensions: SublayerExtensionCollection

All descendant sublayer extensions associated with this layer.

Inherited from LayerExtension.allSublayerExtensions

### `Optional` iconUrl

iconUrl?: string

URL to an icon that represents this feature source.

Inherited from LayerExtension.iconUrl

### `Readonly` layerListSettings

layerListSettings: LayerListSettings

Settings that affect the behavior and presentation of the layer in the layer list.

Inherited from LayerExtension.layerListSettings

### `Optional` onAddFeature

onAddFeature?: Action

The action to be executed when a feature is added.

Inherited from LayerExtension.onAddFeature

### `Optional` onEditFeature

onEditFeature?: Action

The action to be executed when a feature is edited.

Inherited from LayerExtension.onEditFeature

### `Optional` queryService

queryService?: QueryService

An optional query service that the feature source can use to get features.

Inherited from LayerExtension.queryService

### tpkSource

tpkSource: string

An optional remote source for a .tpk, .tpkx or .vtpk file. May be a portal item URL or a portal item ID. Mobile Only.

Inherited from LayerExtension.tpkSource

### `Static` factory

factory: LayerExtensionFactory

The factory that will be used whenever a new layer extension needs to be created. Applications can supply their own factory to customize layer extension creation.

Inherited from LayerExtension.factory

##
Accessors

### basemapExtension

- get basemapExtension(): BasemapExtension<BasemapExtensionProperties>

- The parent basemap extension if the extended layer is a layer in a basemap.

  #### Returns BasemapExtension<BasemapExtensionProperties>

  Inherited from LayerExtension.basemapExtension

### canChangeDefinitionExpression

- get canChangeDefinitionExpression(): boolean

- Determines whether the type of layer being extended supports changing its definition expression.

  #### Returns boolean

  Inherited from LayerExtension.canChangeDefinitionExpression

### canChangeLabels

- get canChangeLabels(): boolean

- Determines whether the type of layer being extended supports changing labels. Default is false.

  #### Returns boolean

  Inherited from LayerExtension.canChangeLabels

### canChangeOpacity

- get canChangeOpacity(): boolean

- Determines whether the type of layer being extended supports changing opacity.

  #### Returns boolean

  Inherited from LayerExtension.canChangeOpacity

### canChangeRenderer

- get canChangeRenderer(): boolean

- Determines whether the type of layer being extended supports changing its renderer.

  #### Returns boolean

  Inherited from LayerExtension.canChangeRenderer

### canChangeScale

- get canChangeScale(): boolean

- Determines whether the type of layer being extended supports changing Scale.

  #### Returns boolean

  Inherited from LayerExtension.canChangeScale

### capabilities

- get capabilities(): QuerySourceCapabilities

- Capabilities of the feature source.

  #### Returns QuerySourceCapabilities

  Inherited from LayerExtension.capabilities

### dynamicallyAddedLayer

- get dynamicallyAddedLayer(): boolean

- Indicates that the layer was added dynamically.

  #### Returns boolean

  Inherited from LayerExtension.dynamicallyAddedLayer

- set dynamicallyAddedLayer(value): void

- #### Parameters

  - value: boolean

  #### Returns void

  Inherited from LayerExtension.dynamicallyAddedLayer

### effectiveFullExtent

- get effectiveFullExtent(): Extent

- The effective full extent of this layer extension.

  #### Returns Extent

  Overrides LayerExtension.effectiveFullExtent

### effectiveMaxScale

- get effectiveMaxScale(): number

- The effective max scale for this layer extension.

  #### Returns number

  Overrides LayerExtension.effectiveMaxScale

### effectiveMinScale

- get effectiveMinScale(): number

- The effective min scale for this layer extension.

  #### Returns number

  Overrides LayerExtension.effectiveMinScale

### failureMode

- get failureMode(): FailureMode

- Determines how a parent object should handle initialization failure in this object. The default is "warn".

  - `"error"`: support/InitializeError!InitializeError is thrown.
  - `"warn"`: Message is logged and support/InitializableBase!InitializeWarningEvent is raised.
  - `"ignore"`: support/InitializableBase!InitializeWarningEvent is raised.

  #### Returns FailureMode

  Inherited from LayerExtension.failureMode

- set failureMode(value): void

- #### Parameters

  - value: FailureMode

  #### Returns void

  Inherited from LayerExtension.failureMode

### featureActions

- get featureActions(): Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

- A menu for actions specifically related to features from this source.

  #### Returns Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  Inherited from LayerExtension.featureActions

- set featureActions(value): void

- A menu for actions specifically related to features from this source.

  #### Parameters

  - value: Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  #### Returns void

  Inherited from LayerExtension.featureActions

### featureSettings

- get featureSettings(): FeatureSettings

- Default settings that apply to features originating from this source.

  #### Returns FeatureSettings

  Inherited from LayerExtension.featureSettings

### featureSourceActions

- get featureSourceActions(): Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

- A menu for actions specifically related to this source.

  #### Returns Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  Inherited from LayerExtension.featureSourceActions

- set featureSourceActions(value): void

- A menu for actions specifically related to this source.

  #### Parameters

  - value: Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  #### Returns void

  Inherited from LayerExtension.featureSourceActions

### groundExtension

- get groundExtension(): GroundExtension

- The parent ground extension if the extended layer is an elevation layer in a ground object.

  #### Returns GroundExtension

  Inherited from LayerExtension.groundExtension

### hasFeatures

- get hasFeatures(): boolean

- Determines whether this type of layer is capable of producing features.

  #### Returns boolean

  Inherited from LayerExtension.hasFeatures

### hyperlinks

- get hyperlinks(): Collection<Hyperlink>

- Hyperlinks associated with the feature source.

  #### Returns Collection<Hyperlink>

  Inherited from LayerExtension.hyperlinks

### id

- get id(): string

- The unique ID for this entity.

  #### Returns string

  Inherited from LayerExtension.id

### initialDefinitionExpression

- get initialDefinitionExpression(): string

- String value containing the initial definition expression configured on the layer.

  #### Returns string

  Inherited from LayerExtension.initialDefinitionExpression

### initialRenderer

- get initialRenderer(): RendererUnion

- A clone of the initial renderer, if any, that the ESRI layer uses to display data on the map.

  #### Returns RendererUnion

  Inherited from LayerExtension.initialRenderer

### initialVisibility

- get initialVisibility(): boolean

- Indicates the initial layer visibility.

  #### Returns boolean

  Inherited from LayerExtension.initialVisibility

### isDestroyed

- get isDestroyed(): boolean

- See support/InitializableBase!Initializable.isDestroyed.

  #### Returns boolean

  Inherited from LayerExtension.isDestroyed

### isEffectivelyVisible

- get isEffectivelyVisible(): boolean

- The effective visibility for this layer extension.

  #### Returns boolean

  Inherited from LayerExtension.isEffectivelyVisible

### isInitialized

- get isInitialized(): boolean

- See support/InitializableBase!Initializable.isInitialized.

  #### Returns boolean

  Inherited from LayerExtension.isInitialized

### itemType

- get itemType(): string

- The item type for this entity when it participates in an App.

  #### Returns string

  Inherited from LayerExtension.itemType

### layer

- get layer(): GroupLayer

- The Esri `Layer` object being extended.

  #### Returns GroupLayer

  Overrides LayerExtension.layer

### layerExtensions

- get layerExtensions(): TColl

- The layer extensions associated with each layer of the group layer.

  #### Returns TColl

### mapExtension

- get mapExtension(): MapExtension

- The parent map extension.

  #### Returns MapExtension

  Inherited from LayerExtension.mapExtension

### parentLayerExtension

- get parentLayerExtension(): LayerExtension<LayerExtensionProperties>

- The parent layer extension if the extended layer is in a group layer.

  #### Returns LayerExtension<LayerExtensionProperties>

  Inherited from LayerExtension.parentLayerExtension

### relationships

- get relationships(): Collection<Relationship>

- Relationships to other feature sources.

  #### Returns Collection<Relationship>

  Inherited from LayerExtension.relationships

### renderer

- get renderer(): RendererUnion

- The renderer, if any, that the ESRI layer uses to display data on the map.

  #### Returns RendererUnion

  Inherited from LayerExtension.renderer

### requestHelper

- get requestHelper(): ArcGISRequestHelper

- The utilities/RequestHelper!RequestHelper to use when making requests to external services. If not specified, a default implementation will be used.

  #### Returns ArcGISRequestHelper

  Inherited from LayerExtension.requestHelper

- set requestHelper(value): void

- #### Parameters

  - value: ArcGISRequestHelper

  #### Returns void

  Inherited from LayerExtension.requestHelper

### schema

- get schema(): Schema

- Metadata about features originating from this source, such as fields, domains, and geometry type.

  #### Returns Schema

  Inherited from LayerExtension.schema

### sublayerExtensions

- get sublayerExtensions(): SublayerExtensionCollection

- The sublayer extensions associated with each sublayer of this layer.

  #### Returns SublayerExtensionCollection

  Inherited from LayerExtension.sublayerExtensions

### sublayersAreReadOnly

- get sublayersAreReadOnly(): boolean

- Determines whether the type of layer being extended has a readonly sublayer collection.

  #### Returns boolean

  Inherited from LayerExtension.sublayersAreReadOnly

### supportsSublayers

- get supportsSublayers(): boolean

- Determines whether this type of layer is capable of having sublayers.

  #### Returns boolean

  Overrides LayerExtension.supportsSublayers

### taskSettings

- get taskSettings(): TaskSettings

- Settings that affect whether a feature source participates in various tasks that are performed on a map.

  #### Returns TaskSettings

  Inherited from LayerExtension.taskSettings

### title

- get title(): string

- See data/FeatureSource!FeatureSource.title.

  #### Returns string

  Inherited from LayerExtension.title

### visibilityMode

- get visibilityMode(): GroupLayerVisibilityMode

- Indicates how to manage the visibility of the children layers or sublayers.

  #### Returns GroupLayerVisibilityMode

  Overrides LayerExtension.visibilityMode

- set visibilityMode(value): void

- Indicates how to manage the visibility of the children layers or sublayers.

  #### Parameters

  - value: GroupLayerVisibilityMode

  #### Returns void

  Overrides LayerExtension.visibilityMode

##
Methods

### `Protected`_addAttachment

- _addAttachment(feature, attachment): Promise<Attachment>

- Called to add an attachment to a feature. Subclasses must override this if they support feature attachments.

  #### Parameters

  - feature: Feature

    The feature to add the attachment to.

  - attachment: AttachmentProperties | Attachment | File

    The attachment to add to the feature.

  #### Returns Promise<Attachment>

  Inherited from LayerExtension._addAttachment

### `Protected`_addFeatures

- _addFeatures(features, options?): Promise<void>

- Called to add new features. Subclasses must override this if they support adding features.

  #### Parameters

  - features: Iterable<Feature, any, any>

    The features to add.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Inherited from LayerExtension._addFeatures

### `Protected`_applyLayerProperties

- _applyLayerProperties(properties, layer): Promise<void>

- Called to apply layer properties to a layer.

  #### Parameters

  - properties: LayerProperties

    The layer properties to apply.

  - layer: Layer

    The layer to apply properties to.

  #### Returns Promise<void>

  Inherited from LayerExtension._applyLayerProperties

### `Protected`_applyPortalItemProperties

- _applyPortalItemProperties(portalItem): void | Promise<void>

- Apply properties from a portal item to an ESRI API Layer object.

  #### Parameters

  - portalItem: PortalItem

    The portal item to apply.

  #### Returns void | Promise<void>

  Inherited from LayerExtension._applyPortalItemProperties

### `Protected`_capabilities

- _capabilities(): QuerySourceCapabilities

- The capabilities of the feature source.

  #### Returns QuerySourceCapabilities

  Inherited from LayerExtension._capabilities

### `Protected`_createFeatureSettings

- _createFeatureSettings(): FeatureSettings

- Called to create the data/FeatureSettings!FeatureSettings for this feature source.

  #### Returns FeatureSettings

  Inherited from LayerExtension._createFeatureSettings

### `Protected`_createHyperlinks

- _createHyperlinks(): Collection<Hyperlink>

- Called to create the Hyperlink collection for this feature source.

  #### Returns Collection<Hyperlink>

  Inherited from LayerExtension._createHyperlinks

### `Protected`_createLayer

- _createLayer(properties): Promise<Layer>

- Called to create an Esri layer from layer properties.

  #### Parameters

  - properties: LayerProperties

    The initial layer properties to apply.

  #### Returns Promise<Layer>

  Inherited from LayerExtension._createLayer

### `Protected`_createLayerExtensionCollection

- _createLayerExtensionCollection(): TColl

- Creates a GroupLayerExtensionCollection.

  #### Returns TColl

### `Protected`_createLayerListSettings

- _createLayerListSettings(properties): LayerListSettings

- Called to create the mapping/support/LayerListSettings!LayerListSettings for this layer extension.

  #### Parameters

  - properties: LayerListSettingsProperties

    Initial properties for the layer list settings.

  #### Returns LayerListSettings

  Overrides LayerExtension._createLayerListSettings

### `Protected`_createRelationships

- _createRelationships(): Collection<Relationship>

- Called to create the data/_Relationship!Relationship collection for this feature source.

  #### Returns Collection<Relationship>

  Inherited from LayerExtension._createRelationships

### `Protected`_createSchema

- _createSchema(properties?): Schema

- Called to create the data/Schema!Schema for this feature source.

  #### Parameters

  - `Optional` properties: SchemaProperties

    Initial properties for the schema.

  #### Returns Schema

  Inherited from LayerExtension._createSchema

### `Protected`_createSublayerExtension

- _createSublayerExtension(properties?): SublayerExtension<SublayerExtensionProperties>

- Called to create a child sublayer extension. Must be overridden by layer extensions that support sublayers.

  #### Parameters

  - `Optional` properties: SublayerExtensionProperties

    Properties used to initialize the sublayer extension.

  #### Returns SublayerExtension<SublayerExtensionProperties>

  Inherited from LayerExtension._createSublayerExtension

### `Protected`_createSublayerExtensionCollection

- _createSublayerExtensionCollection(): SublayerExtensionCollectionBase

- Called to create the mapping/support/_SublayerExtensionCollection!SublayerExtensionCollection for this layer extension.

  #### Returns SublayerExtensionCollectionBase

  Inherited from LayerExtension._createSublayerExtensionCollection

### `Protected`_createTaskSettings

- _createTaskSettings(): TaskSettings

- Called to create the data/TaskSettings!TaskSettings for this feature source.

  #### Returns TaskSettings

  Inherited from LayerExtension._createTaskSettings

### `Protected`_deleteAttachments

- _deleteAttachments(feature, attachments): Promise<void>

- Called to remove attachments from a feature. Subclasses must override this if they support feature attachments.

  #### Parameters

  - feature: Feature

    The feature to delete attachments from.

  - attachments: (string | Attachment)[]

    The attachments or the IDs of the attachments to delete.

  #### Returns Promise<void>

  Inherited from LayerExtension._deleteAttachments

### `Protected`_deleteFeatures

- _deleteFeatures(ids, options?): Promise<void>

- Called to delete features. Subclasses must override this if they support deleting features.

  #### Parameters

  - ids: string[]

    The IDs of the features to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from LayerExtension._deleteFeatures

### `Protected`_getAttachments

- _getAttachments(feature): Promise<Attachment[]>

- Called to retrieve attachments for a feature. Subclasses must override this if they support feature attachments.

  #### Parameters

  - feature: Feature

    The feature to get attachments for.

  #### Returns Promise<Attachment[]>

  Inherited from LayerExtension._getAttachments

### `Protected`_getFeatures

- _getFeatures(ids, options?): AsyncIterable<Feature, any, any>

- Called to retrieve features. Subclasses must override this if they support querying for features.

  #### Parameters

  - ids: string[]

    The unique IDs of features to retrieve.

  - `Optional` options: FeatureReadOptions

    Options that control what gets returned.

  #### Returns AsyncIterable<Feature, any, any>

  Inherited from LayerExtension._getFeatures

### `Protected`_getSerializableLayerType

- _getSerializableLayerType(): string

- Overridden in child sublayer extensions that need to add an layerType ref properties.

  #### Returns string

  Inherited from LayerExtension._getSerializableLayerType

### `Protected`_getSerializableProperties

- _getSerializableProperties(): PropertyDefs<GroupLayerExtensionProperties>

- The property keys and their metadata that are used to implement serializing and deserializing the class instance.

  #### Returns PropertyDefs<GroupLayerExtensionProperties>

  Overrides LayerExtension._getSerializableProperties

### `Protected`_getSerializableRefLayerProperties

- _getSerializableRefLayerProperties(): Record<string, unknown>

- Overridden in child sublayer extensions that need to add additional properties when serializing layer references.

  #### Returns Record<string, unknown>

  Inherited from LayerExtension._getSerializableRefLayerProperties

### `Protected`_initializableChildCollections

- _initializableChildCollections(): IterableIterator<Collection<InitializableBase<InitializableBaseProperties>>, any, any>

- Collections of child items to initialize. Items that fail to initialize are removed from the collection.

  #### Returns IterableIterator<Collection<InitializableBase<InitializableBaseProperties>>, any, any>

  Overrides LayerExtension._initializableChildCollections

### `Protected`_initializeChildren

- _initializeChildren(): Promise<void>

- Initializes child entities.

  #### Returns Promise<void>

  Inherited from LayerExtension._initializeChildren

### `Protected`_initializeLayer

- _initializeLayer(): Promise<void>

- Called prior to loading the layer in order to perform any extra initialization.

  #### Returns Promise<void>

  Inherited from LayerExtension._initializeLayer

### `Protected`_isRelationship

- _isRelationship(relationship): boolean

- #### Parameters

  - relationship: Relationship | RelationshipProperties

  #### Returns boolean

  Inherited from LayerExtension._isRelationship

### `Protected`_isSupportedLayer

- _isSupportedLayer(layer): boolean

- Determines whether the layer is of the right type for the type of layer extension.

  #### Parameters

  - layer: Layer

    The layer to validate.

  #### Returns boolean

  Overrides LayerExtension._isSupportedLayer

### `Protected`_onDestroy

- _onDestroy(): Promise<void>

- Called to perform cleanup. Subclasses should override this method rather than destroy() to perform custom cleanup.

  #### Returns Promise<void>

  Overrides LayerExtension._onDestroy

### `Protected`_onInitialize

- _onInitialize(): Promise<void>

- Called to perform initialization of the support/InitializableBase!InitializableBase. Subclasses should override this method rather than initialize() to perform custom initialization.

  #### Returns Promise<void>

  Overrides LayerExtension._onInitialize

### `Protected`_onLayerAddedPostInitialize

- _onLayerAddedPostInitialize(layerX): Promise<void>

- A callback executed when a layer is added as a child of the LayerExtension, after the LayerExtension has been initialized.

  #### Parameters

  - layerX: LayerExtension<LayerExtensionProperties>

    The layer that was added.

  #### Returns Promise<void>

### `Protected` `Readonly`_onSublayerAddedPostInitialize

- _onSublayerAddedPostInitialize(sublayerX): Promise<void>

- A callback executed when a sublayer is added as a child of the LayerExtension, after the LayerExtension has been initialized.

  #### Parameters

  - sublayerX: SublayerExtension<SublayerExtensionProperties>

    The sublayer that was added.

  #### Returns Promise<void>

  Inherited from LayerExtension._onSublayerAddedPostInitialize

### `Protected`_postInitialize

- _postInitialize(): Promise<void>

- Called after normal initialization. Note: Child items are initialized before this is called.

  #### Returns Promise<void>

  Overrides LayerExtension._postInitialize

### `Protected`_toPropertyDef

- _toPropertyDef<T>(def): PropertyDef<T>

- Converts the value to a PropertyDef object.

  #### Type Parameters

  - T

  #### Parameters

  - def: PropertyDefSerializeMode | PropertyDefSerializeMode[] | PropertyDef<T>

    The value to convert.

  #### Returns PropertyDef<T>

  Inherited from LayerExtension._toPropertyDef

### `Protected`_updateFeatures

- _updateFeatures(features, options?): Promise<void>

- Called to update features. Subclasses must override this if they support updating features.

  #### Parameters

  - features: Iterable<Feature, any, any>

    The feature to update.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Inherited from LayerExtension._updateFeatures

### addAttachment

- addAttachment(feature, attachment): Promise<Attachment>

- Adds an attachment to a feature.

  #### Parameters

  - feature: Feature

    The feature to add the attachment to.

  - attachment: AttachmentProperties | Attachment | File

    The attachment to add to the feature.

  #### Returns Promise<Attachment>

  Inherited from LayerExtension.addAttachment

### addFeature

- addFeature(feature, _options?): Promise<void>

- Adds a new feature to the source. If the source does not support adding features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - feature: Feature

    The feature to add.

  - `Optional`_options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Inherited from LayerExtension.addFeature

### addFeatures

- addFeatures(features, options?): Promise<void>

- Adds a set of features to the source. If the source does not support adding features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - features: FeatureSet

    The features to add.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are saved.

  #### Returns Promise<void>

  Inherited from LayerExtension.addFeatures

### assignProperties

- assignProperties(properties): void

- #### Parameters

  - properties: Partial<GroupLayerExtensionProperties>

  #### Returns void

  #### Inherit Doc

  Inherited from LayerExtension.assignProperties

### assignPropertiesAsync

- assignPropertiesAsync(properties): Promise<void>

- #### Parameters

  - properties: Partial<GroupLayerExtensionProperties>

  #### Returns Promise<void>

  #### Inherit Doc

  Inherited from LayerExtension.assignPropertiesAsync

### deleteAttachments

- deleteAttachments(feature, attachments): Promise<void>

- Deletes attachments from a feature.

  #### Parameters

  - feature: Feature

    The feature to delete attachments from.

  - attachments: (string | Attachment)[]

    The attachments or the IDs of the attachments to delete from the feature.

  #### Returns Promise<void>

  Inherited from LayerExtension.deleteAttachments

### deleteFeature

- deleteFeature(id, options?): Promise<void>

- Deletes a feature from its source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - id: string

    The ID of the feature to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from LayerExtension.deleteFeature

- deleteFeature(feature, options?): Promise<void>

- Deletes a feature from its source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - feature: Feature

    The feature to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from LayerExtension.deleteFeature

### deleteFeatures

- deleteFeatures(ids, options?): Promise<void>

- Deletes features from their source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - ids: string[]

    The IDs of the features to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from LayerExtension.deleteFeatures

- deleteFeatures(features, options?): Promise<void>

- Deletes features from their source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - features: Iterable<Feature, any, any>

    The features to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from LayerExtension.deleteFeatures

### destroy

- destroy(): Promise<void>

- A clean-up function that should get called whenever the item is disposed of.

  #### Returns Promise<void>

  Inherited from LayerExtension.destroy

### finishAssignProperties

- finishAssignProperties(): Promise<void>

- #### Returns Promise<void>

  #### Inherit Doc

  Inherited from LayerExtension.finishAssignProperties

### getAttachments

- getAttachments(feature): Promise<Attachment[]>

- Gets any attachments associated with a feature.

  #### Parameters

  - feature: Feature

    The feature to get attachments for.

  #### Returns Promise<Attachment[]>

  Inherited from LayerExtension.getAttachments

### getDefault

- getDefault<K>(key): GroupLayerExtensionProperties[K]

- #### Type Parameters

  - K extends keyof GroupLayerExtensionProperties

  #### Parameters

  - key: K

  #### Returns GroupLayerExtensionProperties[K]

  #### Inherit Doc

  Inherited from LayerExtension.getDefault

### getDefaults

- getDefaults(): GroupLayerExtensionProperties

- #### Returns GroupLayerExtensionProperties

  #### Inherit Doc

  Inherited from LayerExtension.getDefaults

### getFeature

- getFeature(id, options?): Promise<Feature>

- Gets a feature by ID. If no such feature exists, the promise is rejected with an instance of NotFoundError.

  #### Parameters

  - id: string

    The ID of the feature to retrieve.

  - `Optional` options: FeatureReadOptions

    Additional options that control how the feature is retrieved.

  #### Returns Promise<Feature>

  Inherited from LayerExtension.getFeature

### getFeatures

- getFeatures(ids, options?): AsyncIterable<Feature, any, any>

- Gets a set of features by their IDs.

  #### Parameters

  - ids: string[]

    The IDs of the features to retrieve.

  - `Optional` options: FeatureReadOptions

    Additional Options that control how the features are retrieved.

  #### Returns AsyncIterable<Feature, any, any>

  Inherited from LayerExtension.getFeatures

### getFullExtent

- getFullExtent(): Extent

- Returns the full extent of the source that contains all included features.

  #### Returns Extent

  Inherited from LayerExtension.getFullExtent

### getSerializableProperties

- getSerializableProperties(serializeMode?): PropertyDefs<GroupLayerExtensionProperties>

- Returns the serializable properties.

  #### Parameters

  - `Optional` serializeMode: SerializeMode

    Optional. If specified, only properties that support the given serialization mode will be returned.

  #### Returns PropertyDefs<GroupLayerExtensionProperties>

  Inherited from LayerExtension.getSerializableProperties

### initialize

- initialize(): Promise<void>

- Initializes the item.

  #### Returns Promise<void>

  Inherited from LayerExtension.initialize

### toItemUri

- toItemUri(): string

- Creates an item:// URI reference to this entity.

  #### Returns string

  Inherited from LayerExtension.toItemUri

### toJSON

- toJSON(serializeMode?): GroupLayerExtensionProperties

- #### Parameters

  - serializeMode: SerializeMode = "all"

  #### Returns GroupLayerExtensionProperties

  #### Inherit Doc

  Inherited from LayerExtension.toJSON

### updateFeature

- updateFeature(feature, _options?): Promise<void>

- Saves changes to an existing feature. If the source does not support updating features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - feature: Feature

    The feature to update.

  - `Optional`_options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Inherited from LayerExtension.updateFeature

### updateFeatures

- updateFeatures(features, options?): Promise<void>

- Saves changes to a existing features. If the source does not support updating features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - features: FeatureSet

    The features to update.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are saved.

  #### Returns Promise<void>

  Inherited from LayerExtension.updateFeatures

### `Static` create

- create(properties): LayerExtension<LayerExtensionProperties>

- Creates the appropriate subclass of mapping/_LayerExtension!LayerExtension based on the supplied properties. Applications can customize the default creation behavior by supplying a custom factory object (see mapping/_LayerExtension!LayerExtension.factory).

  #### Parameters

  - properties: LayerExtensionProperties

    The layer extension properties.

  #### Returns LayerExtension<LayerExtensionProperties>

  Inherited from LayerExtension.create

### `Static` fromPortalItem

- fromPortalItem(portalItemLike, layerExtensionProperties?): Promise<LayerExtension<LayerExtensionProperties>>

- Creates the appropriate subclass of mapping/_LayerExtension!LayerExtension based on the type of the supplied portal item.

  #### Parameters

  - portalItemLike: PortalItemLike

    The portal item that determines the subclass to create.

  - `Optional` layerExtensionProperties: Partial<LayerExtensionProperties>

    The properties used to create the subclass.

  #### Returns Promise<LayerExtension<LayerExtensionProperties>>

  Inherited from LayerExtension.fromPortalItem