import React from 'react';
import { TextProps } from '../Text/Text.js';
export interface Suggestion {
    label?: React.ReactNode;
    value?: string;
}
export type TextWithSuggestionsProps<Suggestions extends Array<unknown> = Suggestion[]> = TextProps & {
    /** Will show loading indicators */
    isLoading?: boolean;
    /** Callback fired to find suggestions when the value of the input changes. */
    loadSuggestions?: (text: string) => Promise<Suggestions>;
    /** Resolves each suggestion to a string to be displayed as the label by components. */
    suggestionLabelExtractor?: (suggestion: Suggestions[number]) => React.ReactNode;
    /** Resolves each suggestion to a string that will replace the input text when selected. */
    suggestionValueExtractor?: (option: Suggestions[number]) => string;
    /** Callback fired when a suggestion is selected from the list. */
    onSuggestionSelected?: (suggestion: Suggestions[number]) => string;
    /** Component used to render each suggestion. */
    renderSuggestion?: (suggestion: Suggestions[number]) => React.ReactNode;
    /** The list of suggestions to be displayed. */
    suggestions?: Suggestions;
};
declare function TextWithSuggestions<Suggestions extends Array<Suggestion & object>>({ autoComplete, error, disabled, hint, isLoading, label, labelBehavior, loadSuggestions, maxWidth, minWidth, name, onChange, onBlur, onChangeValue, onFocus, onSuggestionSelected, suggestionLabelExtractor, suggestionValueExtractor, placeholder, renderSuggestion, search, showErrorMessage, subText, suggestions, valid, value, }: TextWithSuggestionsProps<Suggestions>): React.JSX.Element;
export { TextWithSuggestions };
