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; }; export declare function Popper({ popperRef, ...restProps }: PopperProps): JSX.Element; export {}; //# sourceMappingURL=Popper.d.ts.map