import React, { CSSProperties, Key } from 'react';
import ViewComponent, { ViewComponentProps } from '../../pro/lib/core/ViewComponent';
import Align from '../align';
export interface PopupProps extends ViewComponentProps {
    align: object;
    onAlign?: (source: Node, align: object, target: HTMLElement, translate: {
        x: number;
        y: number;
    }) => void;
    getRootDomNode?: () => Element | Text | null;
    getPopupContainer?: (triggerNode: Element) => HTMLElement | undefined | null;
    transitionName?: string;
    onAnimateAppear?: (key: Key | null) => void;
    onAnimateEnter?: (key: Key | null) => void;
    onAnimateLeave?: (key: Key | null) => void;
    onAnimateEnd?: (key: Key | null, exists: boolean) => void;
    getStyleFromAlign?: (target: HTMLElement, align: object) => object | undefined;
    getClassNameFromAlign?: (align: object) => string | undefined;
    getFocusableElements?: (elements: HTMLElement[]) => void;
    forceRender?: boolean;
}
export default class Popup extends ViewComponent<PopupProps> {
    static displayName: string;
    static defaultProps: {
        suffixCls: string;
        transitionName: string;
    };
    popupContainer?: HTMLDivElement;
    currentAlignClassName?: string;
    currentAlignStyle?: CSSProperties;
    align: Align | null;
    target?: HTMLElement;
    contentRendered: boolean;
    popupKey: string;
    size?: {
        width?: number;
        height?: number;
    };
    saveRef: (align: any) => any;
    getOmitPropsKeys(): string[];
    componentWillUnmount(): void;
    componentDidUpdate(): void;
    componentDidMount(): void;
    findFocusableElements(): void;
    renderInner(innerRef: any): JSX.Element;
    render(): React.ReactPortal | null;
    getContainer(): HTMLDivElement | undefined;
    onAlign(source: any, align: any, target: any, translate: any): void;
    handlePopupResize(width: any, height: any): void;
    forceAlign(): void;
}
export declare function getGlobalPopupContainer(): HTMLDivElement;
