import { RefObject } from 'react'; export interface OverlayCloseEvent { nativeEvent: KeyboardEvent | MouseEvent; source: 'esc' | 'click'; } export declare type OnClose = (event: OverlayCloseEvent) => void; export declare type CloseStrategy = 'pressdown' | 'pressup'; export interface VirtualElement { getBoundingClientRect: () => DOMRect; contextElement?: Element; } export declare type RefHTMLElement = { readonly current: VirtualElement | HTMLElement | null; }; export interface OverlayOptions { onClose?: OnClose; refs: RefHTMLElement[]; closeStrategy: CloseStrategy; } export interface UseOverlayOptions { /** * Layer visibility */ visible?: boolean; /** * Handler that will be called on outside click/escape press */ onClose?: OnClose; /** * DOM-nodes refs to exclude from click tracking */ essentialRefs: RefObject[]; }