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

export interface FeatureReferenceIdProperties extends JSONSupportMixinProperties, ClonableMixinProperties {}

/**
 * A unique identifier of a feature inside a layer.
 * There are multiple feature id types:
 *
 * * [FeatureReferenceObjectId](https://developers.arcgis.com/javascript/latest/api-reference/esri-webscene-support-FeatureReferenceObjectId.html)
 * * [FeatureReferenceGlobalId](https://developers.arcgis.com/javascript/latest/api-reference/esri-webscene-support-FeatureReferenceGlobalId.html)
 *
 * The `FeatureReferenceId` class is a read-only base class which has no constructor.
 *
 * @since 4.33
 */
export default class FeatureReferenceId extends FeatureReferenceIdSuperclass {
  constructor(properties?: FeatureReferenceIdProperties);
  /**
   * A string value representing the feature id type.
   *
   * @since 4.33
   */
  get type(): FeatureIdType;
}
declare const FeatureReferenceIdSuperclass: typeof JSONSupport & typeof ClonableMixin

export type FeatureIdType = "global-id" | "object-id";