import { OnInit } from '@angular/core';
import { ControlValueAccessor, FormGroup } from '@angular/forms';
import { SpeechRecognitionService } from '@seniorsistemas/angular-components/speech-recognition';
import { TextAreaComponent } from '@seniorsistemas/angular-components/text-area';
import * as i0 from "@angular/core";
import * as i1 from "@seniorsistemas/angular-components/common/deprecated-selector";
/**
 * @description Componente de área de texto com geração de conteúdo por inteligência artificial.
 * Integra-se ao serviço IAssist para sugerir e completar textos com base em um prompt configurável.
 * Suporta reconhecimento de voz opcional e mantém contexto entre gerações quando `keepContext` é `true`.
 * Implementa {@link ControlValueAccessor} para uso em formulários Angular.
 *
 * @example
 * ```html
 * <s-content-generator
 *   formControlName="descricao"
 *   label="Descrição"
 *   prompt="Gere uma descrição para o produto"
 *   [rows]="5"
 *   [speechRecognition]="true" />
 * ```
 *
 * @category Inputs
 */
export declare class ContentGeneratorComponent implements OnInit, ControlValueAccessor {
    private readonly _iassistService;
    private readonly _formBuilder;
    private readonly _translateService;
    speechRecognitionService: SpeechRecognitionService;
    private injector;
    textArea: import("@angular/core").Signal<TextAreaComponent | undefined>;
    private static id;
    /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
    id: string;
    /** @description Label exibido acima da área de texto. */
    label: string;
    /** @description Texto de placeholder exibido na área de texto quando vazia. @default '' */
    placeholder: string;
    /** @description Instrução (prompt) enviada ao serviço de IA para gerar o conteúdo sugerido. */
    prompt: string;
    /** @description Torna a área de texto somente leitura. @default false */
    readonly: boolean;
    /** @description Número de linhas visíveis da área de texto. @default 10 */
    rows: number;
    /** @description Número de colunas visíveis da área de texto. @default 10 */
    cols: number;
    /** @description Habilita o botão de reconhecimento de voz para ditado de texto. @default false */
    speechRecognition: boolean;
    /** @description Quando `true`, o histórico de gerações anteriores é enviado ao serviço de IA como contexto. @default false */
    keepContext: boolean;
    /** @description Texto de placeholder exibido no campo de reconhecimento de voz. @default '' */
    speechRecognitionPlaceholder: string;
    /** @description Limite máximo de caracteres permitidos na área de texto. `null` desabilita o limite. @default null */
    maxLength: number | null;
    /** @description Estilos CSS inline aplicados à área de texto interna. */
    textAreaStyle: import("@angular/core").InputSignal<Partial<CSSStyleDeclaration>>;
    formGroup: FormGroup;
    contextForm: FormGroup;
    isVisible: boolean;
    isLoading: boolean;
    value: string;
    private _onChange?;
    private _onTouched?;
    ngOnInit(): void;
    writeValue(value: string): void;
    registerOnChange(onChange: (value: string) => void): void;
    registerOnTouched(onTouched: () => void): void;
    onValueChange(value: string): void;
    showDialog(): void;
    hideDialog(): void;
    onHideDialog(): void;
    submitContext(): void;
    private _createDialogFormGroup;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentGeneratorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentGeneratorComponent, "s-content-generator, s-text-area-ia", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "prompt": { "alias": "prompt"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "speechRecognition": { "alias": "speechRecognition"; "required": false; }; "keepContext": { "alias": "keepContext"; "required": false; }; "speechRecognitionPlaceholder": { "alias": "speechRecognitionPlaceholder"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "textAreaStyle": { "alias": "textAreaStyle"; "required": false; "isSignal": true; }; }, {}, never, never, false, [{ directive: typeof i1.DeprecatedSelectorDirective; inputs: {}; outputs: {}; }]>;
}
