import type Search from "./Search.js";
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
import type { SearchProperties } from "./Search.js";

export interface ViewingProperties extends JSONSupportMixinProperties {
  /** An object specifying the search parameters set within the web scene or web map. */
  search?: SearchProperties | null;
}

/**
 * Represents view-specific properties of application and UI elements for the web map or web scene.
 *
 * @since 4.7
 */
export default class Viewing extends JSONSupport {
  constructor(properties?: ViewingProperties);
  /** An object specifying the search parameters set within the web scene or web map. */
  get search(): Search | null | undefined;
  set search(value: SearchProperties | null | undefined);
  /**
   * Creates a deep clone of this object.
   *
   * @returns Creates a deep clone of the instance calling this method.
   */
  clone(): Viewing;
}