import React, { CSSProperties, ReactElement } from 'react';
import AutoCompleteItem, { AutoCompleteItemProps } from './auto-complete-item';
import { NormalTypes } from '../utils/prop-types';
export type AutoCompleteTypes = NormalTypes;
export type AutoCompleteOption = {
    label: string;
    value: string;
};
export type AutoCompleteOptions = Array<typeof AutoCompleteItem | AutoCompleteOption | React.ReactElement<AutoCompleteItemProps>>;
interface Props {
    options?: Array<AutoCompleteOption>;
    color?: AutoCompleteTypes;
    type?: string;
    initialValue?: string;
    value?: string;
    onChange?: (value: string) => void;
    onSearch?: (value: string) => void;
    onSelect?: (value: string) => void;
    searching?: boolean | undefined;
    clearable?: boolean;
    dropdownClassName?: string;
    dropdownStyle?: CSSProperties;
    disableMatchWidth?: boolean;
    disableFreeSolo?: boolean;
    className?: string;
    getPopupContainer?: () => HTMLElement | null;
}
type NativeAttrs = Omit<React.InputHTMLAttributes<any>, keyof Props>;
export type AutoCompleteProps = Props & NativeAttrs & ReactElement;
declare const AutoComplete: React.ForwardRefExoticComponent<Omit<Props & NativeAttrs & React.ReactElement<unknown, string | React.JSXElementConstructor<any>> & {
    children?: React.ReactNode | undefined;
} & React.RefAttributes<HTMLInputElement> & {
    width?: string | number;
    height?: string | number;
    padding?: string | number;
    margin?: string | number;
    w?: string | number;
    h?: string | number;
    paddingLeft?: string | number;
    paddingRight?: string | number;
    paddingTop?: string | number;
    paddingBottom?: string | number;
    pl?: string | number;
    pr?: string | number;
    pt?: string | number;
    pb?: string | number;
    marginLeft?: string | number;
    marginRight?: string | number;
    marginTop?: string | number;
    marginBottom?: string | number;
    ml?: string | number;
    mr?: string | number;
    mt?: string | number;
    mb?: string | number;
    px?: string | number;
    py?: string | number;
    mx?: string | number;
    my?: string | number;
    font?: string | number;
    unit?: string;
    scale?: number;
    children?: any;
    className?: string;
} & React.InputHTMLAttributes<any>, "ref"> & React.RefAttributes<unknown>>;
export default AutoComplete;
