import { PopperPlacementType as MuiPopperPlacementType } from '@material-ui/core';
import { ReactNode, Ref } from 'react';
import { TransitionProps } from '@material-ui/core/transitions/transition';
import PopperJs from 'popper.js';
type AnchorEl = HTMLElement | {
    clientWidth: number;
    clientHeight: number;
    getBoundingClientRect: HTMLElement['getBoundingClientRect'];
};
export type PopperProps = {
    /**
     * Contents of the popover
     */
    children: ReactNode | ((props: {
        placement: MuiPopperPlacementType;
        TransitionProps?: TransitionProps;
    }) => ReactNode);
    open: boolean;
    /**
     * Defines an HTML node to which the content will be positioned
     */
    anchorEl?: AnchorEl | (() => AnchorEl) | null;
    /**
     * Defines placement
     * @default bottom
     */
    placement?: 'bottom-end' | 'bottom-start' | 'bottom' | 'left-end' | 'left-start' | 'left' | 'right-end' | 'right-start' | 'right' | 'top-end' | 'top-start' | 'top';
    /**
     * Popper's modifiers. See [documentation](https://popper.js.org/docs/v1/#modifiers)
     */
    modifiers?: object;
    /**
     * Element where Popper will mount. Default - `document.body`
     *
     * Does not open "pseudo-fullscreen" for an isolated app if passed
     */
    container?: HTMLElement;
    /**
     * Help supporting a react-transition-group/Transition component
     */
    transition?: boolean;
    className?: string;
    /**
     * Ref to popper object. Use `scheduleUpdate` method for performant reposition/recalculation as per [docs](https://popper.js.org/docs/v1/#popperscheduleupdate)
     */
    popperRef?: Ref<PopperJs>;
};
export declare function Popper({ popperRef, ...restProps }: PopperProps): JSX.Element;
export {};
//# sourceMappingURL=Popper.d.ts.map