import type { AttachNode, ClassName, Styles, TNode } from '../common';
export declare type PopupMethod = (triggerElement: string, content: string | TNode, popupProps?: object) => void;
export interface TdPopupProps {
    attach?: AttachNode;
    content?: string | TNode;
    default?: string | TNode;
    delay?: number | Array<number>;
    destroyOnClose?: boolean;
    disabled?: boolean;
    hideEmptyPopup?: boolean;
    overlayClassName?: ClassName;
    overlayInnerClassName?: ClassName;
    overlayInnerStyle?: Styles | ((triggerElement: HTMLElement, popupElement: HTMLElement) => Styles);
    overlayStyle?: Styles | ((triggerElement: HTMLElement, popupElement: HTMLElement) => Styles);
    placement?: PopupPlacement;
    popperOptions?: object;
    showArrow?: boolean;
    trigger?: 'hover' | 'click' | 'focus' | 'mousedown' | 'context-menu';
    triggerElement?: string | TNode;
    visible?: boolean;
    defaultVisible?: boolean;
    zIndex?: number;
    onScroll?: (context: {
        e: WheelEvent;
    }) => void;
    onScrollToBottom?: (context: {
        e: WheelEvent;
    }) => void;
    onVisibleChange?: (visible: boolean, context: PopupVisibleChangeContext) => void;
}
export declare type PopupPlacement = 'top' | 'left' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom';
export interface PopupVisibleChangeContext {
    e?: PopupTriggerEvent;
    trigger?: PopupTriggerSource;
}
export declare type PopupTriggerEvent = MouseEvent | FocusEvent | KeyboardEvent;
export declare type PopupTriggerSource = 'document' | 'trigger-element-click' | 'trigger-element-hover' | 'trigger-element-blur' | 'trigger-element-focus' | 'trigger-element-mousedown' | 'context-menu' | 'keydown-esc';
