import type AttributeTableElement from "./AttributeTableElement.js";
import type { ClonableMixin } from "../../core/Clonable.js";
import type { AttributeTableElementProperties } from "./AttributeTableElement.js";

export interface AttributeTableRelationshipElementProperties extends AttributeTableElementProperties, Partial<Pick<AttributeTableRelationshipElement, "relationshipId">> {}

/**
 * An `AttributeTableRelationshipElement` element defines how a relationship between [Map.layers](https://developers.arcgis.com/javascript/latest/references/core/Map/#layers) and [Map.tables](https://developers.arcgis.com/javascript/latest/references/core/Map/#tables) participates and displays within a [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/).
 *
 * @since 4.31
 * @see [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/)
 * @see [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/)
 */
export default class AttributeTableRelationshipElement extends AttributeTableRelationshipElementSuperclass {
  constructor(properties?: AttributeTableRelationshipElementProperties);
  /** The numeric id value for the defined relationship. This value can be found on the [service](https://developers.arcgis.com/rest/services-reference/enterprise/feature-service.htm) itself or on the service's [relationships resource](https://developers.arcgis.com/rest/services-reference/enterprise/relationships-feature-service-.htm) if `supportsRelationshipResource` is `true`. */
  accessor relationshipId: number;
  /** Indicates the type of attribute table [element](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/). */
  get type(): "relationship";
  /**
   * Creates a deep clone of the AttributeTableRelationshipElement class.
   *
   * @returns A deep clone of the AttributeTableRelationshipElement instance.
   */
  clone(): this;
}
declare const AttributeTableRelationshipElementSuperclass: typeof AttributeTableElement & typeof ClonableMixin