import { type FC, type ReactNode, type ReactElement, type MutableRefObject } from "react";
import { type IOptionItemProps } from "../Select/Option";
import { type IOptionGroupProps } from "../Select/OptionGroup";
export declare function isOptionGroup(item: IOptionGroupProps | IOptionItemProps): item is IOptionGroupProps;
export interface IAutocompleteProps {
    /** Select type: single or multiple */
    type?: "single" | "multiple";
    /** List of options or group options */
    options?: (IOptionGroupProps | IOptionItemProps)[];
    /** Selected values */
    selected?: (string | number)[] | string | number;
    /** Mixed options values */
    mixedOptions?: (string | number)[];
    /** Input Element. */
    inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;
    /** Text for empty value */
    emptyValue?: string;
    /** Text for No result */
    noResultText?: string;
    /** Render option */
    renderOption?: (option: Record<string, ReactNode>, data: Record<string, unknown>) => string | ReactElement;
    /** Default value that renders on top of list */
    defaultValue?: string;
    /** Sort direction for labels */
    sortDirection?: "asc" | "desc";
    /** handleChange callback */
    handleChange?: (e: (string | number)[] | string | number | null | undefined) => void;
    /** ClassName for single option */
    optionClassName?: string;
    /** handleEmptyAction */
    handleEmptyAction?: (e: string | number) => void;
    /** Disable sorting options */
    disabledInternalSort?: boolean;
    /** ClassName for Autocomplete component */
    AutocompleteClassName?: string;
    /** handleDefaultOptionChange callback */
    handleDefaultOptionChange?: () => void;
    /** Should default value be selected */
    preselectDefaultValue?: boolean;
    /** Should order stay the same after choosing an option */
    keepSameOptionsOrder?: boolean;
    /** Set max height property for scrollbars */
    autoHeightMax?: number;
    /** Clear input on select - works in single mode */
    clearInputOnSelect?: boolean;
    /** Custom filter function for additional filtering criteria */
    filterCriteria?: (option: IOptionItemProps, filter: string) => boolean;
    disableVirtualization?: boolean;
}
export declare const Autocomplete: FC<IAutocompleteProps>;
//# sourceMappingURL=Autocomplete.d.ts.map