import { VueNode as VueNode$1 } from "../_util/type.js";
import { SemanticClassNamesType, SemanticStylesType } from "../_util/hooks/useMergeSemantic.js";
import "../_util/hooks/index.js";
import { TooltipEmits, TooltipProps, TooltipRef, TooltipSemanticClassNames, TooltipSemanticStyles } from "../tooltip/index.js";
import * as vue957 from "vue";
import { App, CSSProperties, SlotsType } from "vue";

//#region src/popover/index.d.ts
type PopoverSemanticName = keyof PopoverSemanticClassNames & keyof PopoverSemanticStyles;
type PopoverSemanticClassNames = TooltipSemanticClassNames & {
  title?: string;
  content?: string;
};
type PopoverSemanticStyles = TooltipSemanticStyles & {
  title?: CSSProperties;
  content?: CSSProperties;
};
type PopoverClassNamesType = SemanticClassNamesType<PopoverProps, PopoverSemanticClassNames>;
type PopoverStylesType = SemanticStylesType<PopoverProps, PopoverSemanticStyles>;
interface PopoverProps extends TooltipProps, PopoverEmitsProps {
  title?: VueNode$1;
  content?: VueNode$1;
  classes?: PopoverClassNamesType;
  styles?: PopoverStylesType;
}
interface PopoverRef extends TooltipRef {}
interface PopoverEmits extends TooltipEmits {
  openChange: (open: boolean, e?: MouseEvent | KeyboardEvent) => void;
}
interface PopoverEmitsProps {
  onOpenChange?: PopoverEmits['openChange'];
}
interface PopoverSlots {
  title: () => any;
  content: () => any;
  default: () => any;
}
declare const InternalPopover: vue957.DefineSetupFnComponent<PopoverProps, PopoverEmits, SlotsType<PopoverSlots>, PopoverProps, vue957.PublicProps>;
declare const Popover: typeof InternalPopover & {
  install: (app: App) => void;
  _InternalPanelDoNotUseOrYouWillBeFired: any;
};
//#endregion
export { PopoverClassNamesType, PopoverEmits, PopoverEmitsProps, PopoverProps, PopoverRef, PopoverSemanticClassNames, PopoverSemanticName, PopoverSemanticStyles, PopoverSlots, PopoverStylesType, Popover as default };