import { MantineSize } from '@mantine/core';
import { CSSProperties, FocusEventHandler, default as React } from 'react';
import { IArchbaseDataSourceBase } from '@archbase/data';
export interface ArchbaseMentionConfig {
    /** Caractere gatilho da mention (ex: '@', '#') */
    trigger: string;
    /** Lista estatica ou funcao async que retorna sugestoes */
    data: Array<{
        id: string;
        display: string;
    }> | ((search: string, callback: (data: Array<{
        id: string;
        display: string;
    }>) => void) => void);
    /** Markup template. Padrao: '[__display__](__id__)' */
    markup?: string;
    /** Funcao para transformar exibicao */
    displayTransform?: (id: string, display: string) => string;
    /** Permite espacos na busca */
    allowSpaceInQuery?: boolean;
    /** Estilos customizados para a mention */
    style?: React.CSSProperties;
}
export interface ArchbaseMentionInputProps<T, ID> {
    /** Fonte de dados onde sera atribuido o valor (V1 ou V2) */
    dataSource?: IArchbaseDataSourceBase<T>;
    /** Campo onde devera ser atribuido o valor na fonte de dados */
    dataField?: string;
    /** Valor controlado (standalone) */
    value?: string;
    /** Valor padrao (standalone) */
    defaultValue?: string;
    /** Titulo do campo */
    label?: string;
    /** Descricao do campo */
    description?: string;
    /** Ultimo erro ocorrido */
    error?: string;
    /** Texto sugestao */
    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 */
    readOnly?: boolean;
    /** Configuracoes de mention (triggers, data, etc.) */
    mentions: ArchbaseMentionConfig[];
    /** Modo linha unica */
    singleLine?: boolean;
    /** Permitir sugestoes acima do cursor */
    allowSuggestionsAboveCursor?: boolean;
    /** Evento quando o valor e alterado */
    onChangeValue?: (value: string, event: any) => void;
    /** Evento quando o campo recebe foco */
    onFocusEnter?: FocusEventHandler<HTMLTextAreaElement | HTMLInputElement>;
    /** Evento quando o foco sai do campo */
    onFocusExit?: FocusEventHandler<HTMLTextAreaElement | HTMLInputElement>;
    /** Referencia para o componente interno */
    innerRef?: React.RefObject<HTMLTextAreaElement | HTMLInputElement>;
    /** Estilos customizados */
    style?: CSSProperties;
    /** Classes CSS customizadas */
    className?: string;
    /** Largura do campo */
    width?: string | number;
    /** Altura do campo */
    height?: string | number;
    /** Tamanho do campo (Mantine) */
    size?: MantineSize;
}
export declare function ArchbaseMentionInput<T, ID>({ dataSource, dataField, value: valueProp, defaultValue, label, description, error, placeholder, required, disabled, readOnly, mentions, singleLine, allowSuggestionsAboveCursor, onChangeValue, onFocusEnter, onFocusExit, innerRef, style, className, width, height, size, }: ArchbaseMentionInputProps<T, ID>): import("react/jsx-runtime").JSX.Element;
export declare namespace ArchbaseMentionInput {
    var displayName: string;
}
