import * as React from 'react'; import { FormItem, IFormItemProps, IFormItemStates } from './common/FomItem'; export interface IAutoCompleteProps extends IFormItemProps { size: 'small' | 'medium' | 'large'; variant: 'border-bottom' | 'full-border'; getFetchPromise?: (searchText: string) => Promise>; minSearchCharacters: number; loadingControl: React.ReactNode; noRecordControl: React.ReactNode; searchDebounce: number; allowFreeText?: boolean; freeTextContainer?: (freeText: string) => { component: React.ReactNode; value: string; }; dropdownLabel?: string; dropdownClassName: string; allowClear: boolean; defaultOptions: Array<{ component: React.ReactNode; value: string; }>; onSearch: (searchText: string) => void; infiniteScrollOpts: { hasMore: boolean; onLoadMore: (lastId?: string | number) => Promise>; }; } interface IAutoCompleteState extends IFormItemStates { loading: boolean; searchText?: string; loadingMore: boolean; data: Array<{ component: React.ReactNode; value: string; id?: string | number; }>; displayDropdownLabel: boolean; } export declare class AutoComplete extends FormItem { private debounceFetch; private parentDiv; private currentDefaultData; static defaultProps: { size: string; variant: string; data: never[]; loadingControl: string; noRecordControl: string; minSearchCharacters: number; searchDebounce: number; dropdownLabel: undefined; dropdownClassname: undefined; defaultOptions: never[]; allowClear: boolean; infiniteScrollOpts: {}; onSearch: () => void; name: undefined; value: undefined; error: undefined; oldValue: undefined; comparing: boolean; required: boolean; autoFocus: boolean; placeholder: undefined; disabled: boolean; onValueChanged: () => undefined; customValidate: () => undefined; innerClass: undefined; onFocus: () => undefined; onBlur: () => undefined; }; constructor(props: IAutoCompleteProps); componentDidUpdate(prevProps: IAutoCompleteProps): void; render(): React.JSX.Element; validate(option?: { silentValidation?: boolean | undefined; }): string | undefined; getValue(): string; protected valueToDisplayValue(value: string | null | undefined): string | undefined; private onSearchTextChanged; private fetchOptions; private onChange; private onScrolling; private loadMore; } export {};