import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, Renderer2, SimpleChanges } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
/**
 * The Textarea wraps the native `<textarea>` form element. Textareas automatically grow to accommodate their content.
 *
 * ```html
 * <gtx-textarea label="Message" [(ngModel)]="message"></gtx-textarea>
 * ```
 */
export declare class Textarea implements ControlValueAccessor, OnChanges {
    private renderer;
    private changeDetector;
    private elementRef;
    /**
     * Sets the textarea to be auto-focused. Handled by `AutofocusDirective`.
     */
    autofocus: boolean;
    /**
     * Sets the disabled state.
     */
    disabled: boolean;
    /**
     * Sets the maximum number of characters permitted.
     */
    set maxlength(val: any);
    get maxlength(): any;
    /**
     * The name of the control.
     */
    name: string;
    /**
     * Regex pattern for complex validation.
     * This requires that this control is either part of a form or that
     * its value is bound with ngModel.
     */
    pattern: string;
    /**
     * A placeholder text to display when the control is empty.
     */
    placeholder: string;
    /**
     * Sets the readonly state.
     */
    readonly: boolean;
    /**
     * Sets the required state.
     */
    required: boolean;
    /**
     * Tooltip for validation errors.
     */
    validationErrorTooltip: string;
    /**
     * Sets the value of the control.
     */
    value: string;
    /**
     * Sets the label of the control.
     */
    label: string;
    /**
     * Sets an id for the control.
     */
    id: string;
    /**
     * Blur event.
     */
    blur: EventEmitter<string>;
    /**
     * Focus event.
     */
    focus: EventEmitter<string>;
    /**
     * Change event.
     */
    change: EventEmitter<string>;
    valueIsValid: boolean;
    private nativeTextarea;
    private _maxlength;
    private currentValue;
    private previousHeight;
    constructor(renderer: Renderer2, changeDetector: ChangeDetectorRef, elementRef: ElementRef);
    ngOnChanges(changes: SimpleChanges): void;
    onBlur(e: Event): void;
    onChangeEvent(e: Event): void;
    onFocus(e: Event): void;
    onInput(e: Event): void;
    writeValue(valueToWrite: any): void;
    registerOnChange(fn: (newValue: string) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(disabled: boolean): void;
    private onChange;
    private onTouched;
    private normalizeValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<Textarea, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<Textarea, "gtx-textarea", never, { "autofocus": "autofocus"; "disabled": "disabled"; "maxlength": "maxlength"; "name": "name"; "pattern": "pattern"; "placeholder": "placeholder"; "readonly": "readonly"; "required": "required"; "validationErrorTooltip": "validationErrorTooltip"; "value": "value"; "label": "label"; "id": "id"; }, { "blur": "blur"; "focus": "focus"; "change": "change"; }, never, never>;
}
