import { ChangeEvent, ComponentType, MouseEventHandler, ReactNode } from 'react';
import { AutocompleteProps } from '@material-ui/lab';
import { InputProps as MuiInputProps } from '@material-ui/core';
type SearchProps = {
    onChange: (event: ChangeEvent<{}>, selected: any | any[] | null) => void;
    value?: object | object[];
    options?: {
        label?: string;
        id: string;
        group?: string;
    }[];
    AutocompleteProps?: {
        getOptionDisabled?: (option: any) => boolean;
        forcePopupIcon?: boolean;
    };
    allChecked?: boolean;
    TextFieldProps?: {
        label?: string;
        endAdornment?: ReactNode;
    };
    selectedGroup?: {
        name?: string;
        id?: string;
    };
    onGroupReset?: MouseEventHandler<HTMLSpanElement>;
    onClose?: () => void;
    disableClearable?: boolean;
    onInputChange?: (value: string) => void;
    getOptionLabel?: (option: any) => string;
    onGroupChange?: (group?: {
        name?: string;
        id?: string;
    }) => void;
    loading?: boolean;
    disabled?: boolean;
    multiple?: boolean;
    optionSize?: 'large';
    popupIcon?: ReactNode;
    InputProps?: Partial<MuiInputProps>;
    ListboxProps?: object;
    classes?: Partial<{
        popper: string;
        listbox: string;
        popupIndicator: string;
        popupIndicatorOpen: string;
        groupChip: string;
    } & Record<string, string>>;
    onInputChangeCallback?: (newInputValue: string, reason: string) => void;
    placeholder?: string;
    RecentSearchesComponent?: ComponentType<any>;
    ListboxComponent?: any;
    recentSearchesMaxCount?: number;
    dataStorageKey?: string;
    dataStorage?: object;
    groups?: {
        id: string;
        name: string;
    }[];
    GroupsComponent?: ComponentType<{
        onGroupClick: (id: string) => void;
        groups: {
            id: string;
            name: string;
        }[];
    }>;
    onOpen?: (e?: any) => void;
    renderCustomOption?: (option: any, state: any) => ReactNode;
    onInputReset?: () => void;
    isHiddenAllOption?: boolean;
    paperFooter?: ReactNode;
    isOpenedFromParent?: boolean;
    popperProps?: Partial<{
        style: object;
    }>;
    onFocus?: () => void;
    inputProps?: object;
    noOptionsText?: string;
    isPrioritizedSelectedOptions?: boolean;
} & Omit<AutocompleteProps<any, false, false, false>, 'value' | 'onChange' | 'options' | 'onClose' | 'disableClearable' | 'onInputChange' | 'getOptionLabel' | 'loading' | 'disabled' | 'multiple' | 'popupIcon' | 'ListboxProps' | 'classes' | 'placeholder' | 'ListboxComponent' | 'onOpen' | 'onFocus' | 'inp' | 'noOptionsText' | 'renderInput' | 'PopperComponent' | 'open' | 'forcePopupIcon' | 'fullWidth' | 'renderGroup' | 'disableCloseOnSelect' | 'renderOption' | 'groupBy' | 'PaperComponent' | 'inputValue' | 'getOptionDisabled' | 'loadingText' | 'InputProps' | 'isNullable'>;
export declare const Search: {
    ({ AutocompleteProps, value, disableClearable, onChange, onInputChange, loading, options, optionSize, placeholder, onGroupChange, disabled, multiple, groups, GroupsComponent, recentSearchesMaxCount, dataStorageKey, RecentSearchesComponent, dataStorage, onInputReset, getOptionLabel, TextFieldProps, ListboxProps, onInputChangeCallback, renderCustomOption, isHiddenAllOption, onOpen, selectedGroup, onGroupReset, onClose, popperProps, paperFooter, noOptionsText, ListboxComponent, isPrioritizedSelectedOptions, isOpenedFromParent, onFocus, InputProps, classes, popupIcon, ...props }: SearchProps): JSX.Element;
    Groups: ({ onGroupClick, groups }: {
        onGroupClick: (id: string) => void;
        groups: {
            id: string;
            name: string;
        }[];
    }) => JSX.Element;
};
export default Search;
//# sourceMappingURL=Search.d.ts.map