import { type Placement, type MiddlewareData } from '@floating-ui/dom';
export declare class PopoverPortalManager {
    private portalContainer;
    private measuredPopoverHeight;
    private component;
    private clonedPopover;
    private cleanupAutoUpdate;
    private currentPlacement;
    private currentMiddlewareData;
    private boundHandleWindowResize;
    constructor(component: any);
    private createPortalAppendContainer;
    positionPortalAppend(): void;
    private measurePopoverHeight;
    private computeFloatingUIPosition;
    private calculateFloatingUIPosition;
    private getInitialPlacement;
    private createFloatingUIMiddleware;
    private getFallbackPlacements;
    private createCustomPlatform;
    private positionArrow;
    private calculateArrowXPosition;
    private calculateArrowYPosition;
    private applyFloatingUIPosition;
    private fallbackPositioning;
    private calculateAndSetAutoSizeProperties;
    updatePortalAppendPosition(): void;
    handleWindowResize(): void;
    private setupAutoUpdatePositioning;
    private cleanupAutoUpdatePositioning;
    private injectStylesToDocument;
    private adoptStylesToPortalAppend;
    setupPortalAppend(): void;
    private createPortalPopover;
    private setupPortalEventListeners;
    cleanupPortalAppend(): void;
    get portalContainerElement(): HTMLElement | null;
    resetMeasuredHeight(): void;
    forceReposition(): void;
    getCurrentPlacement(): Placement;
    getCurrentMiddlewareData(): MiddlewareData | null;
    isUsingFloatingUI(): boolean;
    updatePositioningConfig(config: {
        offset?: number;
        padding?: number;
        boundary?: Element[] | 'viewport';
        fallbackPlacements?: Placement[];
    }): void;
    handleViewportChange(): void;
    isPositioningOptimal(): boolean;
}
