/// <reference types="react" />
import type { AutocompleteRenderGroupParams, AutocompleteRenderInputParams } from '@mui/material';
import type { SelectOption } from './GeneralAutocomplete.types';
export type DialogComponentProps = {
    open: boolean;
    onClose: () => void;
    selectedOptionForDialog: SelectOption | null;
};
export type GeneralAutocompleteProps = {
    options: SelectOption[];
    value?: string;
    handleClick?: (option: SelectOption) => void;
    error?: string;
    width?: number | string;
    optionsHeight?: number | string;
    noOptionsText?: string | ((value: string) => string);
    DialogComponent?: React.ComponentType<DialogComponentProps>;
    RenderOptionComponent?: ({ props, option, handleIconClick, }: {
        props: React.HTMLAttributes<HTMLLIElement>;
        option: SelectOption;
        handleIconClick: (option: SelectOption, event: React.MouseEvent) => void;
    }) => React.ReactNode;
    RenderInputComponent?: (params: AutocompleteRenderInputParams & {
        value: string;
        hasError: boolean;
        onValueChange: (val: string) => void;
    }) => React.ReactElement | null;
    RenderGroupComponent?: ({ params, }: {
        params: AutocompleteRenderGroupParams;
    }) => React.ReactElement | null;
    filterOptionsFunction?: (options: SelectOption[], inputValue: string) => SelectOption[];
    disabled?: boolean;
    handleValueChange?: (value: string) => void;
    ariaLabel?: string;
    labelId?: string;
    required?: boolean;
};
declare const GeneralAutocomplete: ({ options, value, handleClick, error, DialogComponent, RenderOptionComponent, RenderGroupComponent, RenderInputComponent, width, optionsHeight, noOptionsText, filterOptionsFunction, disabled, handleValueChange, ariaLabel, labelId, required, }: GeneralAutocompleteProps) => import("react/jsx-runtime").JSX.Element;
export default GeneralAutocomplete;
