import { ReferenceObject } from "popper.js";
import { RefObject, HTMLProps } from "react";
export declare type Trigger = (props: TriggerProps) => JSX.Element;
export declare type TriggerWithProps
= [(triggerProps: P & TriggerProps) => JSX.Element, P];
export interface TriggerProps {
overlayElementRef: RefObject;
childrenElementRef: RefObject;
visible: boolean;
setVisible: (visible: boolean, delay?: number) => Promise;
openDelay: number;
closeDelay: number;
render: (renderProps: TriggerRenderProps) => JSX.Element;
}
export interface TriggerRenderProps {
overlayProps: HTMLProps;
childrenProps: HTMLProps;
referenceElement?: ReferenceObject;
}
export declare const buildinTriggers: {
click: Trigger;
hover: Trigger;
focus: Trigger;
empty: Trigger;
contextMenu: Trigger;
};
/**
* 点击的时候打开
*
* - children 上绑定 onClick 事件,点击时打开
* - children 上添加 useClickOutside Hook,外部点击时关闭,并排除 overlayElement
*/
export declare function ClickTrigger({ childrenElementRef, overlayElementRef, visible, setVisible, openDelay, closeDelay, render, }: TriggerProps): JSX.Element;
export declare namespace ClickTrigger {
var displayName: string;
}
/**
* 右键点击的时候打开
*
* - children 上绑定 onContextMenu 事件,点击时打开
* - children 上添加 useClickOutside Hook,外部点击时关闭,并排除 overlayElement
*/
export declare function ContextMenuTrigger({ childrenElementRef, overlayElementRef, visible, setVisible, openDelay, closeDelay, render, }: TriggerProps): JSX.Element;
export declare namespace ContextMenuTrigger {
var displayName: string;
}
/**
* 鼠标经过的时候打开
*/
export declare function HoverTrigger(props: TriggerProps): JSX.Element;
export declare namespace HoverTrigger {
var displayName: string;
}
export declare function FocusTrigger({ setVisible, openDelay, closeDelay, render, }: TriggerProps): JSX.Element;
export declare namespace FocusTrigger {
var displayName: string;
}
/**
* 表示空的触发交互
*/
export declare function EmptyTrigger(props: TriggerProps): JSX.Element;
export declare namespace EmptyTrigger {
var displayName: string;
}