import { Popover as PopoverPrimitive } from '@base-ui/react/popover';
import type * as React from 'react';
declare function PopoverRoot({ ...props }: PopoverPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
declare namespace PopoverRoot {
    var displayName: string;
}
declare function PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
declare namespace PopoverTrigger {
    var displayName: string;
}
declare function PopoverPopup({ className, align, alignOffset, side, sideOffset, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>): import("react/jsx-runtime").JSX.Element;
declare namespace PopoverPopup {
    var displayName: string;
}
declare function PopoverHeader({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
declare namespace PopoverHeader {
    var displayName: string;
}
declare function PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props): import("react/jsx-runtime").JSX.Element;
declare namespace PopoverTitle {
    var displayName: string;
}
declare function PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props): import("react/jsx-runtime").JSX.Element;
declare namespace PopoverDescription {
    var displayName: string;
}
export interface PopoverProps extends Omit<React.ComponentProps<typeof PopoverRoot>, 'onOpenChange' | 'children'> {
    /** The element that triggers the popover (required) */
    trigger: React.ReactElement;
    /** Popover content (typically Popover.Popup component) */
    children?: React.ReactNode;
    /** Controlled open state. When provided, component is controlled. */
    open?: boolean;
    /** Initial open state for uncontrolled mode */
    defaultOpen?: boolean;
    /** Callback when open state changes */
    onOpenChange?: (open: boolean) => void;
}
declare function Popover({ trigger, open: controlledOpen, defaultOpen, onOpenChange, children, ...props }: PopoverProps): import("react/jsx-runtime").JSX.Element;
declare namespace Popover {
    var displayName: string;
}
export type PopoverTriggerProps = PopoverPrimitive.Trigger.Props;
export type PopoverPopupProps = PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>;
export type PopoverHeaderProps = React.ComponentProps<'div'>;
export type PopoverTitleProps = PopoverPrimitive.Title.Props;
export type PopoverDescriptionProps = PopoverPrimitive.Description.Props;
/**
 * Popover component with dot notation for compound parts.
 *
 * @example
 * ```tsx
 * <Popover trigger={<Button>Open</Button>}>
 *   <Popover.Popup>
 *     <Popover.Header>
 *       <Popover.Title>Title</Popover.Title>
 *       <Popover.Description>Description</Popover.Description>
 *     </Popover.Header>
 *   </Popover.Popup>
 * </Popover>
 * ```
 */
declare const PopoverCompound: typeof Popover & {
    Root: typeof PopoverRoot;
    Trigger: typeof PopoverTrigger;
    Popup: typeof PopoverPopup;
    Header: typeof PopoverHeader;
    Title: typeof PopoverTitle;
    Description: typeof PopoverDescription;
};
export { PopoverCompound as Popover, PopoverDescription, PopoverHeader, PopoverPopup, PopoverRoot, PopoverTitle, PopoverTrigger, };
