import type * as React from "react";
import type { ITippyPopoverProps } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/components/Popover/TippyPopover";
export type ControlledPopoverWithTriggerProps = Omit<ITippyPopoverProps, "children" | "visible"> & OptionalTriggerStyleProps & {
    renderTrigger?: RenderTrigger;
    triggerContent?: React.ReactNode;
    popoverContent: PopoverWithTriggerContent;
    visible: boolean;
    onOpen: () => void;
    onClose: () => void;
};
type OptionalTriggerStyleProps = {
    triggerClasses?: string;
    triggerStyle?: React.CSSProperties;
    triggerClassesOpen?: string;
    triggerClassesClose?: string;
};
export type PopoverWithTriggerContent = React.ReactNode | ((args: PopoverWithTriggerContentArgs) => React.ReactNode);
type PopoverWithTriggerContentArgs = {
    closePopover: () => void;
};
export type RenderTrigger = (args: RenderTriggerArgs) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
type RenderTriggerArgs = {
    visible: boolean;
    onClick: () => void;
    closePopover: () => void;
};
/**
 * @deprecated prefer Popover from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/ui" instead
 */
declare function ControlledPopoverWithTrigger({ triggerClasses, triggerStyle, triggerClassesOpen, triggerClassesClose, renderTrigger, triggerContent, popoverContent, disabled, visible, onOpen, onClose, ...popoverProps }: ControlledPopoverWithTriggerProps): import("react/jsx-runtime").JSX.Element;
export default ControlledPopoverWithTrigger;
