import * as React from "react";
import type { DOMHighlight, Position, Rect, ZIndexes } from "./types";
type Props = {
    highlight: DOMHighlight;
    highlightKey: string;
    offsetParent: Element;
    zIndexes: ZIndexes;
};
type State = {
    cachedHighlightRects: ReadonlyArray<Rect>;
};
declare class HighlightRenderer extends React.PureComponent<Props, State> {
    state: State;
    UNSAFE_componentWillReceiveProps(nextProps: Props): void;
    /**
     * Compute the set of rectangles that cover the highlighted content, with
     * coordinates relative to the offset parent. That way, we can use them
     * for CSS positioning.
     */
    _computeRects(props: Props): ReadonlyArray<Rect>;
    /**
     * Return whether the given mouse position (coordinates relative to this
     * component's offset parent) is hovering over the given rectangle
     * (coordinates also relative to this component's offset parent).
     */
    _rectIsHovered(rect: Rect, mouseOffsetPosition: Position): boolean;
    /**
     * Return whether the given mouse position (coordinates relative to the
     * viewport) is hovering over this highlight.
     */
    isHovered(mouseClientPosition?: Position | null): boolean;
    render(): React.ReactNode;
}
export default HighlightRenderer;
