import { type Placement, type MiddlewareData } from '@floating-ui/dom';
export declare class PortalUtils {
    static calculateAvailableSpace(referenceElement: HTMLElement): {
        spaceAbove: number;
        spaceBelow: number;
        viewportHeight: number;
    };
    static getOptimalPlacement(referenceElement: HTMLElement): Placement;
    static findBoundaryElements(component: HTMLElement): Element[] | undefined;
    static calculateOptimalHeight(referenceRect: {
        x: number;
        y: number;
        width: number;
        height: number;
    }, viewportHeight: number, placement: Placement): number;
    static extractStylesAsCSS(styles: any): string;
    static generateStyleId(): string;
    static isPositioningOptimal(placement: Placement, referenceElement: HTMLElement): boolean;
    static applyCollisionData(element: HTMLElement, middlewareData: MiddlewareData, placement: Placement): void;
}
export declare class PortalContentUtils {
    static createBaseMenu(component: any): HTMLElement;
    static addMenuItems(menu: HTMLElement, component: any): void;
    static createMenuItem(item: any, component: any): HTMLElement;
    static createPortalMenu(component: any): HTMLElement;
    static updatePortalMenuItems(clonedMenu: HTMLElement, component: any): void;
}
export declare class PortalEventUtils {
    static setupPortalEventListeners(clonedMenu: HTMLElement, component: any): void;
    static setupMenuSelectListeners(clonedMenu: HTMLElement, component: any): void;
}
