import type { ComponentPublicInstance, Ref } from 'vue';
import type { Placement, Strategy } from '@floating-ui/dom';
export type PopupEvent = 'hover' | 'click' | 'focus' | 'manual';
export declare function usePopupControl(props: {
    triggerRef: Ref<ComponentPublicInstance | HTMLElement | null>;
    popupRef: Ref<HTMLElement | null>;
    arrowRef: Ref<HTMLElement | null>;
    componentProps: Ref<{
        disabled?: boolean;
        readonly?: boolean;
        events: PopupEvent | PopupEvent[];
        placement: Placement;
        interactable: boolean;
        visible?: boolean;
        animationDuration: number;
        hoverHideDelay: number;
        offset: number;
        popupOptions?: {
            strategy?: Strategy;
        };
    }>;
    emit: (event: any, ...args: any[]) => void;
}): {
    visible: Ref<boolean | undefined>;
    show: () => void;
    hide: () => void;
    onClick: () => void;
    onClickOutside: () => void;
    onKeyEscape: () => void;
    focusTrigger: () => void;
    createPopup: () => void;
    destroyPopup: () => void;
};
