import type { JSONSupport, JSONSupportMixinProperties } from "../../../../core/JSONSupport.js";

export interface CIMFilteredFindPathsEntityProperties extends JSONSupportMixinProperties, Partial<Pick<CIMFilteredFindPathsEntity, "entityTypeName" | "iD" | "propertyFilterPredicate">> {}

/**
 * Defines an [origin](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraph-toolService-findPaths-CIMFilteredFindPathsConfiguration.html#originEntities)
 * or [destination](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraph-toolService-findPaths-CIMFilteredFindPathsConfiguration.html#destinationEntities) entity,
 * in this case the [iD](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraph-toolService-findPaths-CIMFilteredFindPathsEntity.html#iD) is used, or all entities of an entity type, in which case the  [iD](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraph-toolService-findPaths-CIMFilteredFindPathsEntity.html#iD) is null.
 *
 * @beta
 * @since 4.32
 */
export default class CIMFilteredFindPathsEntity extends JSONSupport {
  constructor(properties?: CIMFilteredFindPathsEntityProperties);
  /**
   * The [GraphNamedObject#typeName](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraph-GraphNamedObject.html#typeName) of the entity specified in [iD](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraph-toolService-findPaths-CIMFilteredFindPathsEntity.html#iD).
   * If `iD` is undefined, all records of the entity or relationship type will be used.
   */
  accessor entityTypeName: string | null | undefined;
  /** The unique ID to use as a filter.  If `iD` is undefined, all instances of the type are used. */
  accessor iD: string | null | undefined;
  /**
   * The property filter predicate (openCypher syntax) associated with the path filter.
   *  The predicate is only taken into account when [iD](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-knowledgeGraph-toolService-findPaths-CIMFilteredFindPathsEntity.html#iD) has no value.
   */
  accessor propertyFilterPredicate: string | null | undefined;
  /** @default "CIMFilteredFindPathsEntity" */
  get type(): "CIMFilteredFindPathsEntity";
}