import { type RefObject } from 'react';
import { type CloseEventReason } from '../types/CloseEventReason';
export type ExcludedNode = Node | RefObject<Node | null> | null | undefined;
export type UseClickAwayListenerOptions = {
    /**
     * реф на дом ноду, клик вне которой надо отслеживать
     */
    ref: RefObject<HTMLElement | null>;
    /**
     * колбэк который будет вызываться при нажатии вне рефа
     */
    onClickAway: (e: PointerEvent, reason: CloseEventReason) => void;
    /**
     * флаг активности
     */
    isActive: boolean;
    /**
     * флаг необходимости предотвращать всплытие, подойдет когда используется внутри модалки
     */
    preventBubbling?: boolean;
    /**
     * Ноды (или рефы), клик по которым не приводит к срабатыванию onClickAway
     */
    excludeNodes?: ExcludedNode[];
};
/**
 * хук позволяющий подписаться на клик вне указанного рефа,
 * подойдет для использования в кастомных попперах
 */
export declare const useClickAwayEffect: ({ ref, onClickAway, preventBubbling, isActive, excludeNodes, }: UseClickAwayListenerOptions) => void;
