import type Input from "./Input.js";
import type { InputMethod } from "../../../../portal/jsonTypes.js";

/** @internal */
export interface SignatureInputProperties extends Partial<Pick<SignatureInput, "inputMethod">> {}

/**
 * The `SignatureInput` class defines a user interface for an input to which a signature can be attached. 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 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.
 *
 * > [!CAUTION]
 * >
 * > This class is not yet fully supported within the SDK and is not intended for use in development. Support will be added in an upcoming release.
 *
 * @internal
 * @since 4.31
 * @see [SignatureInput](https://developers.arcgis.com/javascript/latest/references/core/form/elements/inputs/attachments/SignatureInput/)
 * @example
 * // Creates a new SignatureInput for an attachment element within a form
 * const signatureInput = new SignatureInput({
 *   inputMethod: "capture",
 * });
 */
export default class SignatureInput extends Input {
  /** @internal */
  constructor(properties?: SignatureInputProperties);
  /**
   * The supported input methods used to attach a signature.
   *
   * @default "any"
   * @internal
   */
  accessor inputMethod: InputMethod;
  /**
   * The input type identifier. Valid value of this property is "signature"
   *
   * @internal
   * @since 5.0
   */
  get type(): "signature";
}