import type Accessor from "../../core/Accessor.js";
import type TemplateItem from "./TemplateItem.js";
import type { IdentifiableMixin, IdentifiableMixinProperties } from "../../core/Identifiable.js";

export interface TemplateItemGroupProperties extends IdentifiableMixinProperties {}

/**
 * This is a read-only support class that represents a group of items displayed within
 * the [FeatureTemplates](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/) widget.
 *
 * @since 4.10
 * @see [FeatureTemplates](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/)
 * @see [FeatureTemplatesViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/FeatureTemplatesViewModel/)
 * @see [FeatureTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureTemplate/)
 * @see [TemplateItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/TemplateItem/)
 */
export default class TemplateItemGroup extends TemplateItemGroupSuperclass {
  constructor(properties?: TemplateItemGroupProperties);
  /**
   * An array of [TemplateItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/TemplateItem/) grouped
   * to display in the [FeatureTemplates](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/) widget.
   */
  get items(): TemplateItem[];
  /**
   * The label displayed in the [FeatureTemplates](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/) widget
   * indicating the grouped [TemplateItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/TemplateItem/).
   */
  get label(): string;
  /**
   * Notifies the tracking system that `filterFunction` has changed and that
   * `items` may therefore need to be recomputed. Call this method if
   * `filterFunction` accesses some value or state that is not able to be
   * observed by the SDK's tracking mechanism.
   */
  reapplyFilter(): void;
}
declare const TemplateItemGroupSuperclass: typeof Accessor & typeof IdentifiableMixin