import type { ClonableMixin } from "../../../../core/Clonable.js";
import type { JSONSupport } from "../../../../core/JSONSupport.js";
import type { AttachmentInputType } from "./types.js";

/** @since 5.1 */
export default abstract class Input extends InputSuperclass {
  /**
   * The type of [input](https://developers.arcgis.com/javascript/latest/references/core/form/elements/AttachmentElement/#input) used in [attachment elements](https://developers.arcgis.com/javascript/latest/references/core/form/elements/AttachmentElement/). This [AttachmentElement.input](https://developers.arcgis.com/javascript/latest/references/core/form/elements/AttachmentElement/#input) is used in [attachment elements](https://developers.arcgis.com/javascript/latest/references/core/form/elements/AttachmentElement/) that are set on the [Editor's `layerInfo.formTemplate`](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-editor/#layerInfos/) or a [feature layer's `formTemplate`](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#formTemplate) and displayed within the [Editor](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-editor/).
   *
   * > [!CAUTION]
   * > * Input methods that are configured as only allowing `capture` are not supported on desktop devices for inputs such as [AudioInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/AudioInput/), [ImageInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/ImageInput/), or [VideoInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/VideoInput/).
   * > * For inputs such as [AudioInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/AudioInput/), [ImageInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/ImageInput/), or [VideoInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/VideoInput/), minimum requirements apply only in mobile editing workflows when the input method is set to only allow capture and the minimum file count is greater than or equal to one.
   *
   * Possible Value | Description
   * ---------------|-------------
   * attachment | The user interface for a general [attachment input](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/AttachmentInput/) to attach multiple different types of files.
   * audio | The user interface for an [audio](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/AudioInput/) input.
   * document | The user interface for a [document](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/DocumentInput/) input.
   * image | The user interface for an [image](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/ImageInput/) input.
   * video | The user interface for a [video](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/VideoInput/) input.
   *
   * @since 5.1
   */
  get type(): AttachmentInputType | null;
}
declare const InputSuperclass: typeof JSONSupport & typeof ClonableMixin