import { default as React, ReactNode } from 'react'; import { GetToggleButtonPropsOptions } from 'downshift'; import { Placement } from '../../utils'; type OptionGroup = { key: string; label: string; options: T[]; }; type Option = { key: string; label: string; }; export interface ToggleButtonProps extends Omit { isDropdown: boolean; } export type DropdownMenuProps = { /** * className for the element. */ className?: string; /** * Maximum height of the dropdown content. */ dropdownContentMaxHeight?: string; /** * The list of options in the menu. */ options: (T | OptionGroup)[]; /** * Placement the menu will render relative to the field. * @default bottom-start */ placement?: Placement; /** * Whether the dropdown should stay open when an option is selected. * @default false */ keepOpenOnSelect?: boolean; /** * Handler that is called when a option is selected. */ onSelect?(option: T): void; /** * Function to render the button. */ renderButton(getToggleButtonProps: (options?: GetToggleButtonPropsOptions) => ToggleButtonProps, isDropdownOpened: boolean): ReactNode; /** * Function to render option. Should return DropdownItem(s). */ renderOption?(option: T, index: number, state?: { isSelected: boolean; }): ReactNode; /** * Function to render option group. */ renderOptionGroup?(optionGroup: OptionGroup): ReactNode; }; export declare const DropdownMenu: ({ className, dropdownContentMaxHeight, options, placement, keepOpenOnSelect, onSelect, renderButton, renderOption, renderOptionGroup, ...rest }: DropdownMenuProps) => React.JSX.Element; export {}; //# sourceMappingURL=DropdownMenu.d.ts.map