import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import type { PopoverProps } from './Popover.types';
declare class Popover extends PureComponent<PopoverProps> {
    static displayName: string;
    static Element: React.FunctionComponent<import("./PopoverCore/utils/utils").ElementProps>;
    static Content: React.FunctionComponent<import("./PopoverCore/utils/utils").ElementProps>;
    static propTypes: {
        /** The Popover's placement:
         *  * auto-start
         *  * auto
         *  * auto-end
         *  * top-start
         *  * top
         *  * top-end
         *  * right-start
         *  * right
         *  * right-end
         *  * bottom-end
         *  * bottom
         *  * bottom-start
         *  * left-end
         *  * left
         *  * left-start
         */
        placement: PropTypes.Requireable<string>;
        /** Is the content shown or not */
        shown: PropTypes.Requireable<boolean>;
        /** Enables calculations in relation to a dom element */
        appendTo: PropTypes.Requireable<string>;
        /** custom classname */
        className: PropTypes.Requireable<string>;
        /** the classname to be passed to the popover's content container */
        contentClassName: PropTypes.Requireable<string>;
        /** Custom arrow element */
        customArrow: PropTypes.Requireable<(...args: any[]) => any>;
        /** Breaking change: When true - onClickOutside will be called only when popover content is shown */
        disableClickOutsideWhenClosed: PropTypes.Requireable<boolean>;
        /** popovers content is set to minnimum width of trigger element, but it can expand up to the value of maxWidth. */
        dynamicWidth: PropTypes.Requireable<boolean>;
        /** Clicking on elements with this excluded class will will not trigger onClickOutside callback */
        excludeClass: PropTypes.Requireable<string>;
        /**
         * Whether to enable the fixed behaviour. This behaviour is used to keep the `<Popover/>` at it's
         * original placement even when it's being positioned outside the boundary.
         */
        fixed: PropTypes.Requireable<boolean>;
        /**
         * Whether to enable the flip behaviour. This behaviour is used to flip the `<Popover/>`'s placement
         * when it starts to overlap the target element (`<Popover.Element/>`).
         */
        flip: PropTypes.Requireable<boolean>;
        fluid: PropTypes.Requireable<boolean>;
        /** Hide Delay in ms */
        hideDelay: PropTypes.Requireable<number>;
        /** Id */
        id: PropTypes.Requireable<string>;
        /**
         * popover content maxWidth value
         * - `number` value which converts to css with `px`
         * - `string` value that contains `px`
         */
        maxWidth: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        /**
         * popover content minWidth value
         * - `number` value which converts to css with `px`
         * - `string` value that contains `px`
         */
        minWidth: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        /** Moves arrow by amount */
        moveArrowTo: PropTypes.Requireable<number>;
        /** Moves popover relative to the parent */
        moveBy: PropTypes.Requireable<PropTypes.InferProps<{
            x: PropTypes.Requireable<number>;
            y: PropTypes.Requireable<number>;
        }>>;
        /** onClick on the component */
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        /** Provides callback to invoke when clicked outside of the popover */
        onClickOutside: PropTypes.Requireable<(...args: any[]) => any>;
        /** onKeyDown on the target component */
        onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
        /** onMouseEnter on the component */
        onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
        /** onMouseLeave on the component */
        onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
        /** target element role value */
        role: PropTypes.Requireable<string>;
        /** Show show arrow from the content */
        showArrow: PropTypes.Requireable<boolean>;
        /** Show Delay in ms */
        showDelay: PropTypes.Requireable<number>;
        /** Inline style */
        style: PropTypes.Requireable<object>;
        /** Animation timer */
        timeout: PropTypes.Requireable<NonNullable<number | PropTypes.InferProps<{
            enter: PropTypes.Requireable<number>;
            exit: PropTypes.Requireable<number>;
        }> | null | undefined>>;
        /**
         * popover content width value
         * - `number` value which converts to css with `px`
         * - `string` value that contains `px`
         */
        width: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        /** popover z-index */
        zIndex: PropTypes.Requireable<number>;
        /** Applied as data-hook HTML attribute that can be used in the tests */
        dataHook: PropTypes.Requireable<string>;
        /** Adds enter and exit animation */
        animate: PropTypes.Requireable<boolean>;
        /** The theme of the popover */
        theme: PropTypes.Requireable<string>;
        /** Callback fo invoke when popover is shown */
        onShow: PropTypes.Requireable<(...args: any[]) => any>;
        /** Callback fo invoke when popover is hidden */
        onHide: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        appendTo: string;
        theme: string;
        animate: boolean;
    };
    render(): React.JSX.Element;
}
export default Popover;
//# sourceMappingURL=Popover.d.ts.map