import * as react from 'react';
import { RefObject } from 'react';
import { PositionProps, AriaPopoverProps, PlacementAxis } from 'react-aria';
import { SlotProps } from 'react-aria-components';
import { OverlayTriggerProps } from 'react-stately';
import { RenderProps } from '../_utils/utils.js';
import 'react/jsx-runtime';
import '@react-types/shared';

interface BasePopoverProps extends Omit<PositionProps, 'isOpen'>, Omit<AriaPopoverProps, 'popoverRef' | 'triggerRef'>, OverlayTriggerProps, RenderProps<BasePopoverRenderProps>, SlotProps {
    /**
     * The ref for the element which the popover positions itself with respect to.
     *
     * When used within a trigger component such as DialogTrigger, MenuTrigger, Select, etc.,
     * this is set automatically. It is only required when used standalone.
     */
    triggerRef?: RefObject<Element>;
}
interface BasePopoverRenderProps {
    /**
     * The placement of the popover relative to the trigger.
     * @selector [data-placement="left | right | top | bottom"]
     */
    placement: PlacementAxis;
    /**
     * Whether the popover is currently entering. Use this to apply animations.
     * @selector [data-entering]
     */
    isEntering: boolean;
    /**
     * Whether the popover is currently exiting. Use this to apply animations.
     * @selector [data-exiting]
     */
    isExiting: boolean;
}
/**
 * A popover is an overlay element positioned relative to a trigger.
 */
declare const _Popover: (props: BasePopoverProps & react.RefAttributes<HTMLElement>) => React.ReactElement | null;

export { _Popover as BasePopover, BasePopoverProps, BasePopoverRenderProps };
