import { AfterViewInit, ElementRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { PoTextareaBaseComponent } from './po-textarea-base.component';
import { PoHelperComponent } from '../../po-helper';
/**
 * @docsExtends PoTextareaBaseComponent
 *
 * @example
 *
 * <example name="po-textarea-basic" title="PO Textarea Basic" >
 *  <file name="sample-po-textarea-basic/sample-po-textarea-basic.component.html"> </file>
 *  <file name="sample-po-textarea-basic/sample-po-textarea-basic.component.ts"> </file>
 * </example>
 *
 * <example name="po-textarea-labs" title="PO Textarea Labs" >
 *  <file name="sample-po-textarea-labs/sample-po-textarea-labs.component.html"> </file>
 *  <file name="sample-po-textarea-labs/sample-po-textarea-labs.component.ts"> </file>
 * </example>
 *
 * <example name="po-textarea-email" title="PO Textarea - Email" >
 *  <file name="sample-po-textarea-email/sample-po-textarea-email.component.html"> </file>
 *  <file name="sample-po-textarea-email/sample-po-textarea-email.component.ts"> </file>
 * </example>
 *
 * <example name="po-textarea-email-reactive-form" title="PO Textarea - Email Reactive Form" >
 *  <file name="sample-po-textarea-email-reactive-form/sample-po-textarea-email-reactive-form.component.html"> </file>
 *  <file name="sample-po-textarea-email-reactive-form/sample-po-textarea-email-reactive-form.component.ts"> </file>
 * </example>
 *
 */
export declare class PoTextareaComponent extends PoTextareaBaseComponent implements AfterViewInit, OnChanges, OnDestroy {
    private el;
    inputEl: ElementRef;
    helperEl?: PoHelperComponent;
    id: string;
    valueBeforeChange: any;
    fireChange: boolean;
    hasScroll: boolean;
    hasValue: boolean;
    private resizeObserver;
    constructor();
    emitAdditionalHelp(): void;
    /**
     * Função que atribui foco ao componente.
     *
     * Para utilizá-la é necessário ter a instância do componente no DOM, podendo ser utilizado o ViewChild da seguinte forma:
     *
     * ```
     * import { PoTextareaComponent } from '@po-ui/ng-components';
     *
     * ...
     *
     * @ViewChild(PoTextareaComponent, { static: true }) textarea: PoTextareaComponent;
     *
     * focusTextarea() {
     *   this.textarea.focus();
     * }
     * ```
     */
    focus(): void;
    ngAfterViewInit(): void;
    protected onAfterThemeChange(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    getAdditionalHelpTooltip(): string;
    getErrorPattern(): string;
    hasInvalidClass(): boolean;
    writeValueModel(value: any): void;
    validMaxLength(maxlength: number, value: string): string;
    eventOnInput(event: any): void;
    eventOnFocus(): void;
    eventOnBlur(): void;
    controlChangeEmitter(): void;
    onKeyDown(event: KeyboardEvent): void;
    /**
     * Método que exibe `p-helper` ou executa a ação definida em `p-helper{eventOnClick}` ou em `p-additionalHelp`.
     * Para isso, será necessário configurar uma tecla de atalho utilizando o evento `p-keydown`.
     *
     * > Exibe ou oculta o conteúdo do componente `po-helper` quando o componente estiver com foco.
     *
     * ```
     * //Exemplo com p-label e p-helper
     * <po-textarea
     *  #textarea
     *  ...
     *  p-label="Label do textarea"
     *  [p-helper]="helperOptions"
     *  (p-keydown)="onKeyDown($event, textarea)"
     * ></po-textarea>
     * ```
     * ```
     * ...
     * onKeyDown(event: KeyboardEvent, inp: PoTextareaComponent): void {
     *  if (event.code === 'F9') {
     *    inp.showAdditionalHelp();
     *  }
     * }
     * ```
     */
    showAdditionalHelp(): boolean;
    private isAdditionalHelpEventTriggered;
    setHelper(label?: string, additionalHelpTooltip?: string): {
        hideAdditionalHelp: boolean;
        helperSettings?: any;
    };
    private readonly onWindowResize;
    private checkScrollState;
    private calculateTextareaHeight;
    private initResizeObserver;
}
