import { ForwardRefExoticComponent, InputHTMLAttributes, ReactElement, ReactNode, RefAttributes } from 'react';
import { validationProps } from '@syncfusion/react-inputs';
import { DropDownProps, DropDownSelectionProps, InputProps } from '../common/types';
/**
* Props for the Autocomplete component.
*
* @default -
*/
export interface AutocompleteProps extends DropDownProps, DropDownSelectionProps, validationProps, InputProps {
/**
*Specifies whether the input field automatically fills with the first matching
* suggestion during typing. The auto-filled portion appears highlighted.
*
* @default false
*/
autofill?: boolean;
/**
* Specifies whether to highlight the matched search text within each suggestion.
*
* @default false
*/
autoHighlight?: boolean;
/** Specifies whether users can commit custom text values (not in the suggestion list) by pressing Enter.
* When enabled, free-form input is accepted as a valid selection.
*
*@default false
*/
customValue?: boolean;
/**
* Specifies the minimum number of characters required before suggestions appear.
*
* @default 0
*/
minLength?: number;
/**
*Specifies the maximum number of suggestions to display.
*
*@default -
*/
maxSuggestions?: number;
/**
* Specifies a custom template for rendering the value in the input element, allowing for customized appearance.
*
* @default -
*/
valueTemplate?: (inputElement: ReactElement) => ReactNode;
/** Specifies the callback invoked when a custom value (not in the suggestion list)
* is committed via Enter key. Receives the custom string value as a parameter.
*
* @event onCustomValueSelect
*/
onCustomValueSelect?: (value: string) => void;
}
/**
* Imperative API for Autocomplete.
*/
export interface IAutocomplete extends AutocompleteProps {
/**
* Reference to the input element.
*
* @private
* @default null
*/
element?: HTMLInputElement | null;
}
type IAutocompleteProps = AutocompleteProps & Omit, keyof AutocompleteProps>;
/**
* Autocomplete lets users type to search or choose a single option from a list. It supports controlled and uncontrolled usage (value / defaultValue),
* works with local or remote data sources, supports custom item.
*
* ```typescript
* import { Autocomplete } from "@syncfusion/react-dropdowns";
*
* export default function App() {
* const data = [
* { text: "Apple", value: "apple" },
* { text: "Banana", value: "banana" },
* { text: "Cherry", value: "cherry" }
* ];
*
* return (
*
* );
* }
* ```
*/
export declare const Autocomplete: ForwardRefExoticComponent>;
declare const _default: import("react").NamedExoticComponent, keyof AutocompleteProps> & RefAttributes>;
export default _default;