
export interface EditableColumnTemplateMixinProperties extends Partial<Pick<EditableColumnTemplateMixin, "editable" | "required">> {}

/** @since 4.24 */
export abstract class EditableColumnTemplateMixin {
  constructor(...args: any[]);
  /**
   * Indicates whether the field is editable. Editing permissions can be broken down
   * with the following levels of priority:
   *
   * 1. [Field](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-Field.html) - This is derived
   * from the [FeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html) or [SceneLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-SceneLayer.html). It takes what is set in the
   * [Field#editable](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-Field.html#editable) property. This
   * must always be `true` for editing to be enabled. This can be overridden using a
   * [field column template](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-support-FieldColumnTemplate.html).
   * 2. [Template](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-support-FieldColumnTemplate.html) - The editable
   * permissions on a field can be configured by setting the
   * [FieldColumnTemplate#editable](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-support-FieldColumnTemplate.html#editable) property
   * of the [FieldColumnTemplate](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-support-FieldColumnTemplate.html).
   * 3. [FeatureTable](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html) - The [FeatureTable#editingEnabled](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html#editingEnabled)
   * property must be set on the table in order for any type of editing to be enabled.
   *
   * For example, if table editing is disabled in the widget, i.e. `enableEditing` is not set,
   * it is still possible to enable editing for a specific column by setting the
   * [FieldColumnTemplate#editable](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-support-FieldColumnTemplate.html#editable) property. Vice versa
   * is also true, if table editing is enabled, a field template can be used to disable editing for a specific column.
   *
   * > [!WARNING]
   * >
   * > Ultimately, if the service's field is not editable, it is not possible to override its permissions
   * > using one of the options above.
   *
   * @default true
   * @see [FieldColumnTemplate#editable](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-support-FieldColumnTemplate.html#editable)
   * @see [Sample - FeatureTable widget with editing enabled](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-editing/)
   */
  accessor editable: boolean;
  /**
   * Indicates whether a field requires a value.
   *
   * @default false
   */
  accessor required: boolean;
}