import { ActionIconVariant, MantineSize, ComboboxData, ComboboxLikeRenderOptionInput, ComboboxGenericItem, InputClearButtonProps, ScrollAreaProps } from '@mantine/core';
import { CSSProperties, FocusEventHandler, ReactNode, default as React } from 'react';
import { ArchbaseDataSource } from '@archbase/data';
export interface ArchbaseTagInputEditProps<T, ID> {
    /** Fonte de dados onde será atribuido o valor do edit */
    dataSource?: ArchbaseDataSource<T, ID>;
    /** Campo onde deverá ser atribuido o valor do edit na fonte de dados */
    dataField?: string;
    /** Indicador se o edit está desabilitado */
    disabled?: boolean;
    /** Indicador se o edit é somente leitura. Obs: usado em conjunto com o status da fonte de dados */
    readOnly?: boolean;
    /** Indicador se o preenchimento do edit é obrigatório */
    required?: boolean;
    /** Valor controlado do componente */
    value?: string[];
    /** Valor padrão para componente não controlado */
    defaultValue?: string[];
    /** Estilo do edit */
    style?: CSSProperties;
    /** Tamanho do edit */
    size?: MantineSize;
    /** Largura do edit */
    width?: string | number | undefined;
    /** Icone à direita */
    icon?: ReactNode;
    /** Dica para botão localizar */
    tooltipIconSearch?: string;
    /** Evento ocorre quando clica no botão localizar */
    onActionSearchExecute?: () => void;
    /** Texto sugestão do edit */
    placeholder?: string;
    /** Título do edit */
    label?: string;
    /** Descrição do edit */
    description?: string;
    /** Último erro ocorrido no edit */
    error?: string;
    /** Evento quando o foco sai do edit */
    onFocusExit?: FocusEventHandler<T> | undefined;
    /** Evento quando o edit recebe o foco */
    onFocusEnter?: FocusEventHandler<T> | undefined;
    /** Evento quando o valor do edit é alterado */
    onChangeValue?: (value: string[]) => void;
    /** Chamado quando uma tag é removida */
    onRemove?: (value: string) => void;
    /** Chamado quando o botão limpar é clicado */
    onClear?: () => void;
    onKeyDown?: (event: any) => void;
    onKeyUp?: (event: any) => void;
    /** Referência para o componente interno */
    innerRef?: React.RefObject<HTMLInputElement> | undefined;
    variant?: ActionIconVariant;
    /** Dados exibidos no dropdown. Valores devem ser únicos */
    data?: ComboboxData;
    /** Valor de busca controlado */
    searchValue?: string;
    /** Valor de busca padrão */
    defaultSearchValue?: string;
    /** Chamado quando a busca muda */
    onSearchChange?: (value: string) => void;
    /** Número máximo de tags, `Infinity` por padrão */
    maxTags?: number;
    /** Determina se tags duplicadas são permitidas, `false` por padrão */
    allowDuplicates?: boolean;
    /** Chamado quando usuário tenta submeter uma tag duplicada */
    onDuplicate?: (value: string) => void;
    /** Caracteres que devem disparar a divisão de tags, `[',']` por padrão */
    splitChars?: string[];
    /** Determina se o botão limpar deve ser exibido quando o componente tem valor, `false` por padrão */
    clearable?: boolean;
    /** Props passadas para o botão limpar */
    clearButtonProps?: InputClearButtonProps & React.ComponentPropsWithoutRef<'button'>;
    /** Props passadas para o input oculto */
    hiddenInputProps?: Omit<React.ComponentPropsWithoutRef<'input'>, 'value'>;
    /** Divisor usado para separar valores no atributo `value` do input oculto, `','` por padrão */
    hiddenInputValuesDivider?: string;
    /** Função para renderizar o conteúdo da opção */
    renderOption?: (input: ComboboxLikeRenderOptionInput<ComboboxGenericItem>) => React.ReactNode;
    /** Props passadas para o componente `ScrollArea` subjacente no dropdown */
    scrollAreaProps?: ScrollAreaProps;
    /** Determina se o valor digitado pelo usuário mas não submetido deve ser aceito quando o input perde o foco, `true` por padrão */
    acceptValueOnBlur?: boolean;
    /** Limite de itens exibidos no dropdown */
    limit?: number;
    /** Converter para transformar o valor antes de salvar no dataSource */
    outputConverter?: (tags: string[]) => any;
    /** Converter para transformar o valor do dataSource antes de exibir */
    inputConverter?: (value: any) => string[];
}
export declare function ArchbaseTagInputEdit<T, ID>({ dataSource, dataField, disabled, readOnly, style, placeholder, label, description, error, required, size, width, innerRef, value, defaultValue, icon, onKeyDown, onKeyUp, onActionSearchExecute, tooltipIconSearch, onFocusExit, onFocusEnter, onChangeValue, onRemove, onClear, variant, data, searchValue, defaultSearchValue, onSearchChange, maxTags, allowDuplicates, onDuplicate, splitChars, clearable, clearButtonProps, hiddenInputProps, hiddenInputValuesDivider, renderOption, scrollAreaProps, acceptValueOnBlur, limit, outputConverter, inputConverter, }: ArchbaseTagInputEditProps<T, ID>): import("react/jsx-runtime").JSX.Element;
