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

export interface RelationshipColumnTemplateProperties extends ColumnTemplateBaseProperties {}

/**
 * A RelationshipColumnTemplate formats and defines the structure of a [RelationshipColumn](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-RelationshipColumn.html) within a
 * [FeatureTable](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html) widget.
 *
 * The RelationshipColumnTemplate is set directly on the table's [template](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-support-TableTemplate.html) or its [view model](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-FeatureTableViewModel.html#tableTemplate).
 *
 * @since 4.31
 * @see [FeatureTable](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html)
 * @see [TableTemplate](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-support-TableTemplate.html)
 * @see [GroupColumnTemplate](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-support-GroupColumnTemplate.html)
 * @see [Sample - FeatureTable with a map](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-map/)
 * @see [Sample - FeatureTable with related records](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-relates/)
 * @see [Sample - FeatureTable with row highlights](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-row-highlights/)
 * @example
 * const relationshipColumnTemplate = new RelationshipColumnTemplate({
 *   label: "Attachments",
 *   relationshipId: 1
 * });
 */
export default class RelationshipColumnTemplate extends ColumnTemplateBase {
  constructor(properties?: RelationshipColumnTemplateProperties);
  /** The type of column that the template represents. */
  get type(): "relationship";
}