import React, { RefObject } from 'react'; import { Props } from '../../../common'; interface IPopoverPosition { xPos: Props.Position.Left | Props.Position.Right | Props.Position.Auto; yPos: Props.Position.Top | Props.Position.Bottom | Props.Position.Auto; } interface IPopoverProps { /** * id to use for the popover to identify it on the page. * * This is required for accessibility - if triggered by a button, this id * should match some other element on the page with role="button" and * aria-owns="{id}". This ensures that screen readers and other devices * can use the popover. * * Do NOT auto-generate this id unless it matches another element on the page. */ id: string; /** * What position on the parent to anchor relative to; 'auto' will find * a best position automatically. */ parentAnchorPosition?: IPopoverPosition | 'auto'; /** * What position on the popover itself to place at the anchor position; * 'auto' will find a best position automatically. */ popoverAnchorPosition?: IPopoverPosition | 'auto'; /** Whether the popover is showing currently or not */ isOpen: boolean; /** Parent ref to anchor this to on the page */ parentRef: RefObject; animationType?: 'dropdown' | 'tooltip'; /** The data-cy */ componentContext?: string; } declare class Popover extends React.Component, never> { static AUTO_FLIP_CUTOFF: number; static defaultProps: Partial; private currentlyMounted; componentDidMount(): void; componentWillUnmount(): void; render(): JSX.Element; private onWindowUpdate; private debounceOnWindowUpdate; private get animationTimeout(); private get transition(); private animatedPopoverContent; private get parentBoundingRect(); private get parentInLeftSideOfWindow(); private get parentInTopSideOfWindow(); private get popoverAnchorXPosition(); private get popoverAnchorYPosition(); private get parentAnchorXPosition(); private get parentAnchorYPosition(); private get parentAnchorOffset(); private get popoverXOffset(); private get popoverYOffset(); } export { IPopoverPosition, Popover };