import type { ControlledSignal } from './interaction-signal.js'; import type { ChartControl, ChartValue, SceneStyle } from './types.js'; export interface BrushRange { readonly start: TValue; readonly end: TValue; } export type BrushXSource = 'pointer' | 'keyboard'; export type BrushXTarget = 'selection' | 'start' | 'end' | 'new'; export type BrushXChange = BrushXChangeEvent | BrushXChangeEvent | BrushXChangeEvent; interface BrushXChangeEvent { readonly type: TType; readonly value: BrushRange; readonly origin: BrushRange; readonly source: TSource; readonly target: BrushXTarget; } interface BrushXBaseOptions { id?: string; range: ControlledSignal, BrushXChange>; ariaLabel?: string; startAriaLabel?: string; endAriaLabel?: string; format?: (value: TValue) => string; handleSize?: number; selectionStyle?: SceneStyle; handleStyle?: SceneStyle; } export interface BrushXValuesOptions extends BrushXBaseOptions { values: readonly TValue[]; keyboard?: boolean; } export interface BrushXContinuousOptions extends BrushXBaseOptions { values?: never; keyboard: false; } export declare function brushX(options: BrushXValuesOptions): ChartControl; export declare function brushX(options: BrushXContinuousOptions): ChartControl; export {};