import * as React from 'react';
import { PopoverAPI } from '../popover/index.js';
export { popoverContentVariants } from '../popover/index.js';
import { Side } from '../shared/index.js';

interface PopoverContextValue {
    api: PopoverAPI;
    open: boolean;
    setOpen: (value: boolean) => void;
}
interface PopoverProps {
    open?: boolean;
    defaultOpen?: boolean;
    onOpenChange?: (open: boolean) => void;
    placement?: Side;
    children: React.ReactNode;
}
declare function Popover({ open: controlledOpen, defaultOpen, onOpenChange, placement, children }: PopoverProps): React.FunctionComponentElement<React.ProviderProps<PopoverContextValue | null>>;
declare namespace Popover {
    var displayName: string;
}
interface PopoverTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
}
declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>;
interface PopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {
    side?: Side;
}
declare const PopoverContent: React.ForwardRefExoticComponent<PopoverContentProps & React.RefAttributes<HTMLDivElement>>;
interface PopoverCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
}
declare const PopoverClose: React.ForwardRefExoticComponent<PopoverCloseProps & React.RefAttributes<HTMLButtonElement>>;

export { Popover, PopoverClose, type PopoverCloseProps, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, type PopoverTriggerProps };
