import type FeatureReferenceId from "./FeatureReferenceId.js";
import type { FeatureReferenceIdProperties } from "./FeatureReferenceId.js";

export interface FeatureReferenceGlobalIdProperties extends FeatureReferenceIdProperties, Partial<Pick<FeatureReferenceGlobalId, "value">> {}

/**
 * A unique identifier of a feature inside a layer by globalid value.
 *
 * @since 4.33
 */
export default class FeatureReferenceGlobalId extends FeatureReferenceId {
  constructor(properties?: FeatureReferenceGlobalIdProperties);
  /**
   * A string value representing the feature id type.
   *
   * @default "global-id"
   * @since 4.33
   */
  get type(): "global-id";
  /**
   * Feature global id value. This value identifies the feature by its global id attribute.
   * A FeatureReferenceGlobalId is only valid when it has a value.
   *
   * @since 4.33
   */
  accessor value: string | null | undefined;
}