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

export interface UpdateWorkflowDataProperties extends Partial<Pick<UpdateWorkflowData, "candidates" | "viewModel">> {}

/**
 * This object supports the [Editor](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html) widget.
 * It contains data for the [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-UpdateWorkflow.html).
 * This is accessed via the
 * [UpdateWorkflow.data](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-UpdateWorkflow.html#data).
 *
 * @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 [Edits](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-Edits.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)
 */
export default class UpdateWorkflowData extends Accessor {
  constructor(properties?: UpdateWorkflowDataProperties);
  /** An array of features to be updated. This is only relevant when there are multiple candidates to update. */
  accessor candidates: Graphic[];
  /** The associated [EditorViewModel](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-EditorViewModel.html) for this workflow. */
  accessor viewModel: EditorViewModel;
}