import { type Placement, type MiddlewareData } from '@floating-ui/dom';
export declare class PortalUtils {
    static calculateAvailableSpace(referenceElement: HTMLElement): {
        spaceAbove: number;
        spaceBelow: number;
        spaceLeft: number;
        spaceRight: number;
        viewportHeight: number;
        viewportWidth: 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 createBasePopover(component: any): HTMLElement;
    static addTitleSection(popoverBox: HTMLElement, component: any): void;
    static addContentSection(popoverBox: HTMLElement, component: any): void;
    static cloneContent(originalContent: HTMLElement, targetContent: HTMLElement): void;
    static addActionSection(popoverBox: HTMLElement, component: any): void;
    static addArrowElement(popoverBox: HTMLElement, component: any): void;
    static createPortalPopover(component: any): HTMLElement;
    static updatePortalContent(clonedPopover: HTMLElement, component: any): void;
}
export declare class PortalEventUtils {
    static setupPortalEventListeners(clonedPopover: HTMLElement, component: any): void;
    static setupClickListeners(clonedPopover: HTMLElement, component: any): void;
    static setupContentListeners(clonedPopover: HTMLElement, component: any): void;
    static setupActionListeners(clonedPopover: HTMLElement, component: any): void;
    static forwardEventToOriginal(event: Event, component: any, eventType: string): void;
}
