import { type ReactNode } from "react";
import { type TextIconSpacingProps } from "../icon/TextIconSpacing.js";
import { type MenuItemProps } from "../menu/MenuItem.js";
/**
 * This icon is used while the option is unselected so that the selected and
 * unselected options have the same alignment.
 *
 * @since 6.0.0
 */
export declare const DEFAULT_OPTION_UNSELECTED_ICON: import("react").JSX.Element;
/**
 * @since 6.0.0 removed the `selected` and `focused` props.
 * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
 * `selectedIconAfter`, and `iconSpacingProps` props.
 */
export interface OptionProps extends MenuItemProps {
    /**
     * @defaultValue `"option"`
     */
    role?: string;
    value: string | number;
    /**
     * @defaultValue `getIcon("selected")`
     */
    selectedIcon?: ReactNode;
    /**
     * @see {@link DEFAULT_OPTION_UNSELECTED_ICON}
     * @defaultValue `<span className="rmd-icon rmd-icon--svg" />`
     */
    unselectedIcon?: ReactNode;
    /**
     * Set this to `true` of the {@link selectedIcon}/{@link unselectedIcon}
     * should appear as the {@link rightAddon} instead of the {@link leftAddon}.
     *
     * @defaultValue `false`
     */
    selectedIconAfter?: boolean;
    /**
     * Since the `selectedIcon`/`unselectedIcon` are rendered as
     * `leftAddon`/`rightAddon`, the provided `leftAddon`/`rightAddon` will be
     * wrapped in the {@link TextIconSpacing} component to maintain the correct
     * spacing. You can use this prop to provide any additional configuration to
     * the spacing.
     *
     * @example
     * ```tsx
     * <Option
     *   leftAddon={<Avatar>A</Avatar>}
     *   leftAddonType="avatar"
     *   value={0}
     *   textIconSpacingProps={{
     *     beforeClassName: "my-custom-class-name",
     *   }}
     * >
     *   Some Content
     * </Option>
     * ```
     */
    textIconSpacingProps?: Omit<TextIconSpacingProps, "icon" | "children">;
}
/**
 * **Client Component**
 *
 * This component is a wrapper around the {@link MenuItem} to implement custom
 * select option behavior.
 *
 * @since 6.0.0 removed the `selected` and `focused` props.
 * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
 * `selectedIconAfter`, and `iconSpacingProps` props.
 */
export declare const Option: import("react").ForwardRefExoticComponent<OptionProps & import("react").RefAttributes<HTMLLIElement>>;
