import type { CSSProperties, ComputedRef, Ref } from 'vue'; export type { PopperProps } from './props'; export * from './components/arrow'; export * from './components/content'; export * from './components/trigger'; declare const effects: readonly ["light", "dark"]; declare const triggers: readonly ["click", "contextmenu", "hover", "focus"]; export declare const Effect: { readonly LIGHT: "light"; readonly DARK: "dark"; }; export declare const roleTypes: readonly ["dialog", "grid", "group", "listbox", "menu", "navigation", "tooltip", "tree"]; export interface Measurable { getBoundingClientRect: () => DOMRect; } /** * triggerRef indicates the element that triggers popper * contentRef indicates the element of popper content * referenceRef indicates the element that popper content relative with */ export interface FzPopperInjectionContext { triggerRef: Ref; contentRef: Ref; popperInstanceRef: Ref; referenceRef: Ref; role: ComputedRef; } export interface FzPopperContentInjectionContext { arrowRef: Ref; arrowOffset: Ref; arrowStyle: ComputedRef; } export type PopperEffect = typeof effects[number]; export type PopperTrigger = typeof triggers[number]; export type RoleTypes = typeof roleTypes[number];