import React from 'react';
import { EditorServices } from '../../types';
declare type MaskPosition = {
    id: string;
    style: {
        top: number;
        left: number;
        height: number;
        width: number;
    };
};
export declare class EditorMaskManager {
    services: EditorServices;
    wrapperRef: React.MutableRefObject<HTMLDivElement | null>;
    maskContainerRef: React.MutableRefObject<HTMLDivElement | null>;
    hoverMaskPosition: MaskPosition | null;
    selectedMaskPosition: MaskPosition | null;
    mousePosition: [number, number];
    private elementIdMap;
    private maskContainerRect;
    private resizeObserver;
    private containerResizeObserver;
    private visibleMap;
    private intersectionObserver;
    private MaskPadding;
    private lastHoverElement;
    get hoverComponentId(): string;
    constructor(services: EditorServices, wrapperRef: React.MutableRefObject<HTMLDivElement | null>, maskContainerRef: React.MutableRefObject<HTMLDivElement | null>);
    init(): void;
    destroy(): void;
    private initIntersectionObserver;
    private observeResize;
    private observeContainerResize;
    private observeIntersection;
    private onHTMLElementsUpdated;
    private onScroll;
    private getMaskPosition;
    private refreshElementIdMap;
    private refreshHoverElement;
    private refreshMaskPosition;
    setMousePosition(mousePosition: [number, number]): void;
    setHoverMaskPosition(hoverMaskPosition: MaskPosition | null): void;
    setSelectedMaskPosition(selectedMaskPosition: MaskPosition | null): void;
    private get eleMap();
    private get wrapperScrollTop();
    private get wrapperScrollLeft();
}
export {};
