import { _ModuleSupport } from 'ag-charts-community';
import type { CleanupRegistry, NormalisedZoomOnDataChange } from 'ag-charts-core';
export interface ZoomOnDataChangeCtx extends Pick<_ModuleSupport.ChartRegistry, 'chartState' | 'eventsHub' | 'axisManager'> {
    readonly zoomManager: _ModuleSupport.ZoomManager;
    readonly cleanup: CleanupRegistry;
    readonly onConstrainChanges: (e: _ModuleSupport.ZoomChangeRequestEvent) => void;
    readonly opts: NormalisedZoomOnDataChange;
}
export declare class ZoomOnDataChange {
    private readonly ctx;
    private desiredChanges?;
    constructor(ctx: ZoomOnDataChangeCtx);
    private onDataLoad;
    private onDataUpdate;
    private onZoomChangeRequest;
    /**
     * Convert ambiguous axes-scale (number | Date | string) into a strictly numerical scale, so that we can use
     * interpolation to implement preserveDomain in an axes-scale agnostic way.
     */
    private computeDomainMinMax;
    private popDesiredChanges;
    private performUpdateStrategy;
    private performPreserveDomain;
    private performStickToEnd;
}
