import type TextElement from "../../form/elements/TextElement.js";
import type GroupInput from "./GroupInput.js";
import type InputBase from "./InputBase.js";
import type { TextFormatType } from "../../portal/jsonTypes.js";

export interface TextElementInputProperties {}

/**
 * @since 4.32
 * @see [FeatureForm](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/)
 * @see [FeatureFormViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/FeatureFormViewModel/)
 * @see [FieldInput](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/FieldInput/)
 */
export default class TextElementInput extends InputBase<TextElement> {
  constructor(properties?: TextElementInputProperties);
  /**
   * All Aracde expressions referenced, via string substitution, in the text
   * content. The strings in this array are the names of the `expressionInfo`
   * objects defining the expressions in the FormTemplate.
   */
  get expressionsUsed(): string[];
  /**
   * The names of all fields referenced, via string templates, in the text
   * content.
   */
  get fieldsUsed(): string[];
  /** The group containing the text element input. */
  get group(): GroupInput | null | undefined;
  /**
   * The content of the TextElement, as a string in either plain-text (no formatting) or Markdown. See
   * [TextElement.text](https://developers.arcgis.com/javascript/latest/references/core/form/elements/TextElement/#text) for details on supported Markdown features and on field and
   * Arcade expression substitution.
   */
  get rawText(): string | null | undefined;
  /**
   * The processed text, compiled and with template parameters replaced with
   * values.
   */
  get text(): string;
  /**
   * Defines the format of the `text` property.
   *
   * @default "plain-text"
   */
  get textFormat(): TextFormatType;
  /** The type of input. */
  get type(): "text";
}