import { ElementRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { KeyFilterPattern } from 'primeng/keyfilter';
import * as i0 from "@angular/core";
/**
 * @description Componente de área de texto com suporte a reconhecimento de voz,
 * filtro de teclas, comprimento máximo e integração com `ControlValueAccessor`.
 * Renderiza condicionalmente o componente `SpeechRecognitionComponent` quando
 * a flag `speechRecognition` está ativa.
 *
 * @example
 * ```html
 * <s-textarea
 *   formControlName="descricao"
 *   [rows]="6"
 *   [maxLength]="500"
 *   placeholder="Digite aqui..." />
 * ```
 *
 * @category Inputs
 */
export declare class TextAreaComponent implements ControlValueAccessor {
    private readonly cdr;
    onChange: (value: string) => void;
    onTouched: (value: string) => void;
    disabled: boolean;
    value: string;
    private _textAreaElement;
    get textAreaElement(): ElementRef<HTMLTextAreaElement>;
    set textAreaElement(value: ElementRef<HTMLTextAreaElement>);
    /** @description Identificador do elemento `<textarea>` no DOM. @default 'textarea-{random}' */
    inputId: string;
    /** @description Número de linhas visíveis no textarea. @default 5 */
    rows: number;
    /** @description Habilita o botão de reconhecimento de voz. @default false */
    speechRecognition: boolean;
    /** @description Filtro de teclas aceitas, usando padrão ou expressão regular. */
    keyFilter: RegExp | KeyFilterPattern | null | undefined;
    /** @description Quando `true`, mantém o contexto ao reiniciar o reconhecimento de voz. @default false */
    keepContext: boolean;
    /** @description Placeholder exibido durante o reconhecimento de voz. @default '' */
    speechRecognitionPlaceholder: string;
    /** @description Número máximo de caracteres aceitos. @default null (ilimitado) */
    maxLength: number | null;
    /** @description Texto exibido quando o campo está vazio. */
    placeholder: string | undefined;
    private _inputStyle;
    /** @description Estilos inline aplicados ao elemento `<textarea>` interno. @default `{ resize: 'vertical' }` */
    get inputStyle(): Partial<CSSStyleDeclaration>;
    set inputStyle(value: Partial<CSSStyleDeclaration>);
    /** @description Coloca o textarea em modo somente leitura. @default false */
    readOnly: boolean;
    renderTextArea: boolean;
    writeValue(obj: string): void;
    registerOnChange(fn: (value: string) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    setValue(value: string | number): void;
    handleRecognizedText(recognizedText: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TextAreaComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TextAreaComponent, "s-textarea", never, { "inputId": { "alias": "inputId"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "speechRecognition": { "alias": "speechRecognition"; "required": false; }; "keyFilter": { "alias": "keyFilter"; "required": false; }; "keepContext": { "alias": "keepContext"; "required": false; }; "speechRecognitionPlaceholder": { "alias": "speechRecognitionPlaceholder"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "inputStyle": { "alias": "inputStyle"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; }, {}, never, never, false, never>;
}
