import { type RefObject, type SyntheticEvent } from 'react'; import { type CloseEventReason } from '../../types'; export type UseInputPopoverOptions = { /** * реф на отслеживаемую ноду, ивенты вне которого будут приводить к закрытию поппера */ ref: RefObject; /** * коллбэк на открытие поппера */ onOpen?: () => void; /** * коллбэк на закрытие поппера */ onClose?: (event?: SyntheticEvent | 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 | undefined, reason?: CloseEventReason | undefined) => void; };