import type GraphDataModelOperationResult from "./GraphDataModelOperationResult.js";
import type { ResultsObject, GraphDataModelOperationResultProperties } from "./GraphDataModelOperationResult.js";

export interface GraphAddNamedTypesResultProperties extends GraphDataModelOperationResultProperties, Partial<Pick<GraphAddNamedTypesResult, "entityAddResults" | "entityAddResultsCount" | "relationshipAddResults" | "relationshipAddResultsCount">> {}

/**
 * The result returned when [adding](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraphService.html#executeAddNamedTypes) a new [entity type](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraph-EntityType.html) or
 * [relationship type](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraph-RelationshipType.html) to a knowledge graph. This contains the names of the new types,
 * the number of types added and any errors encountered.
 *
 * @since 4.33
 */
export default class GraphAddNamedTypesResult extends GraphDataModelOperationResult {
  constructor(properties?: GraphAddNamedTypesResultProperties);
  /** Information specific to each added entity type. */
  accessor entityAddResults: Array<ResultsObject>;
  /**
   * The number of entity types added to the graph.
   *
   * @default 0
   */
  accessor entityAddResultsCount: number;
  /** Information specific to each added relationship type. */
  accessor relationshipAddResults: Array<ResultsObject>;
  /**
   * The number of relationship types added to the graph.
   *
   * @default 0
   */
  accessor relationshipAddResultsCount: number;
}