export default EventOverlay;
/**
 * @deprecated - Components in the legacy folder (/src/legacy) are deprecated. Please use a component from the components folder (/src/components) instead. Legacy components may not follow accessibility standards.
 **/
declare class EventOverlay extends React.Component<any, any, any> {
    static getDerivedStateFromProps({ isOpen }: {
        isOpen: any;
    }, state: any): any;
    constructor(props: any);
    constructor(props: any, context: any);
    state: {
        absoluteParent: any;
        containerParent: any;
        isOpen: boolean;
        scrollParent: any;
        transformParent: any;
        visibleDirection: any;
    };
    componentDidMount: () => void;
    componentDidUpdate: (prevProps: any, prevState: any) => void;
    componentWillUnmount: () => void;
    addHandlers: () => void;
    handleResize: () => void;
    handleScroll: () => void;
    observer: MutationObserver;
    findOverflow: (node: any, searchProps: any) => any;
    findParents: (ele: any, tempParentArr?: any[]) => any;
    findAbsoluteParent: (elementParents: any, searchProps: any, startIndex: any) => any;
    findScrollParent: (elementParents: any, searchProps: any) => any;
    findTransformParent: (elementParents: any, searchProps: any, startIndex: any) => any;
    focusOnAnchorNode: () => void;
    getAnchorPosition: (node: any) => {
        top: number;
        left: number;
        width: any;
        height: any;
    };
    getAbsoluteAnchorPosition: (node: any, absoluteParentDims: any) => {
        top: number;
        left: number;
        width: any;
        height: any;
    };
    getElementPosition: (element: any) => {
        offsetTop: any;
        offsetLeft: any;
        bottom: any;
        top: any;
        left: any;
        height: any;
        width: any;
        hasAbsParent: boolean;
    };
    getOrigin: () => {
        anchor: {};
        target: {};
    };
    getTargetPosition: (targetNode: any) => {
        top: number;
        center: number;
        bottom: any;
        left: number;
        middle: number;
        right: any;
    };
    handleAllowClickAway: (e: any) => void;
    handleClickAway: (e: any) => void;
    handleCloseOnClick: (e: any) => void;
    handleKeyDown: (e: any) => void;
    isVisible: () => void;
    removeHandlers: () => void;
    setArrowPlacement: (anchor: any, container: any) => void;
    setBoundingBox: (side: any, targetNode: any, anchorPosition: any) => void;
    elementHeight: any;
    elementBottom: any;
    elementWidth: any;
    elementLeft: any;
    elementRight: any;
    setBoundingContainer: (containerNode: any) => {
        bottom: any;
        center: number;
        height: any;
        left: any;
        middle: number;
        right: any;
        top: any;
        width: any;
    };
    setHorizontalClass: (alignment: any, anchor: any, elementBoundingRect: any, elementParent: any) => void;
    setPlacement: () => void;
    setVerticalClass: (alignment: any, anchor: any, elementBoundingRect: any, elementParent: any) => void;
    render(): any;
    arrow: HTMLDivElement;
    container: HTMLDivElement;
}
declare namespace EventOverlay {
    namespace defaultProps {
        let absoluteParentID: any;
        let allowClickAway: boolean;
        let anchorNode: any;
        let boundingParentID: any;
        let children: any;
        let checkOverflow: boolean;
        let className: string;
        let close: any;
        let direction: string;
        let disableCloseOnEnterOrSpaceKey: boolean;
        let focusLockProps: any;
        let isContained: string;
        let isDynamic: boolean;
        let isOpen: boolean;
        let maxHeight: any;
        let maxWidth: any;
        let portalNode: any;
        let scrollParentID: any;
        let shouldLockFocus: boolean;
        let showArrow: boolean;
        let style: any;
        namespace targetOffset {
            let horizontal: number;
            let vertical: number;
        }
        let transformParentID: any;
    }
    namespace propTypes {
        let absoluteParentID_1: PropTypes.Requireable<string>;
        export { absoluteParentID_1 as absoluteParentID };
        let allowClickAway_1: PropTypes.Requireable<boolean>;
        export { allowClickAway_1 as allowClickAway };
        let anchorNode_1: PropTypes.Requireable<object>;
        export { anchorNode_1 as anchorNode };
        let boundingParentID_1: PropTypes.Requireable<string>;
        export { boundingParentID_1 as boundingParentID };
        let checkOverflow_1: PropTypes.Requireable<boolean>;
        export { checkOverflow_1 as checkOverflow };
        let children_1: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        export { children_1 as children };
        let className_1: PropTypes.Requireable<string>;
        export { className_1 as className };
        let close_1: PropTypes.Requireable<(...args: any[]) => any>;
        export { close_1 as close };
        export let closeOnClick: PropTypes.Requireable<boolean>;
        let direction_1: PropTypes.Requireable<string>;
        export { direction_1 as direction };
        let disableCloseOnEnterOrSpaceKey_1: PropTypes.Requireable<boolean>;
        export { disableCloseOnEnterOrSpaceKey_1 as disableCloseOnEnterOrSpaceKey };
        let focusLockProps_1: PropTypes.Requireable<object>;
        export { focusLockProps_1 as focusLockProps };
        let isContained_1: PropTypes.Requireable<string | boolean>;
        export { isContained_1 as isContained };
        let isDynamic_1: PropTypes.Requireable<boolean>;
        export { isDynamic_1 as isDynamic };
        let isOpen_1: PropTypes.Requireable<boolean>;
        export { isOpen_1 as isOpen };
        let maxHeight_1: PropTypes.Requireable<number>;
        export { maxHeight_1 as maxHeight };
        let maxWidth_1: PropTypes.Requireable<number>;
        export { maxWidth_1 as maxWidth };
        let portalNode_1: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
        export { portalNode_1 as portalNode };
        let scrollParentID_1: PropTypes.Requireable<string>;
        export { scrollParentID_1 as scrollParentID };
        let shouldLockFocus_1: PropTypes.Requireable<boolean>;
        export { shouldLockFocus_1 as shouldLockFocus };
        let showArrow_1: PropTypes.Requireable<boolean>;
        export { showArrow_1 as showArrow };
        let style_1: PropTypes.Requireable<object>;
        export { style_1 as style };
        let targetOffset_1: PropTypes.Requireable<PropTypes.InferProps<{
            horizontal: PropTypes.Requireable<number>;
            vertical: PropTypes.Requireable<number>;
        }>>;
        export { targetOffset_1 as targetOffset };
        let transformParentID_1: PropTypes.Requireable<string>;
        export { transformParentID_1 as transformParentID };
    }
    let displayName: string;
}
import React from 'react';
import PropTypes from 'prop-types';
