import type LayoutOptions from "./LayoutOptions.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { LayoutOptionsProperties } from "./LayoutOptions.js";

export interface LayoutTemplateInfoProperties extends Partial<Pick<LayoutTemplateInfo, "layoutTemplate" | "pageSize" | "pageUnits" | "webMapFrameSize">> {
  /** The layout options in LayoutTemplateInfo. */
  layoutOptions?: LayoutOptionsProperties;
}

/** The `LayoutTemplateInfo` class defines layout template information for printing */
export default class LayoutTemplateInfo extends JSONSupport {
  constructor(properties?: LayoutTemplateInfoProperties);
  /** The layout options in LayoutTemplateInfo. */
  get layoutOptions(): LayoutOptions;
  set layoutOptions(value: LayoutOptionsProperties);
  /** The layout template in LayoutTemplateInfo. */
  accessor layoutTemplate: string;
  /** The page size in LayoutTemplateInfo. */
  accessor pageSize: [
      number,
      number
  ];
  /** The unit type of the page size(s) to be used. */
  accessor pageUnits: string;
  /** The web map frame size in LayoutTemplateInfo. */
  accessor webMapFrameSize: [
      number,
      number
  ];
}