/**
 * @file ChartBrush.tsx
 * @output Drag-to-select region. Supports x-only or 2D (xy) brush modes.
 * @position Child of Chart; reads scales from context
 */
import React from 'react';
/**
 * Brush direction mode:
 * - `'x'` — horizontal range selection (default)
 * - `'xy'` — 2D rectangular selection
 */
export type BrushMode = 'x' | 'xy';
export interface BrushRange {
    x: [number, number];
    y?: [number, number];
}
export interface ChartBrushProps {
    /**
     * Brush direction mode.
     * - `'x'` — horizontal selection (default, good for time ranges)
     * - `'xy'` — rectangular 2D selection (good for scatter plots)
     *
     * @default 'x'
     */
    mode?: BrushMode;
    /**
     * Called when the user finishes a brush gesture.
     * Receives the selected range in data coordinates and the matching data points.
     */
    onBrush?: (range: BrushRange, data: Record<string, unknown>[]) => void;
    /**
     * Called when the brush is cleared (click without drag).
     */
    onClear?: () => void;
    /**
     * Brush overlay color.
     * @default 'var(--color-accent)'
     */
    color?: string;
    /**
     * Brush overlay opacity.
     * @default 0.15
     */
    opacity?: number;
}
/**
 * Brush interaction for range selection.
 *
 * @example
 * ```
 * <ChartBrush onBrush={({x}) => setZoom(x)} />
 * <ChartBrush mode="xy" onBrush={({x, y}, points) => setSelected(points)} />
 * ```
 */
export declare function ChartBrush({ mode, onBrush, onClear, color, opacity, }: ChartBrushProps): React.JSX.Element;
//# sourceMappingURL=ChartBrush.d.ts.map