import type ColumnTemplateBase from "./ColumnTemplateBase.js";
import type { ColumnTemplateBaseProperties } from "./ColumnTemplateBase.js";

export interface AttachmentsColumnTemplateProperties extends ColumnTemplateBaseProperties {}

/**
 * A AttachmentsColumnTemplate formats and defines the structure of a [AttachmentsColumn](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/AttachmentsColumn/) within a
 * [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/) widget.
 *
 * The AttachmentsColumnTemplate is set directly on the table's [template](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) or its [view model](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/FeatureTableViewModel/#tableTemplate). This template enables the display of multiple (@link module:esri/widgets/FeatureTable/AttachmentColumn attachment columns} anywhere within the table, offering enhanced configuration flexibility.
 *
 * @since 4.31
 * @see [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/)
 * @see [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/)
 * @see [ColumnTemplateBase](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/ColumnTemplateBase/)
 * @see [Sample - FeatureTable with editing and attachments enabled](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-editing/)
 * @see [Sample - FeatureTable with related records](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-relates/)
 * @example
 * const attachmentsColumnTemplate = new AttachmentsColumnTemplate({
 *   label: "Attachments",
 * });
 */
export default class AttachmentsColumnTemplate extends ColumnTemplateBase {
  constructor(properties?: AttachmentsColumnTemplateProperties);
  /** The type of column that the template represents. */
  get type(): "attachment";
}