import type { ComputedRef } from "vue"; export type XyTriggerAction = "click" | "contextmenu" | "focus" | "hover"; export interface XyTriggerOptions { actions?: () => readonly XyTriggerAction[]; closeDelay?: number; defaultOpen?: boolean; disabled?: () => boolean | undefined; getFocusContainers?: () => Array; onOpenChange?: (open: boolean, event?: Event) => void; open?: () => boolean | undefined; openDelay?: number; } type XyTriggerEventHandler = (event: Event) => void; interface XyTriggerProps { "aria-hidden"?: boolean | "true" | "false"; "data-state"?: string; onBlur?: XyTriggerEventHandler; onClick?: XyTriggerEventHandler; onContextmenu?: XyTriggerEventHandler; onFocus?: XyTriggerEventHandler; onFocusin?: XyTriggerEventHandler; onFocusout?: XyTriggerEventHandler; onMouseenter?: XyTriggerEventHandler; onMouseleave?: XyTriggerEventHandler; [key: string]: boolean | string | XyTriggerEventHandler | undefined; } export interface XyTriggerApi { clearDelayTimer: () => void; hasAction: (action: XyTriggerAction) => boolean; open: ComputedRef; popupProps: ComputedRef; registerOutsideClick: (getContainers: () => Array) => () => void; setOpen: (open: boolean, event?: Event) => void; triggerProps: ComputedRef; } export declare function useXyTrigger(options?: XyTriggerOptions): XyTriggerApi; export {};