import { FieldConfig } from './field';
/**
 * Configuração para campo de entrada de múltiplas tags (chips).
 *
 * Permite que o usuário insira vários valores de texto livres, visualizados como chips/tags.
 * Cada valor é adicionado ao pressionar Enter (ou o separador configurado).
 * O valor do campo é um array de strings.
 *
 * Use para e-mails, palavras-chave, códigos ou qualquer lista de valores livres.
 */
export interface ChipsFieldConfig extends FieldConfig {
    /** Tipo do campo: sempre `'chips'`. */
    type: 'chips';
    /**
     * Expressão regular que filtra os caracteres aceitos em cada chip.
     * @example /[a-zA-Z0-9]/ para aceitar apenas alfanuméricos
     */
    keyFilter?: RegExp;
    /**
     * Caractere separador para adicionar novos chips além do Enter.
     * @example ',' para adicionar chip ao digitar vírgula
     */
    separator?: string;
    /**
     * Quando `true`, exibe um botão de copiar todos os chips para a área de transferência.
     */
    showCopyButton?: boolean;
    /** Callback chamado quando um novo chip é adicionado. */
    onAdd?: (event: any) => void;
    /** Callback chamado quando um chip é removido. */
    onRemove?: (event: any) => void;
    /** Callback chamado quando o usuário clica em um chip existente. */
    onChipClick?: (event: any) => void;
    /** Callback chamado quando o campo recebe foco. */
    onFocus?: (event: any) => void;
    /** Callback chamado quando o campo perde o foco. */
    onBlur?: (event: any) => void;
    /**
     * Callback chamado quando o usuário copia o conteúdo dos chips.
     * Recebe o texto combinado de todos os chips.
     */
    onCopy?: (content: string) => void;
}
declare module './field' {
    interface FieldTypeMap {
        chips: ChipsFieldConfig;
    }
}
