import type Graphic from "../../Graphic.js";
import type Accessor from "../../core/Accessor.js";

export interface EditsProperties {}

/**
 * This class supports the [Editor](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html) widget. It helps keep track of updated feature edits.
 *
 * @since 4.15
 * @see [Editor](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html)
 * @see [EditorViewModel](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-EditorViewModel.html)
 * @see [Workflow](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-Workflow.html)
 * @see [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-CreateFeaturesWorkflow.html)
 * @see [CreateFeaturesWorkflowData](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-CreateFeaturesWorkflowData.html)
 * @see [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-UpdateWorkflow.html)
 * @see [UpdateWorkflowData](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-UpdateWorkflowData.html)
 */
export default class Edits extends Accessor {
  constructor(properties?: EditsProperties);
  /** The feature to be edited. */
  get feature(): Graphic | null | undefined;
  /**
   * When true, the feature has been modified from its original state. This
   * includes staging the feature for delete.
   */
  get modified(): boolean;
}