import type { ControlledSignal } from './interaction-signal.js'; import type { ChartControl, ChartValue, SceneStyle } from './types.js'; export type HandleXPointerSource = 'pointer' | 'touch'; export type HandleXSource = HandleXPointerSource | 'keyboard'; export type HandleXChange = HandleXChangeEvent | HandleXChangeEvent | HandleXChangeEvent; interface HandleXChangeEvent { readonly type: TType; readonly value: TValue; readonly origin: TValue; readonly source: TSource; } export type HandleXCross = { readonly edge: 'top' | 'bottom'; readonly offset?: number; readonly value?: never; } | { readonly value: TValue; readonly edge?: never; readonly offset?: never; }; export interface HandleXOptions { id?: string; value: ControlledSignal>; /** Ordered candidates used for snapping and indexed keyboard movement. */ values: readonly TXValue[]; cross: HandleXCross; trackStyle?: SceneStyle; ruleStyle?: SceneStyle | false; handleStyle?: SceneStyle; hitSize?: number; ariaLabel?: string; format?: (value: TXValue) => string; keyboard?: boolean; } /** A controlled, candidate-bound horizontal scale handle. */ export declare function handleX(options: HandleXOptions): ChartControl; export {};