// import * as PopperJS from "popper.js"; type ItemId = string | number; interface IDropdownItemBase extends React.HTMLAttributes { icon?: React.ReactNode; itemId: ItemId; isDisabled?: boolean; isSelected?: boolean; divider?: boolean; onItemSelect?: ( itemId: ItemId, event?: React.MouseEvent | React.KeyboardEvent ) => void; } export interface IGetItemBodyPayload extends IDropdownItemBase { content: React.ReactNode; isFocused?: boolean; props: { [key: string]: any; }; onItemFocus?: (itemId: ItemId) => void; onMouseOverItem?: (itemId: ItemId) => void; } export interface IDropdownProps { children: React.ReactNode; className?: string; closeOnEscPress?: boolean; closeOnEnterPress?: boolean; closeKeyCodes?: number[]; eventsEnabled?: boolean; isVisible: boolean; modifiers?: PopperJS.Modifiers; placement?: PopperJS.Placement; positionFixed?: boolean; referenceElement?: PopperJS.ReferenceObject; shouldUpdateOnResize?: boolean; zIndex?: number; triggerRenderer?: (props: { ref: React.Ref }) => void; onClose: () => void; } export interface IDropdownItem extends IDropdownItemBase { content: React.ReactNode; icon?: React.ReactNode; props?: { [key: string]: any; }; onItemFocus?: (itemId: ItemId) => void; } export interface IDropdownListProps extends React.HTMLAttributes { autoFocusedItemId?: string; autoFocusOnItemsCountChange?: boolean; className?: string; items: IDropdownItem[]; itemSelectKeyCodes?: number[]; keyboardEventsEnabled?: boolean; getItemBody?(payload: IGetItemBodyPayload): React.ReactNode; } export interface IDropdownListItemProps extends IDropdownItemBase { children: React.ReactNode; icon?: React.ReactNode; isFocused?: boolean; onMouseOverItem?: (itemId: ItemId) => void; } export var Dropdown: React.ComponentType; export var DropdownList: React.ComponentType; export var DropdownListItem: React.ComponentType;