import type Viewing from "../webdoc/applicationProperties/Viewing.js";
import type { JSONSupport, JSONSupportMixinProperties } from "../core/JSONSupport.js";
import type { ViewingProperties } from "../webdoc/applicationProperties/Viewing.js";

export interface ApplicationPropertiesProperties extends JSONSupportMixinProperties {
  /** View-specific properties of application and UI elements for the web map. */
  viewing?: ViewingProperties | null;
}

/**
 * Represents configuration of application and UI elements of the
 * [WebMap](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html).
 * It contains the [viewing](https://developers.arcgis.com/javascript/latest/api-reference/esri-webmap-ApplicationProperties.html#viewing) properties of the web map.
 *
 * @since 4.14
 */
export default class ApplicationProperties extends JSONSupport {
  constructor(properties?: ApplicationPropertiesProperties);
  /** View-specific properties of application and UI elements for the web map. */
  get viewing(): Viewing | null | undefined;
  set viewing(value: ViewingProperties | null | undefined);
}