import { MantineSize } from '@mantine/core';
import { CSSProperties, FocusEventHandler, default as React } from 'react';
import { IArchbaseDataSourceBase } from '@archbase/data';
export interface ArchbaseTagInputProps<T, ID> {
    /** Fonte de dados onde sera atribuido o valor das tags (V1 ou V2) */
    dataSource?: IArchbaseDataSourceBase<T>;
    /** Campo onde devera ser atribuido o valor das tags na fonte de dados */
    dataField?: string;
    /** Valor controlado (array de strings) quando usado sem dataSource */
    value?: string[];
    /** Valor padrao inicial (array de strings) */
    defaultValue?: string[];
    /** Delimitador usado para serializar/deserializar quando o campo no dataSource e uma string. Padrao: ',' */
    delimiter?: string;
    /** Titulo do campo */
    label?: string;
    /** Descricao do campo */
    description?: string;
    /** Ultimo erro ocorrido no campo */
    error?: string;
    /** Texto sugestao do campo */
    placeholder?: string;
    /** Indicador se o preenchimento e obrigatorio */
    required?: boolean;
    /** Indicador se o campo esta desabilitado */
    disabled?: boolean;
    /** Indicador se o campo e somente leitura. Obs: usado em conjunto com o status da fonte de dados */
    readOnly?: boolean;
    /** Lista de caracteres que, ao serem digitados, criam uma nova tag. Ex: [',', ' ', 'Enter'] */
    separators?: string[];
    /** Numero maximo de tags permitidas */
    maxTags?: number;
    /** Permite tags duplicadas */
    allowDuplicates?: boolean;
    /** Evento quando o valor das tags e alterado */
    onChangeValue?: (value: string[], event?: any) => void;
    /** Evento quando o campo recebe o foco */
    onFocusEnter?: FocusEventHandler<HTMLInputElement>;
    /** Evento quando o foco sai do campo */
    onFocusExit?: FocusEventHandler<HTMLInputElement>;
    /** Referencia para o componente interno */
    innerRef?: React.RefObject<HTMLInputElement>;
    /** Estilo do campo */
    style?: CSSProperties;
    /** Classe CSS adicional */
    className?: string;
    /** Largura do campo */
    width?: string | number;
    /** Tamanho do campo (Mantine size) */
    size?: MantineSize;
}
export declare function ArchbaseTagInput<T, ID>({ dataSource, dataField, value: valueProp, defaultValue, delimiter, label, description, error, placeholder, required, disabled, readOnly, separators, maxTags, allowDuplicates, onChangeValue, onFocusEnter, onFocusExit, innerRef, style, className, width, size, }: ArchbaseTagInputProps<T, ID>): import("react/jsx-runtime").JSX.Element;
export declare namespace ArchbaseTagInput {
    var displayName: string;
}
