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. */
  viewing?: ViewingProperties | null;
}

/**
 * Represents configuration of application and UI elements.
 *
 * @since 4.7
 */
export default class ApplicationProperties extends JSONSupport {
  constructor(properties?: ApplicationPropertiesProperties);
  /** View-specific properties of application and UI elements. */
  get viewing(): Viewing | null | undefined;
  set viewing(value: ViewingProperties | null | undefined);
  /**
   * Creates a deep clone of this object.
   *
   * @returns Creates a deep clone of the instance calling this method.
   */
  clone(): ApplicationProperties;
}