/**
 * OrdinalBrushOverlay — d3-brush SVG overlay for ordinal frames.
 *
 * Renders a transparent SVG positioned above the canvas. Brushes along the
 * r-axis (value axis) only: horizontal projection → brushX, vertical → brushY.
 *
 * Key design decisions:
 *   - Outer SVG has pointerEvents:"none", inner brush-g has "all", so
 *     axes/legends rendered underneath remain clickable.
 *   - d3-brush lifecycle (useEffect) depends on [width, height, isHorizontal]
 *     only — NOT scales. Scales are read from a ref to avoid brush teardown
 *     mid-drag (scales change every render due to new object identity).
 *   - A separate useEffect repositions the brush when scales change (streaming).
 *
 * Consumed by: StreamOrdinalFrame (rendered when brush prop is set).
 * Wired by: useOrdinalBrush hook in HOC charts.
 */
import * as React from "react";
import type { OrdinalScales } from "./ordinalTypes";
interface OrdinalBrushOverlayProps {
    width: number;
    height: number;
    totalWidth: number;
    totalHeight: number;
    margin: {
        top: number;
        right: number;
        bottom: number;
        left: number;
    };
    scales: OrdinalScales | null;
    onBrush: (extent: {
        r: [number, number];
    } | null) => void;
}
/**
 * SVG brush overlay for ordinal frames.
 * Brushes along the r-axis (value axis) only.
 * In horizontal projection, r maps to x-pixels → uses brushX.
 * In vertical projection, r maps to y-pixels → uses brushY.
 */
export declare function OrdinalBrushOverlay({ width, height, totalWidth, totalHeight, margin, scales, onBrush }: OrdinalBrushOverlayProps): React.JSX.Element;
export {};
