import { Chart, type Point } from 'chart.js'; import type { ZoomPluginOptions } from './options'; export type ScaleRange = { min: number; max: number; }; export type OriginalLimits = { min: { scale?: number; options?: unknown; }; max: { scale?: number; options?: unknown; }; }; export type OriginalScaleLimits = Record; export type UpdatedScaleLimits = Record; export type HandlerFunctions = { click: (chart: Chart, event: MouseEvent, options: ZoomPluginOptions) => void; keydown: (chart: Chart, event: KeyboardEvent) => void; mousedown: (chart: Chart, event: MouseEvent, options: ZoomPluginOptions) => void; mousemove: (chart: Chart, event: MouseEvent, options: ZoomPluginOptions) => void; mouseup: (chart: Chart, event: MouseEvent, options: ZoomPluginOptions) => void; onZoomComplete: ({ chart }: { chart: Chart; }) => void; wheel: (chart: Chart, event: WheelEvent) => void; }; export type HandlerName = keyof HandlerFunctions; export type HandlerFunction = HandlerFunctions[HandlerName]; export type Handler = EventListener; export type Handlers = Partial>; export type HandlerTarget = Partial>; export interface State { originalScaleLimits: OriginalScaleLimits; updatedScaleLimits: UpdatedScaleLimits; handlers: Handlers; targets: HandlerTarget; panDelta: Record; dragging: boolean; panning: boolean; options: ZoomPluginOptions; dragStart?: MouseEvent; dragEnd?: MouseEvent; filterNextClick?: boolean; scale?: number | null; delta?: Point | null; panScales?: string[]; } export declare function getState(chart: Chart): State; export declare function removeState(chart: Chart): void; //# sourceMappingURL=state.d.ts.map