import { type PropType, type StyleValue } from 'vue'; import { type MenuOption } from '../menu/common'; import { type NodeRect } from '../utils'; import { PopoverController } from './usePopover'; import { type Position } from './utils'; export interface PopoverProps { rootStyle?: StyleValue; rootClass?: string; visible?: boolean; options?: MenuOption[]; position?: Position; direction?: 'vertical' | 'horizontal'; theme?: 'dark' | 'light'; refGap?: number; viewportGap: number; transparent: boolean; controller: PopoverController; } export declare const popoverProps: { rootStyle: PropType; rootClass: StringConstructor; visible: BooleanConstructor; options: PropType; position: { type: PropType>; default: string; }; direction: { type: PropType>; default: string; }; theme: { type: PropType>; default: string; }; refGap: { type: NumberConstructor; default: number; }; viewportGap: { type: NumberConstructor; default: number; }; transparent: { type: BooleanConstructor; default: boolean; }; duration: { type: NumberConstructor; default: number; }; controller: PropType; }; export interface PopoverEmits { (e: 'update:visible', visible: boolean): void; (e: 'select', option: MenuOption): void; } export interface ReferenceExpose { getRect: () => NodeRect | Promise | undefined; } export interface PopoverReferenceProps { rootStyle?: StyleValue; rootClass?: string; } export declare const popoverReferenceProps: { rootStyle: PropType; rootClass: StringConstructor; }; export interface PopoverReferenceSlots { default(props: Record): any; } export interface PopoverReferenceEmits { (e: 'click', event: any): void; } export interface PopoverContext { show: () => void; register: (expose: ReferenceExpose) => void; } export declare const popoverContextSymbol: unique symbol;