import React from 'react'; import PropTypes from 'prop-types'; import BaseComponent from '../_base/baseComponent'; import Tooltip, { Position, TooltipProps, Trigger } from '../tooltip/index'; import DropdownMenu from './dropdownMenu'; import { DropdownItemProps } from './dropdownItem'; import { DropdownDividerProps } from './dropdownDivider'; import DropdownTitle, { DropdownTitleProps } from './dropdownTitle'; import { DropdownContextType } from './context'; import '@douyinfe/semi-foundation/lib/es/dropdown/dropdown.css'; export type { DropdownDividerProps } from './dropdownDivider'; export type { DropdownItemProps, Type } from './dropdownItem'; export type { DropdownMenuProps } from './dropdownMenu'; export type { DropdownTitleProps } from './dropdownTitle'; export interface DropDownMenuItemItem extends DropdownItemProps { node: 'item'; name?: string; } export interface DropDownMenuItemDivider extends DropdownDividerProps { node: 'divider'; } export interface DropDownMenuItemTitle extends DropdownTitleProps { node: 'title'; name?: string; } export type DropDownMenuItem = DropDownMenuItemItem | DropDownMenuItemDivider | DropDownMenuItemTitle; export interface DropdownProps extends TooltipProps { render?: React.ReactNode; children?: React.ReactNode; visible?: boolean; position?: Position; getPopupContainer?: () => HTMLElement; mouseEnterDelay?: number; mouseLeaveDelay?: number; menu?: DropDownMenuItem[]; trigger?: Trigger; zIndex?: number; motion?: boolean; className?: string; contentClassName?: string | any[]; style?: React.CSSProperties; onVisibleChange?: (visible: boolean) => void; rePosKey?: string | number; showTick?: boolean; closeOnEsc?: TooltipProps['closeOnEsc']; onEscKeyDown?: TooltipProps['onEscKeyDown']; } interface DropdownState { popVisible: boolean; } declare class Dropdown extends BaseComponent { static Menu: typeof DropdownMenu; static Item: React.ForwardRefExoticComponent> & { elementType?: string; }; static Divider: React.FC; static Title: typeof DropdownTitle; static contextType: React.Context; static propTypes: { children: PropTypes.Requireable; contentClassName: PropTypes.Requireable>; className: PropTypes.Requireable; getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>; margin: PropTypes.Requireable>; mouseEnterDelay: PropTypes.Requireable; mouseLeaveDelay: PropTypes.Requireable; menu: PropTypes.Requireable; motion: PropTypes.Requireable>; onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>; prefixCls: PropTypes.Requireable; position: PropTypes.Requireable<"left" | "top" | "right" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">; rePosKey: PropTypes.Requireable>; render: PropTypes.Requireable; spacing: PropTypes.Requireable>; showTick: PropTypes.Requireable; style: PropTypes.Requireable; trigger: PropTypes.Requireable; visible: PropTypes.Requireable; zIndex: PropTypes.Requireable; }; static __SemiComponentName__: string; static defaultProps: any; tooltipRef: React.RefObject; constructor(props: DropdownProps); context: DropdownContextType; get adapter(): { setPopVisible: (popVisible: boolean) => void; notifyVisibleChange: (visible: boolean) => void; getPopupId: () => string; getContext(key: string): any; getContexts(): any; getProp(key: string): any; getProps(): DropdownProps; getState(key: string): any; getStates(): DropdownState; setState(s: Pick, callback?: any): void; getCache(c: string): any; getCaches(): any; setCache(key: any, value: any): void; stopPropagation(e: any): void; persistEvent: (event: any) => void; }; handleVisibleChange: (visible: boolean) => any; renderContent(): React.JSX.Element; renderMenu(): React.JSX.Element; renderPopCard(): React.JSX.Element; render(): React.JSX.Element; } export default Dropdown;