import { FormOption, FormOptionsControlProps } from '../../../types';
import { NativeSelectProps as MuiNativeSelectProps, SelectProps as MuiSelectProps } from '@mui/material';
import { FieldPath, FieldValues, PathValue } from 'react-hook-form';
import { InputWidthVariant } from '../../../functions';
type SelectProps = Omit<MuiSelectProps<string>, 'onChange' | 'id' | 'name' | 'value' | 'input' | 'native'>;
type NativeSelectProps = Omit<MuiNativeSelectProps, 'onChange' | 'id' | 'name' | 'value' | 'input' | 'native'>;
type SharedFormSelectProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>, TOptionValue = PathValue<TFieldValues, TName>, TOption = FormOption<TOptionValue>> = FormOptionsControlProps<TFieldValues, TName, PathValue<TFieldValues, TName>, TOptionValue, TOption> & {
    onChange?: (value: PathValue<TFieldValues, TName> | null) => void;
    emptyValueLabel?: string | null;
    alwaysShowEmptyValue?: boolean;
    defaultValue?: PathValue<TFieldValues, TName>;
    native?: boolean | 'mobile' | 'tablet';
    inputWidth?: InputWidthVariant;
};
export type FormSelectProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TOptionValue = PathValue<TFieldValues, TName>, TOption = FormOption<TOptionValue>> = SharedFormSelectProps<TFieldValues, TName, TOptionValue, TOption> & SelectProps & NativeSelectProps;
export declare const FormSelect: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TOptionValue = PathValue<TFieldValues, TName>, TOption = FormOption<TOptionValue>>({ id: suppliedId, name, options, onChange, native, IconComponent, label, rules, shouldUnregister, helpMessage, errorMode, emptyValueLabel, defaultValue, alwaysShowEmptyValue, infoTooltipProps, inputWidth, sx, getOptionKey, getOptionValue, getOptionLabel, getOptionHelpMessage, isOptionDisabled, areOptionValuesEqual, ...selectProps }: FormSelectProps<TFieldValues, TName, TOptionValue, TOption>) => import("@emotion/react/jsx-runtime").JSX.Element;
export type FormNativeSelectProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TOptionValue = PathValue<TFieldValues, TName>, TOption = FormOption<TOptionValue>> = Omit<SharedFormSelectProps<TFieldValues, TName, TOptionValue, TOption>, 'native'> & NativeSelectProps;
export declare const FormNativeSelect: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TOptionValue = PathValue<TFieldValues, TName>, TOption = FormOption<TOptionValue>>(props: FormNativeSelectProps<TFieldValues, TName, TOptionValue, TOption>) => import("@emotion/react/jsx-runtime").JSX.Element;
export {};
