import React from 'react'; import { Modifier } from '@popperjs/core'; export declare const Placements: ["top", "left", "right", "bottom", "topLeft", "topRight", "bottomLeft", "bottomRight", "leftTop", "leftBottom", "rightTop", "rightBottom"]; export declare type PlacementType = typeof Placements[number]; export declare const Triggers: ["hover", "focus", "click", "contextMenu"]; export declare type TriggerType = typeof Triggers[number]; export declare type IReason = TriggerType | 'scroll' | 'clickOutside' | 'clickToClose' | 'parentHidden' | 'unknown' | 'selectPopperItem' | 'pressEnter' | 'escEnter' | 'delEnter' | 'otherEnter'; export declare type RenderFunction = () => React.ReactNode; export declare type RenderType = RenderFunction | React.ReactNode | undefined; export declare type RefType = React.RefObject>; export declare type PopperProps = { gap?: number; arrow?: boolean; visible?: boolean; prefixCls?: string; arrowSize?: number; disabled?: boolean; arrowOffset?: number; scrollHidden?: boolean; mouseEnterDelay?: number; mouseLeaveDelay?: number; defaultVisible?: boolean; autoPlacement?: boolean; autoPlacementList?: PlacementType[]; backgroundTransparent?: boolean; className?: string; style?: React.CSSProperties; popperClassName?: string; popperStyle?: React.CSSProperties; popperOuterClassName?: string; popperOuterStyle?: React.CSSProperties; placement?: PlacementType; tip?: RenderType; trigger?: TriggerType | Array; strategy?: 'fixed' | 'absolute'; clickToClose?: boolean; onTrigger?: (trigger: TriggerType) => void; onVisibleChange?: (visible: boolean, reason?: IReason, payload?: IPayload) => void; getTriggerElement?: (locatorNode: HTMLElement) => HTMLElement; getPopupContainer?: (locatorNode: HTMLElement) => HTMLElement; onTransitionEnd?: (e: React.TransitionEvent) => void; onAnimationEnd?: (e: React.AnimationEvent) => void; children?: RenderType; customerModifiers?: (modifiers: Partial>[]) => Partial>[]; }; export interface TriggerContextProps { registerSubPopup: (id: string, node: SubPopup) => void; } export declare const popperPlacementMap: { top: string; left: string; right: string; bottom: string; topLeft: string; topRight: string; bottomLeft: string; bottomRight: string; leftTop: string; leftBottom: string; rightTop: string; rightBottom: string; }; /** * 兼容IE8及以上的closest替代方法 * @param {element} element DOM元素 * @param {selector} string 选择器字符串 * @returns DOM元素 */ export declare function closestPolyfill(element: any, selector: string): any; export declare type SubPopup = { dom: HTMLElement | null; triggerOpen: (nextOpen: boolean, triggerType?: IReason, delay?: number, payload?: IPayload) => void; visible: boolean; subPopupRefs: React.MutableRefObject>; }; export declare type IPayload = { popperDom?: HTMLElement | false; referenceDom?: HTMLElement | false; event?: MouseEvent; subPopupRefs?: SubPopup['subPopupRefs']; }; export declare const Popper: React.ForwardRefExoticComponent>; export default Popper;