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/references/core/widgets/FeatureTable/RelationshipColumn/) within a
 * [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/) widget.
 *
 * The RelationshipColumnTemplate 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).
 *
 * @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 [GroupColumnTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/GroupColumnTemplate/)
 * @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";
}