import { FieldConfig } from './field';
/**
 * Configuração para campo de área de texto com geração de conteúdo via IA.
 *
 * Combina um textarea completo com recursos de:
 * - Geração automática de texto por IA via prompt
 * - Reconhecimento de voz (speech-to-text)
 * - Contexto persistente entre gerações (`keepContext`)
 *
 * Use `type: 'contentGenerator'` para novas implementações.
 * O tipo `'textAreaIA'` está depreciado e será removido na v20.
 */
export interface ContentGeneratorFieldConfig extends FieldConfig {
    /**
     * `'contentGenerator'` — tipo atual recomendado.
     * `'textAreaIA'` — **@deprecated** Será removido na v20, use `'contentGenerator'`.
     */
    type: 'contentGenerator' | 'textAreaIA';
    /**
     * Número de colunas de texto do textarea.
     */
    cols?: number;
    /**
     * Número de linhas visíveis do textarea.
     */
    rows?: number;
    /**
     * Filtro de teclas aceitas. Aceita regex ou string.
     */
    keyFilter?: any;
    /**
     * Estilos CSS inline aplicados diretamente no elemento textarea.
     */
    style?: Partial<CSSStyleDeclaration>;
    /**
     * Prompt inicial enviado à IA para gerar conteúdo.
     * Define a instrução base para o assistente de geração de texto.
     * @example 'Gere um e-mail formal de boas-vindas para o cliente'
     */
    prompt?: string;
    /**
     * Função que retorna `true` quando o campo deve estar em modo somente-leitura.
     */
    readonly?: () => boolean;
    /**
     * Quando `true`, ativa o botão de reconhecimento de voz (speech-to-text).
     * O conteúdo falado é convertido em texto e inserido no campo.
     */
    speechRecognition?: boolean;
    /**
     * Quando `true`, o contexto das gerações anteriores é mantido ao gerar novo conteúdo.
     * Permite que a IA considere o histórico da conversa na próxima geração.
     */
    keepContext: boolean;
    /**
     * Texto de placeholder exibido na área de reconhecimento de voz enquanto o microfone está ativo.
     */
    speechRecognitionPlaceholder: string;
    /**
     * Número máximo de caracteres permitidos no campo.
     */
    maxLength?: number;
}
declare module './field' {
    interface FieldTypeMap {
        contentGenerator: ContentGeneratorFieldConfig;
        /**
         * @deprecated
         * esse item será depreciado na versão v20. utilizar o field 'contentGenerator'
         */
        textAreaIA: ContentGeneratorFieldConfig;
    }
}
