export type OverlayDistanceRect = {
    top: number;
    bottom: number;
    left: number;
    right: number;
    centerX: number;
    centerY: number;
    width: number;
    height: number;
};
export type OverlayRect = {
    width: number;
    height: number;
    x: number;
    y: number;
    scrollX: number;
    scrollY: number;
    innerHeight: number;
    innerWidth: number;
    rounded: {
        width: number;
        height: number;
    };
};
export type ContainerPlacement = 'top' | 'bottom' | 'left' | 'right';
export type OverlayQuadrant = {
    placement: ContainerPlacement;
    isCentered: boolean;
    isOverlaped: boolean;
};
export type OverlayPosition = {
    top: number;
    left: number;
    width: number;
    height: number;
};
export type OverlayDistance = {
    placement: ContainerPlacement;
    position: OverlayPosition;
    value: number;
    isCentered?: boolean;
    isOverlaped?: boolean;
};
declare const processContainer: (elementDOM?: HTMLElement, iframeDOM?: HTMLIFrameElement | null, zoom?: number) => {
    width: number;
    height: number;
    x: number;
    y: number;
    scrollX: number;
    scrollY: number;
    innerHeight: number;
    innerWidth: number;
    rounded: {
        width: number;
        height: number;
    };
} | undefined;
declare const processContainerDistance: (elementDOM?: HTMLElement | null, iframeDOM?: HTMLIFrameElement | null, zoom?: number) => OverlayDistanceRect | undefined;
declare const calculateIsInside: (rectSelected: OverlayDistanceRect, rectHovered: OverlayDistanceRect) => boolean;
declare const calculateDistance: (placement: ContainerPlacement, rectSelected: OverlayDistanceRect, rectHovered: OverlayDistanceRect, quadrants?: Partial<Record<ContainerPlacement, OverlayQuadrant>>, isInside?: boolean) => OverlayDistance;
declare const calculateDistances: (rectSelected?: OverlayDistanceRect, rectHovered?: OverlayDistanceRect) => {
    distances: OverlayDistance[];
    projections: {
        placement: ContainerPlacement;
        position: OverlayPosition;
    }[];
};
declare const calculateProjections: (distances: OverlayDistance[] | undefined, rectSelected: OverlayDistanceRect, rectHovered: OverlayDistanceRect) => {
    placement: ContainerPlacement;
    position: OverlayPosition;
}[];
export { processContainer, calculateIsInside, calculateDistance, calculateDistances, processContainerDistance, calculateProjections };
