import type { PropsWithChildren } from "react"; import React from "react"; import { type AnyOption, type Option } from "./Autocomplete.types"; export interface MenuOptionProps { readonly isHighlighted: boolean; readonly option: AnyOption; readonly onOptionSelect: (option?: AnyOption) => void; /** * Whether to add separators between the options. */ readonly addSeparators: boolean; readonly isSelected: boolean; readonly UNSAFE_className?: { option?: BaseMenuOptionProps["UNSAFE_className"]; content?: MenuOptionContentProps["UNSAFE_className"]; groupOption?: MenuGroupOptionProps["UNSAFE_className"]; }; readonly UNSAFE_style?: { option?: BaseMenuOptionProps["UNSAFE_style"]; content?: MenuOptionContentProps["UNSAFE_style"]; groupOption?: MenuGroupOptionProps["UNSAFE_style"]; }; } /** * The rendering of the default MenuOption */ export declare function MenuOption({ isHighlighted, option, onOptionSelect, isSelected, addSeparators, UNSAFE_className, UNSAFE_style, }: MenuOptionProps): React.JSX.Element; interface MenuOptionContentProps { readonly UNSAFE_className?: { readonly icon?: string; readonly text?: string; readonly details?: string; readonly label?: string; }; readonly UNSAFE_style?: { readonly icon?: React.CSSProperties; readonly text?: React.CSSProperties; readonly label?: React.CSSProperties; readonly details?: React.CSSProperties; }; readonly option: Option; readonly isSelected: boolean; } export declare function MenuOptionContent({ option, isSelected, UNSAFE_className, UNSAFE_style, }: MenuOptionContentProps): React.JSX.Element; export interface MenuGroupOptionProps { readonly option: AnyOption; readonly UNSAFE_className?: { heading?: string; }; readonly UNSAFE_style?: { heading?: React.CSSProperties; }; } /** * The rendering of the default MenuGroupOption */ export declare function MenuGroupOptions({ option, UNSAFE_className, UNSAFE_style, }: MenuGroupOptionProps): React.JSX.Element; /** * The base component for the MenuGroupOption */ export interface BaseMenuGroupOptionProps extends PropsWithChildren { readonly UNSAFE_className?: string; readonly UNSAFE_style?: React.CSSProperties; } export declare function BaseMenuGroupOption({ children, UNSAFE_className, UNSAFE_style, }: BaseMenuGroupOptionProps): React.JSX.Element; export interface BaseMenuOptionProps extends PropsWithChildren { readonly option?: GenericOption; readonly onOptionSelect?: (option?: GenericOption) => void; readonly isHighlighted: boolean; readonly addSeparators: boolean; readonly UNSAFE_className?: string; readonly UNSAFE_style?: React.CSSProperties; } /** * Renders the base option component. The component takes children and renders them inside a button. */ export declare function BaseMenuOption({ option, isHighlighted, onOptionSelect, addSeparators, children, UNSAFE_className, UNSAFE_style, }: BaseMenuOptionProps): React.JSX.Element; export {};