import { EventEmitter } from "../../stencil-public-runtime";
export type TFocusOptions = {
  selectText: boolean;
};
export declare class EzTextInput {
  private _inputElem;
  private _labelElem;
  private _lastValidValue;
  private _maskFormatter;
  private _contentLeftSlot;
  private _tooltipIconElem;
  private _isOverflowing;
  private onClickOutside;
  private _hostElement;
  /**
   * Emitido quando acontece a alteração de valor do campo.
   */
  ezChange: EventEmitter<string>;
  /**
   * Texto a ser apresentado como título do campo.
   */
  label: string;
  /**
   * Texto alternativo a ser apresentado como título do campo.
   */
  alternativePlaceholder: string;
  /**
   * Define o valor do campo.
   */
  value: string;
  /**
   * Se false o usuário não pode interagir com o campo.
   */
  enabled: boolean;
  /**
   * Define uma mensagem de orientação ao usuário, colocando o campo em modo inválido.
   */
  errorMessage: string;
  /**
  * Define se o campo está em estado inválido (bordas vermelhas).
  */
  hasInvalid: boolean;
  /**
   * Aplica uma máscara no conteúdo conforme o padrão estabelecido
   */
  mask: string;
  /**
  * Para remover a máscara quando fizer um apply no formulário.
  */
  cleanValueMask: boolean;
  /**
   * Se false deixa de exibir a mensagem de erro dentro do campo.
   */
  canShowError: boolean;
  /**
   * Restringe o que o usuário pode digitar.
   */
  restrict: string;
  /**
   * Define o tamanho do campo.
   */
  mode: "slim" | "regular";
  /**
   * Se true o campo não terá bordas.
   */
  noBorder: boolean;
  /**
   * Se true o campo não terá bordas.
   */
  password: boolean;
  /**
   * Se true o campo receberá o foco ao ser renderizado.
   */
  autoFocus: boolean;
  /**
   * Reflete se o slot direito possui conteúdo.
   */
  hasRightSlotContent: boolean;
  forceLabelFloat: boolean;
  observeHasInvalid(newValue: boolean | string, oldValue: boolean | string): void;
  observeMask(): void;
  observeValue(newValue: string, oldValue: string): void;
  observeAlternativePlaceholder(newValue: any): void;
  private validateErrors;
  private handleValidateErrorMessage;
  private updateClassError;
  private adjustFloatingLabel;
  private isFocused;
  private isSlaveMode;
  private adjustColorContentSlot;
  private adjustBorderInput;
  /**
   * Aplica o foco no campo.
   */
  setFocus(options?: TFocusOptions): Promise<void>;
  /**
   * Remove o foco do campo.
   */
  setBlur(): Promise<void>;
  /**
   * Retorna se o conteúdo é inválido.
   */
  isInvalid(): Promise<boolean>;
  handleFocusout(): void;
  isValidValue(value: string): boolean;
  controlChangeValue(): void;
  applyMask(value: string): string;
  handleChange(): void;
  handleSlotChange(ev: Event): void;
  doFocus(): void;
  private getValue;
  private buildLabelClass;
  private buildPlaceholder;
  private checkIsOverflowing;
  componentWillLoad(): void;
  componentDidLoad(): void;
  disconnectedCallback(): void;
  componentDidRender(): void;
  render(): any;
}
