import { VNode } from 'snabbdom';
export type SelectionRect = {
    top: number;
    right: number;
    bottom: number;
    left: number;
};
export type SelectionPerimeterSide = 'top' | 'right' | 'bottom' | 'left';
export type SelectionPerimeterSegment = {
    side: SelectionPerimeterSide;
    offset: number;
    start: number;
    end: number;
};
/**
 * Returns the physical perimeter of a set of non-overlapping cell rectangles. Opposing edges
 * cancel only where they overlap, so partially exposed sides of merged cells remain precise.
 */
export declare function getSelectionPerimeterSegments(rects: SelectionRect[]): SelectionPerimeterSegment[];
export declare function drawSelectionOverlay(elm: Node | undefined): void;
export declare function renderSelectionOverlay(): VNode;
