import type { DimensionType } from "../types/index";
/**
 * Apply changes only if mousewheel event happened some time ago (scrollThrottling)
 */
export declare class LocalScrollTimer {
    private scrollThrottling;
    /**
     * Last mw event time for trigger scroll function below
     * If mousewheel function was ignored we still need to trigger render
     */
    private mouseWheelScrollTimestamp;
    private lastKnownScrollCoordinate;
    constructor(scrollThrottling?: number);
    setCoordinate(e: {
        dimension: DimensionType;
        coordinate: number;
    }): void;
    setCoordinateFromScroll(e: {
        dimension: DimensionType;
        coordinate: number;
    }): void;
    /**
     * Remember last mw event time
     */
    latestScrollUpdate(dimension: DimensionType): void;
    isReady(type: DimensionType, coordinate: number): boolean;
    private verifyChange;
    /**
     * Check if scroll is ready to accept new value
     * this is an edge case for scroll events
     * when we need to apply scroll after throttling
     */
    private lastScrollUpdateCallbacks;
    private clearLastScrollUpdate;
    throttleLastScrollUpdate(type: DimensionType, coordinate: number, lastScrollUpdate: () => void): void;
}
