///
import type { CSSMotionProps } from '../Motion/CSSMotion.types';
import { AlignType } from '../Align/Align.types';
export declare type BuildInPlacements = Record;
export declare type StretchType = string;
export declare type ActionType = string;
export declare type AnimationType = string;
export interface Point {
pageX: number;
pageY: number;
}
export interface CommonEventHandler {
remove: () => void;
}
export interface MobileConfig {
/** Set popup motion. You can ref `motion` for more info. */
popupMotion?: CSSMotionProps;
popupClassNames?: string;
popupStyle?: React.CSSProperties;
popupRender?: (originNode: React.ReactNode) => React.ReactNode;
}
export interface TriggerProps {
children: React.ReactElement;
action?: ActionType | ActionType[];
showAction?: ActionType[];
hideAction?: ActionType[];
getPopupClassNameFromAlign?: (align: AlignType) => string;
onPopupVisibleChange?: (visible: boolean) => void;
onPopupClick?: React.MouseEventHandler;
afterPopupVisibleChange?: (visible: boolean) => void;
popup: React.ReactNode | (() => React.ReactNode);
popupStyle?: React.CSSProperties;
popupClassNames?: string;
classNames?: string;
popupPlacement?: string;
builtinPlacements?: BuildInPlacements;
mouseEnterDelay?: number;
mouseLeaveDelay?: number;
zIndex?: number;
focusDelay?: number;
blurDelay?: number;
getPopupContainer?: (node: HTMLElement) => HTMLElement;
getDocument?: (element?: HTMLElement) => HTMLDocument;
forceRender?: boolean;
destroyPopupOnHide?: boolean;
mask?: boolean;
maskClosable?: boolean;
onPopupAlign?: (element: HTMLElement, align: AlignType) => void;
popupAlign?: AlignType;
popupVisible?: boolean;
defaultPopupVisible?: boolean;
autoDestroy?: boolean;
stretch?: string;
alignPoint?: boolean;
/** Set popup motion. You can ref `motion` for more info. */
popupMotion?: CSSMotionProps;
/** Set mask motion. You can ref `motion` for more info. */
maskMotion?: CSSMotionProps;
/**
* @private Get trigger DOM node.
* Used for some component is function component which can not access by `findDOMNode`
*/
getTriggerDOMNode?: (node: React.ReactInstance) => HTMLElement;
/** @private Bump fixed position at bottom in mobile. **/
mobile?: MobileConfig;
}