import type TextInput from "./TextInput.js";
import type { TextInputProperties } from "./TextInput.js";

export interface TextAreaInputProperties extends TextInputProperties {}

/**
 * The `TextAreaInput` class defines the desired user interface as a multi-line text area. This [FieldElement.input](https://developers.arcgis.com/javascript/latest/references/core/form/elements/FieldElement/#input) is used in [field elements](https://developers.arcgis.com/javascript/latest/references/core/form/elements/FieldElement/) that are set within a [feature layer's](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#formTemplate) or [FeatureForm's](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/#formTemplate) `formTemplate`. This is displayed within the [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/) widget.
 *
 * @since 4.16
 * @see [TextBoxInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/TextBoxInput/)
 * @see [BarcodeScannerInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/BarcodeScannerInput/)
 */
export default class TextAreaInput extends TextInput {
  /**
   * @example
   * // Create a new TextArea input
   * const textAreaInput = new TextAreaInput({
   *   minLength: 10,
   *   maxLength: 300
   * })
   */
  constructor(properties?: TextAreaInputProperties);
  /** The type of form element input. */
  get type(): "text-area";
  /**
   * Creates a deep clone of the `TextAreaInput` class.
   *
   * @returns A deep clone of the `TextAreaInput` instance.
   */
  clone(): TextAreaInput;
}