import { TextFieldTypes } from './types';
import { FormComponent } from '../../utils';
/** @slot - A slot for adding text and a component that can be labeled. */
export declare class Input implements FormComponent {
  host: HTMLAbdsInputElement;
  /** The name of the control, which is submitted with the form data. */
  name: string;
  /** Disables input from interaction. */
  disabled: boolean;
  /** Allows setting error state. */
  error: boolean;
  /** Custom error message. Will only display if `error` prop is true. */
  errorMessage: string;
  /** Text of the information message. */
  helperText: string;
  /** Adds an abds-icon to end of input. */
  iconEnd: string;
  /** Adds an abds-icon to beginning of input. */
  iconStart: string;
  /** The maximum value, which must not be less than its minimum (min attribute) value. */
  max: string;
  /** This attribute specifies the maximum number of characters that the user can enter. */
  maxlength: string;
  /** The minimum value, which must not be greater than its maximum (max attribute) value. */
  min: string;
  /** This attribute specifies the minimum number of characters that the user can enter. */
  minlength: string;
  /** Specifies a custom error message for invalid minLength. */
  minlengthMessage: string;
  /**
   * A regular expression that the value is checked against.
   * The pattern must match the entire value, not just some subset.
   */
  pattern: string;
  /** Specifies a custom error message for invalid pattern. */
  patternMessage: string;
  /** Instructional text that shows before the input has a value. */
  placeholder: string;
  /** When set to true, it makes the input not mutable. */
  readonly: boolean;
  /** Specifies required state for form submission. */
  required: boolean;
  /** Specifies a custom error message for required state. */
  requiredMessage: string;
  /** The tooltip text to be passed to label. */
  tooltip: string;
  /** Specify the input type. */
  type: TextFieldTypes;
  /** The value of the input. */
  value: string;
  /** Sets input width. */
  width: 'default' | 'full';
  /** Unique id to input. */
  private inputId;
  /** Initial render status. */
  private isInitialRender;
  /** Instance validation. */
  private validator;
  /** Native element. */
  private nativeInput;
  /** Text to be used for label. */
  private labelText;
  /** Hidden input element. */
  hiddenInput: HTMLInputElement | null;
  private onFocus;
  private onBlur;
  private onKeyDown;
  private onInput;
  /** Determine if input has focus. */
  private hasFocus;
  /**
   * Sets focus on native `input` in `abds-checkbox`.
   * @internal
  . */
  setFocus(): Promise<void>;
  componentDidRender(): void;
  componentWillLoad(): void;
  connectedCallback(): void;
  disconnectedCallback(): void;
  render(): any;
}
