import { EventEmitter } from '../../stencil-public-runtime';
export declare class EzTextArea {
  private _inputElem;
  private _labelElem;
  private _messageBoxElem;
  private _container;
  private _initialRows;
  private _resizeObserver;
  private readonly LINE_HEIGHT;
  private readonly HEIGHT_RATIO;
  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;
  /**
   * 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 o número de linhas.
   */
  rows: number;
  /**
   * Se false deixa de exibir a mensagem de erro dentro do campo.
   */
  canShowError: boolean;
  /**
   * Define o tamanho do campo.
   */
  mode: 'slim' | 'regular';
  /**
   * Ativa a opção de fazer resize do input.
   */
  enableResize: boolean;
  /**
   * Ativa a opção de fazer as linhas do componente serem baseados na altura máxima.
   */
  autoRows: boolean;
  /**
   * Se true o campo de texto receberá o foco ao ser renderizado.
   */
  autoFocus: boolean;
  /**
   * Texto alternativo a ser apresentado como título do campo.
   */
  alternativePlaceholder: string;
  forceLabelFloat: boolean;
  observeErrorMessage(): void;
  observeValue(newValue: string, oldValue: string): void;
  observeMode(): void;
  observeRows(): void;
  observeAutoRows(): void;
  observeAlternativePlaceholder(newValue: any): void;
  /**
   * Adiciona o argumento text no value do text area, seguindo as regras:
   * - Se o cursor do mouse está posicionado em algum local do texto, o argumento será adicionado nesse local.
   * - Se existir uma seleção no texto, o trecho selecionado deve ser substituído pelo argumento.
   * - Se não existir seleção nem posicionamento do cursor do mouse, o argumento será adicionado no final do texto.
   *
   * @param text: texto que irá ser adicionado
   */
  appendTextToSelection(text: string): Promise<void>;
  /**
   * Aplica o foco no campo.
   */
  setFocus(): Promise<void>;
  /**
   * Remove o foco do campo.
   */
  setBlur(): Promise<void>;
  /**
   * Retorna se o conteúdo é inválido.
   */
  isInvalid(): Promise<boolean>;
  private canChangeValue;
  private adjustFloatingLabel;
  private isFocused;
  private updateRows;
  private calculateMaxRows;
  private initializeResizeObserver;
  handleFocusout(): void;
  handleChange(): void;
  handleFocus(): void;
  connectedCallback(): void;
  disconnectedCallback(): void;
  private buildPlaceholder;
  private buildLabelClass;
  private renderErrorTooltip;
  private renderLabel;
  private renderTextArea;
  componentDidLoad(): void;
  render(): any;
}
