import type Configuration from "./ips/Configuration.js";
import type PositioningService from "./ips/PositioningService.js";
import type { ClonableMixin } from "../core/Clonable.js";
import type { JSONSupport } from "../core/JSONSupport.js";
import type { PositioningServiceProperties } from "./ips/PositioningService.js";
import type { ConfigurationProperties } from "./ips/Configuration.js";

export interface IPSInfoProperties {
  /**
   * Defines the configuration properties for Indoor Positioning Data Service.
   *
   * @since 4.33
   */
  configuration?: ConfigurationProperties | null;
  /** Defines the portal item for the positioning data service. */
  positioningService?: PositioningServiceProperties | null;
}

/**
 * The indoor positioning system (IPS) information for a map.
 * Defines indoor position data service and related properties that help applications compute device location inside a building.
 *
 * @since 4.31
 */
export default class IPSInfo extends IPSInfoSuperclass {
  constructor(properties?: IPSInfoProperties);
  /**
   * Defines the configuration properties for Indoor Positioning Data Service.
   *
   * @since 4.33
   */
  get configuration(): Configuration | null | undefined;
  set configuration(value: ConfigurationProperties | null | undefined);
  /** Defines the portal item for the positioning data service. */
  get positioningService(): PositioningService | null | undefined;
  set positioningService(value: PositioningServiceProperties | null | undefined);
}
declare const IPSInfoSuperclass: typeof JSONSupport & typeof ClonableMixin