import React from "react";
import { AxiosResponse } from "axios";
import { FormikValues } from "formik";
import { AutocompleteChangeReason, AutocompleteChangeDetails, AutocompleteRenderOptionState } from "@mui/material";
import { SelectProps, SelectRenderInputProps } from "../../../components/Form/fields/Select";
import OptionsType from "../../../components/Form/definitions/OptionsType";
import OptionInterface from "../../../components/Form/definitions/OptionInterface";
import FieldAutocompleteEndpointType from "../../../components/Form/definitions/FieldAutocompleteEndpointType";
import { SelectValueType } from "../../../components/Form/definitions/AutocompleteTypes";
interface SelectAutocompleteApiSpecificProps {
    endpoint: FieldAutocompleteEndpointType;
    onChange?: (path: string, setFieldValue: (field: string, value: any, shouldValidate?: boolean) => void, value: SelectValueType, onChange: () => void, setInputValue: React.Dispatch<React.SetStateAction<string>>, setSelectedOption: React.Dispatch<React.SetStateAction<undefined | OptionInterface>>, setSkipLoading: (skipLoading: boolean) => void, values: FormikValues, event: React.SyntheticEvent, reason: AutocompleteChangeReason, name: string, details?: AutocompleteChangeDetails<OptionInterface>) => void;
    processResponse?: (response: AxiosResponse) => OptionsType;
    getInitialSelectedOption?: (path: string, initialValues?: FormikValues, initializedValuesResponse?: AxiosResponse) => undefined | OptionInterface;
    getOptionRepresentation?: (option: OptionInterface) => string;
    renderOption?: (inputValue: string, props: React.HTMLAttributes<HTMLLIElement>, option: OptionInterface, state: AutocompleteRenderOptionState) => React.ReactNode;
    renderInput?: (params: SelectAutocompleteApiRenderInputProps) => React.ReactNode;
    noOptionsText?: (inputValue: string, loading: boolean) => string;
    disableNoOptionsTextTranslate?: boolean;
    loadUseEffectDependency?: any;
}
type SelectAutocompleteApiProps = SelectAutocompleteApiSpecificProps & Omit<SelectProps, "options" | "onChange" | "renderInput">;
interface SelectAutocompleteApiRenderInputProps extends SelectRenderInputProps {
    option?: OptionInterface;
    loading: boolean;
}
declare const SelectAutocompleteApi: {
    ({ endpoint, onChange, processResponse, loadUseEffectDependency, disableTranslateOption, getInitialSelectedOption, getOptionRepresentation, renderOption, renderInput, noOptionsText, disableNoOptionsTextTranslate, ...selectProps }: SelectAutocompleteApiProps): React.JSX.Element;
    defaultProps: {
        transformInitialValue: (value: any) => any;
    };
};
export default SelectAutocompleteApi;
export { SelectAutocompleteApiProps, SelectAutocompleteApiSpecificProps, SelectAutocompleteApiRenderInputProps };
