import {
type CSSProperties,
type HTMLAttributes,
type ReactElement,
type ReactNode,
type Ref,
type SelectHTMLAttributes,
} from "react";
import { getIcon } from "../icon/config.js";
import { type PropsWithRef } from "../types.js";
import { useEnsuredId } from "../useEnsuredId.js";
import { FormMessageContainer } from "./FormMessageContainer.js";
import { Label } from "./Label.js";
import { TextFieldContainer } from "./TextFieldContainer.js";
import { getFormConfig } from "./formConfig.js";
import { nativeSelect, nativeSelectContainer } from "./nativeSelectStyles.js";
import {
type FormFieldOptions,
type UserAgentAutocompleteProps,
} from "./types.js";
/**
* @since 6.0.0 Added support for {@link UserAgentAutocompleteProps}
*/
export interface NativeSelectProps
extends
Omit, "autoComplete">,
UserAgentAutocompleteProps,
FormFieldOptions {
ref?: Ref;
/**
* A custom dropdown icon to use instead of the browser's default select
* dropdown icon.
*
* Set this to `null` if the browser's default icon should be used instead.
*
* @defaultValue `getIcon("dropdown")`
*/
icon?: ReactNode;
/**
* This applies custom inline styles to the `