import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactElement, ReactNode, Dispatch, SetStateAction } from 'react';
import { VariantProps as VariantPropsInternal } from './variants.js';
import { Placement } from '@floating-ui/react';

declare function PopoverTrigger({ children, }: {
    children: ReactElement;
}): react_jsx_runtime.JSX.Element;

declare const popover: (props?: ({
    size?: "sm" | "md" | "lg" | undefined;
} & {
    className?: string;
}) | undefined) => string;
type PopoverVariant = VariantPropsInternal<typeof popover>;
type Size = PopoverVariant['size'];
type PopoverContentProps = {
    children: ReactNode | (({ open, setOpen, }: {
        open: boolean;
        setOpen: Dispatch<SetStateAction<boolean>>;
    }) => ReactNode);
    className?: string;
};
declare function PopoverContent({ children, className }: PopoverContentProps): react_jsx_runtime.JSX.Element | null;
declare namespace PopoverContent {
    var displayName: string;
}

declare const tooltipAnimation: {
    readonly fadeIn: {
        readonly initial: {
            readonly opacity: 0;
        };
        readonly close: {
            readonly opacity: 0;
        };
    };
    readonly zoomIn: {
        readonly initial: {
            readonly opacity: 0;
            readonly transform: "scale(0.96)";
        };
        readonly close: {
            readonly opacity: 0;
            readonly transform: "scale(0.96)";
        };
    };
    readonly slideIn: {
        readonly initial: {
            readonly opacity: 0;
            readonly transform: "translateY(4px)";
        };
        readonly close: {
            readonly opacity: 0;
            readonly transform: "translateY(4px)";
        };
    };
};
type CommonTypes = {
    showArrow?: boolean;
    enableOverlay?: boolean;
    size?: Size;
    arrowClassName?: string;
    overlayClassName?: string;
};
type PopoverProviderProps = {
    isOpen?: boolean;
    setIsOpen?: Dispatch<SetStateAction<boolean>>;
    placement?: Placement;
    animation?: keyof typeof tooltipAnimation;
    gap?: number;
} & CommonTypes;

type PopoverProps = PopoverProviderProps & {
    children: ReactNode;
};
declare function Popover({ isOpen, setIsOpen, gap, animation, placement, enableOverlay, showArrow, size, arrowClassName, overlayClassName, children, }: PopoverProps): react_jsx_runtime.JSX.Element;
declare namespace Popover {
    var Trigger: typeof PopoverTrigger;
    var Content: typeof PopoverContent;
    var displayName: string;
}

export { Popover, type PopoverProps };
