import type Accessor from "../../core/Accessor.js";
import type { PublishStatus } from "../mixins/PublishableLayer.js";

export interface PublishingInfoProperties {}

/**
 * [FeatureLayer's](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) publishing status while the layer is being published to the portal.
 * This stops when the status has been determined or when the layer is destroyed.
 * This is valid only for [ArcGIS Online hosted feature services](https://doc.arcgis.com/en/arcgis-online/share-maps/hosted-web-layers.htm).
 * The layer is automatically refreshed when the layer is done `publishing`.
 *
 * @since 4.25
 * @see [FeatureLayer.publishingInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#publishingInfo)
 */
export default class PublishingInfo extends Accessor {
  constructor(properties?: PublishingInfoProperties);
  /**
   * Layer's publishing status while the layer is being published to the portal.
   * The layer is automatically refreshed when the status goes from `publishing` to `unavailable` or `published`.
   *
   * **Possible Values**
   * Value | Description |
   * ----- | ----------- |
   * unknown | The layer's publishing status is unknown at this point.
   * unavailable | The layer doesn't provide publishing information.
   * publishing | The publishing is in progress.
   * published | The layer is published and ready for consumption.
   * 
   *
   * @default "unknown"
   */
  get status(): PublishStatus;
  /**
   * Indicates if the layer's status is still being updated.
   *
   * @default false
   */
  get updating(): boolean;
}