import { Logger } from "../core/logger";
/**
 * Bounding rectangle with position and dimensions.
 */
export interface BoundingRect {
    x: number;
    y: number;
    width: number;
    height: number;
    right: number;
    bottom: number;
}
/**
 * Cache for storing bounding rectangles of SVG elements.
 * This avoids expensive getBBox() calls and improves spreading performance.
 */
export declare class BoundsCache {
    private _cache;
    private _logger;
    constructor(logger: Logger);
    /**
     * Add or update a bounding rectangle for an element.
     */
    set(elementId: string, bounds: DOMRect | SVGRect): void;
    /**
     * Get the bounding rectangle for an element.
     */
    get(elementId: string): BoundingRect | undefined;
    /**
     * Check if an element's bounds are cached.
     */
    has(elementId: string): boolean;
    /**
     * Remove bounds for an element.
     */
    delete(elementId: string): void;
    /**
     * Clear all cached bounds.
     */
    clear(): void;
    /**
     * Get all cached element IDs.
     */
    getAllIds(): string[];
    /**
     * Get all cached bounds.
     */
    getAllBounds(): BoundingRect[];
    /**
     * Update bounds for an element by ID from the DOM.
     * Returns true if successful, false if element not found.
     */
    updateFromElement(element: SVGElement): boolean;
    /**
     * Get the bounding rectangle that encloses multiple elements.
     */
    getUnionBounds(elementIds: string[]): BoundingRect | undefined;
    /**
     * Get the number of cached items.
     */
    size(): number;
}
