import type { Ref } from 'vue'; import type { FocusOutsideEvent, PointerdownOutsideEvent } from './props'; /** * Listens for `pointerdown` outside a subtree. We use `pointerdown` rather than `pointerup` * to mimic layer dismissing behaviour present in OS. * Returns props to pass to the node we want to check for outside events. */ declare function usePointerdownOutside(onPointerdownOutside?: (event: PointerdownOutsideEvent) => void, ownerDocument?: Ref): { onPointerdownCapture: () => boolean; }; /** * Listens for when focus happens outside a react subtree. * Returns props to pass to the root (node) of the subtree we want to check. */ declare function useFocusOutside(onFocusOutside?: (event: FocusOutsideEvent) => void, ownerDocument?: Ref): { onFocusCapture: () => boolean; onBlurCapture: () => boolean; }; declare function dispatchUpdate(): void; declare function handleAndDispatchCustomEvent(name: string, handler: ((event: E) => void) | undefined, detail: { originalEvent: OriginalEvent; } & (E extends CustomEvent ? D : never), { discrete }: { discrete: boolean; }): void; export { usePointerdownOutside, handleAndDispatchCustomEvent, useFocusOutside, dispatchUpdate };