import type { Popover } from "./Popover";
export declare class PopoverUtils {
    /** @internal */
    private readonly popover;
    /** @internal */
    private arrowPixelChange;
    /** @internal */
    private originalParent;
    /** @internal */
    private originalNextSibling;
    constructor(popover: Popover);
    /**
     * Parses the delay string and sets the open and close delay values.
     * If the delay string is invalid, the delay is set to 0.
     * @returns An array containing the open and close delay values.
     * @throws An error if the delay value is invalid.
     */
    setupDelay(): number[];
    /**
     * Sets up the hover bridge for the popover.
     * The hover bridge is used to prevent the popover from closing when the mouse is over the popover.
     *
     * @param placement - The placement of the popover.
     */
    setupHoverBridge(placement: string): void;
    /**
     * If the `appendTo` property is set, finds the corresponding
     * DOM element by its ID, and appends this popover as a child of that element when opened.
     * When closed, returns to original position.
     * @param isOpen Whether the popover is being opened (true) or closed (false)
     */
    handleAppendTo(isOpen: boolean): void;
    /**
     * Re-attaches focus/blur event listeners for any components with FocusMixin after DOM move.
     */
    private reattachFocusListeners;
    /**
     * Sets up the accessibility attributes for the popover.
     */
    setupAccessibility(): void;
    /**
     * Updates the aria-haspopup attribute on the trigger element.
     */
    updateAriaHasPopupAttribute(): void;
    /**
     * Updates the aria-expanded attribute on the trigger element.
     */
    updateAriaExpandedAttribute(): void;
    /**
     * Updates the arrow style based on the arrow data and placement.
     *
     * @param arrowData - The arrow data x and y.
     * @param placement - The placement of the popover.
     */
    updateArrowStyle(arrowData: {
        x?: number;
        y?: number;
    }, placement: string): void;
    /**
     * Updates the popover style based on the x and y position.
     *
     * @param x - The x position.
     * @param y - The y position.
     */
    updatePopoverStyle(x: number, y: number): void;
    createBackdrop(): void;
}
