import { type RefObject, type SyntheticEvent } from 'react';
import { type CloseEventReason } from '../types/CloseEventReason';
export type UseInputPopoverOptions = {
    /**
     * реф на отслеживаемую ноду, ивенты вне которого будут приводить к закрытию поппера
     */
    ref: RefObject<HTMLElement>;
    /**
     * коллбэк на открытие поппера
     */
    onOpen?: () => void;
    /**
     * коллбэк на закрытие поппера
     */
    onClose?: (event?: SyntheticEvent<Element, Event> | Event, reason?: CloseEventReason) => void;
    /**
     * коллбэк обработки на блюр, будет вызван единожды в 3х случаях:
     *
     * - если поппер открыт и пользователь ткнул куда-то вне отслеживаемого ref
     * - если поппер открыт и пользователь протыкал табом куда-то вне отслеживаемого ref
     * - если поппер закрыт, пользователь сфокусирован на инпуте,
     * пользователь эмитит блюр, сфокусировавшись на элементе вне отслеживаемого ref
     */
    onBlur?: () => void;
};
/**
 * хук объединяюший в себе сопутствующие хуки для использования поппера с каким нибудь инпутом
 */
export declare const useInputPopover: ({ ref, onOpen, onClose, onBlur, }: UseInputPopoverOptions) => {
    isOpenPopover: boolean;
    openPopover: (...a: unknown[]) => void;
    closePopover: (event?: Event | SyntheticEvent<Element, Event> | undefined, reason?: CloseEventReason | undefined) => void;
};
