import React, { type ElementType, type MouseEventHandler, type MutableRefObject, type Ref } from 'react'; import { type AnchorProps } from '../../internal/floating.js'; import type { Props } from '../../types.js'; import { type HasDisplayName, type PropsForFeatures, type RefProp } from '../../utils/render.js'; type MouseEvent = Parameters>[0]; declare let DEFAULT_POPOVER_TAG: "div"; type PopoverRenderPropArg = { open: boolean; close: (focusableElement?: HTMLElement | MutableRefObject | MouseEvent) => void; }; type PopoverPropsWeControl = never; export type PopoverProps = Props; declare function PopoverFn(props: PopoverProps, ref: Ref): React.JSX.Element; declare let DEFAULT_BUTTON_TAG: "button"; type ButtonRenderPropArg = { open: boolean; active: boolean; hover: boolean; focus: boolean; disabled: boolean; autofocus: boolean; }; type ButtonPropsWeControl = 'aria-controls' | 'aria-expanded'; export type PopoverButtonProps = Props; declare function ButtonFn(props: PopoverButtonProps, ref: Ref): React.JSX.Element; declare let DEFAULT_BACKDROP_TAG: "div"; type BackdropRenderPropArg = { open: boolean; }; type BackdropPropsWeControl = 'aria-hidden'; declare let BackdropRenderFeatures: number; export type PopoverBackdropProps = Props>; export type PopoverOverlayProps = PopoverBackdropProps; declare function BackdropFn(props: PopoverBackdropProps, ref: Ref): React.ReactElement> | null; declare let DEFAULT_PANEL_TAG: "div"; type PanelRenderPropArg = { open: boolean; close: (focusableElement?: HTMLElement | MutableRefObject) => void; }; type PanelPropsWeControl = 'tabIndex'; export type PopoverPanelProps = Props; declare function PanelFn(props: PopoverPanelProps, ref: Ref): React.JSX.Element; declare let DEFAULT_GROUP_TAG: "div"; type GroupRenderPropArg = {}; type GroupPropsWeControl = never; export type PopoverGroupProps = Props; declare function GroupFn(props: PopoverGroupProps, ref: Ref): React.JSX.Element; export interface _internal_ComponentPopover extends HasDisplayName { (props: PopoverProps & RefProp): React.JSX.Element; } export interface _internal_ComponentPopoverButton extends HasDisplayName { (props: PopoverButtonProps & RefProp): React.JSX.Element; } export interface _internal_ComponentPopoverBackdrop extends HasDisplayName { (props: PopoverBackdropProps & RefProp): React.JSX.Element; } export interface _internal_ComponentPopoverPanel extends HasDisplayName { (props: PopoverPanelProps & RefProp): React.JSX.Element; } export interface _internal_ComponentPopoverGroup extends HasDisplayName { (props: PopoverGroupProps & RefProp): React.JSX.Element; } export declare let PopoverButton: _internal_ComponentPopoverButton; /** @deprecated use `` instead of `` */ export declare let PopoverOverlay: _internal_ComponentPopoverBackdrop; export declare let PopoverBackdrop: _internal_ComponentPopoverBackdrop; export declare let PopoverPanel: _internal_ComponentPopoverPanel; export declare let PopoverGroup: _internal_ComponentPopoverGroup; export declare let Popover: _internal_ComponentPopover & { /** @deprecated use `` instead of `` */ Button: _internal_ComponentPopoverButton; /** @deprecated use `` instead of `` */ Backdrop: _internal_ComponentPopoverBackdrop; /** @deprecated use `` instead of `` */ Overlay: _internal_ComponentPopoverBackdrop; /** @deprecated use `` instead of `` */ Panel: _internal_ComponentPopoverPanel; /** @deprecated use `` instead of `` */ Group: _internal_ComponentPopoverGroup; }; export {};