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/references/core/widgets/Editor/) widget.
 * It contains data for the [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/).
 * This is accessed via the
 * [UpdateWorkflow.data](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/#data).
 *
 * @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 [Edits](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/Edits/)
 * @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/)
 */
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/references/core/widgets/Editor/EditorViewModel/) for this workflow. */
  accessor viewModel: EditorViewModel;
}