import type { ControlledSignal } from './interaction-signal.js'; import type { ChartControl } from './types.js'; export type ZoomXValue = number | Date; export interface ZoomXWindow { readonly start: TValue; readonly end: TValue; } export type ZoomXSource = 'wheel' | 'pointer' | 'touch' | 'keyboard'; export type ZoomXAction = 'zoom' | 'pan' | 'reset'; export type ZoomXChange = ZoomXChangeEvent | ZoomXChangeEvent | ZoomXChangeEvent; interface ZoomXChangeEvent { readonly type: TType; readonly value: ZoomXWindow; readonly origin: ZoomXWindow; readonly source: TSource; readonly action: TAction; } export interface ZoomXOptions { id?: string; window: ControlledSignal, ZoomXChange>; /** Full semantic x-domain available to pan and zoom. */ extent: readonly [TValue, TValue]; /** Minimum and maximum zoom factors relative to `extent`. */ scaleExtent?: readonly [number, number]; keyboard?: boolean; ariaLabel?: string; ariaDescription?: string; format?: (value: TValue) => string; onActiveChange?: (active: boolean) => void; } /** * Controls a continuous x-domain with focus-gated wheel, pan, touch, and * keyboard input. The application owns the accepted semantic window. */ export declare function zoomX(options: ZoomXOptions): ChartControl; export {};