import { _ModuleSupport } from 'ag-charts-community';
import { AbstractModuleInstance, type BoxBounds, type DynamicContext } from 'ag-charts-core';
export type BandFlashDatum = {
    firstKey: string;
    lastKey: string;
    bounds: BoxBounds;
    prevBounds?: BoxBounds;
    phase: FlashAnimationPhase;
};
export type FlashAnimationPhase = Extract<_ModuleSupport.AnimationPhase, 'remove' | 'update' | 'add'>;
export declare function shouldMergeBands(dataLength: number, axisSpan: number): boolean;
export declare function mergeBands(data: BandFlashDatum[], isHorizontal: boolean, axisSpan: number): BandFlashDatum[];
export declare class FlashOnUpdate extends AbstractModuleInstance {
    private readonly ctx;
    private readonly id;
    private get opts();
    get enabled(): boolean;
    private readonly flashGroup;
    private readonly chartFlashRect;
    private readonly bandGroup;
    private readonly bandSelection;
    private seriesRect?;
    private axisCtx?;
    private previousBoundsCache?;
    private readonly pendingDiffs;
    constructor(ctx: DynamicContext<_ModuleSupport.ChartRegistry>);
    destroy(): void;
    private onLayoutComplete;
    private resolveDomainValue;
    private onDataModelDiff;
    private onPreSceneRender;
    private flashChart;
    private cacheBounds;
    private cachePreviousBounds;
    private measureBandBounds;
    private flashCategoryBands;
    private hasScaleChange;
    private createBandFlashData;
    private measureBandsBatch;
    private updateSelection;
    private animateBands;
    private stopFlash;
    private animate;
    private getCustomTiming;
}
