import { AfterViewInit, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { NgControl, NgModel } from '@angular/forms';
import { BaseComponent } from 'primeng/basecomponent';
import { Subscription } from 'rxjs';
import { TextareaStyle } from './style/textareastyle';
import * as i0 from "@angular/core";
/**
 * Textarea adds styling and autoResize functionality to standard textarea element.
 * @group Components
 */
export declare class Textarea extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {
    ngModel: NgModel;
    control: NgControl;
    /**
     * When present, textarea size changes as being typed.
     * @group Props
     */
    autoResize: boolean | undefined;
    /**
     * Specifies the input variant of the component.
     * @group Props
     */
    variant: 'filled' | 'outlined';
    /**
     * Spans 100% width of the container when enabled.
     * @group Props
     */
    fluid: boolean;
    /**
     * Defines the size of the component.
     * @group Props
     */
    pSize: 'large' | 'small';
    /**
     * Callback to invoke on textarea resize.
     * @param {(Event | {})} event - Custom resize event.
     * @group Emits
     */
    onResize: EventEmitter<Event | {}>;
    filled: boolean | undefined;
    cachedScrollHeight: number | undefined;
    ngModelSubscription: Subscription | undefined;
    ngControlSubscription: Subscription | undefined;
    _componentStyle: TextareaStyle;
    constructor(ngModel: NgModel, control: NgControl);
    ngOnInit(): void;
    get hasFluid(): boolean;
    ngAfterViewInit(): void;
    ngAfterViewChecked(): void;
    onInput(e: Event): void;
    updateFilledState(): void;
    resize(event?: Event): void;
    updateState(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<Textarea, [{ optional: true; }, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<Textarea, "[pTextarea], [pInputTextarea]", never, { "autoResize": { "alias": "autoResize"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "fluid": { "alias": "fluid"; "required": false; }; "pSize": { "alias": "pSize"; "required": false; }; }, { "onResize": "onResize"; }, never, never, true, never>;
    static ngAcceptInputType_autoResize: unknown;
    static ngAcceptInputType_fluid: unknown;
}
export declare class TextareaModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TextareaModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TextareaModule, never, [typeof Textarea], [typeof Textarea]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TextareaModule>;
}
