import { EventEmitter } from '../../stencil-public-runtime';
import { OptionsSetFocus } from './interfaces/optionsSetFocus';
export declare class EzClassicInput {
  _element: HTMLElement;
  private _inputElem?;
  private _maskFormatter?;
  private _internalValueChange;
  /** Tipo do input (ex: text, password, email, etc) */
  type: string;
  /** Valor do input */
  value?: string;
  /** Texto do label exibido acima do input */
  label?: string;
  /** Texto de ajuda exibido abaixo do input */
  helpText?: string;
  /** Placeholder do input */
  placeholder?: string;
  /** Define se o input está habilitado */
  enabled?: boolean;
  /** Define se o input é somente leitura */
  readonly?: boolean;
  /** Nome do input */
  name?: string;
  /** Tamanho mínimo do valor */
  minlength?: number;
  /** Tamanho máximo do valor */
  maxlength?: number;
  /** Nome do ícone à esquerda */
  leftIconName?: string;
  /** Nome do ícone à direita */
  rightIconName?: string;
  /** Título do ícone à direita (tooltip) */
  rightIconTooltip?: string;
  /** Título do ícone à esquerda (tooltip) */
  leftIconTooltip?: string;
  /** Estado visual do input: default, error, success ou warning */
  state?: "default" | "error" | "success" | "warning";
  /** Define se o ícone da esquerda é clicável */
  leftIconClickable?: boolean;
  /** Define se o ícone da direita é clicável */
  rightIconClickable?: boolean;
  /** Aplica uma máscara no conteúdo conforme o padrão estabelecido.
   * Para mais informações acesse:
   * https://gilded-nasturtium-6b64dd.netlify.app/docs/utilities/api/classes/maskformatter/
  */
  mask?: string;
  /** Define se o valor emitido pelo evento ezChange deve conter a máscara aplicada (padrão: false) */
  emitMaskedValue?: boolean;
  /**
   * Evento disparado quando o valor do input muda.
   */
  ezChange: EventEmitter<string>;
  /**
   * Evento disparado quando o input perde o foco.
   */
  ezBlur: EventEmitter<string>;
  /**
   * Evento disparado quando o input ganha o foco.
   */
  ezFocus: EventEmitter<string>;
  /**
   * Evento disparado quando um ícone é clicado.
   * Payload: { icon: "left" | "right" }
   */
  iconClick: EventEmitter<{
    icon: "left" | "right";
  }>;
  /**
   * Aplica o foco no campo.
   */
  setFocus(option?: OptionsSetFocus): Promise<void>;
  /**
   * Remove o foco do campo.
   */
  setBlur(): Promise<void>;
  syncValue(): Promise<void>;
  private onInput;
  private onBlur;
  private onFocus;
  private handleIconClick;
  private addInfoId;
  componentWillLoad(): void;
  componentDidLoad(): void;
  render(): any;
}
