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

export interface LayerReferenceProperties extends Partial<Pick<LayerReference, "layerId" | "sublayerId">> {}

/**
 * References a layer by layer id, and sublayer id, if applicable.
 *
 * @since 4.33
 */
export default class LayerReference extends LayerReferenceSuperclass {
  constructor(properties?: LayerReferenceProperties);
  /**
   * The [Layer.id](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#id) referencing a layer by its id.
   * A LayerReference is only valid when it has a layerId.
   *
   * @since 4.33
   */
  accessor layerId: string | null | undefined;
  /**
   * References a sublayer within the layer identified by layerId.
   *
   * @since 4.33
   */
  accessor sublayerId: number | null | undefined;
}
declare const LayerReferenceSuperclass: typeof JSONSupport & typeof ClonableMixin