import type { ComponentPublicInstance, Ref } from 'vue'; declare type MaybeElement = HTMLElement | SVGElement | ComponentPublicInstance | undefined | null; declare type MaybeRef = T | Ref; declare type MaybeElementRef = MaybeRef; interface ConfigurableWindow { window?: Window; } interface OnClickOutsideOptions extends ConfigurableWindow { /** * List of elements that should not trigger the event. */ ignore?: MaybeElementRef[]; /** * Use capturing phase for internal event listener. * @default true */ capture?: boolean; /** * Run handler function if focus moves to an iframe. * @default false */ detectIframe?: boolean; } declare type OnClickOutsideHandler = (evt: T['detectIframe'] extends true ? PointerEvent | FocusEvent : PointerEvent) => void; /** * Listen for clicks outside of an element. * * @see https://vueuse.org/onClickOutside * @param target * @param handler * @param options */ export default function onClickOutside(target: MaybeElementRef, handler: OnClickOutsideHandler<{ detectIframe: T['detectIframe']; }>, options?: T): () => void; export {};