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/references/core/widgets/Editor/) widget. It helps keep track of updated feature edits.
 *
 * @since 4.15
 * @see [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/)
 * @see [EditorViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/EditorViewModel/)
 * @see [Workflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/Workflow/)
 * @see [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/)
 * @see [CreateFeaturesWorkflowData](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflowData/)
 * @see [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/)
 * @see [UpdateWorkflowData](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflowData/)
 */
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;
}