import { EarthMap } from '../earthmap';
import Point from '../geo/point';
import { Map } from '../map';
import HandlerManager from './handler_manager';
/**
 * The `ScrollZoomHandler` allows the user to zoom the map by scrolling.
 */
declare class ScrollZoomHandler {
    private map;
    private el;
    private enabled;
    private active;
    private zooming;
    private aroundCenter;
    private around;
    private aroundPoint;
    private type;
    private lastValue;
    private timeout;
    private finishTimeout;
    private lastWheelEvent;
    private lastWheelEventTime;
    private startZoom;
    private targetZoom;
    private delta;
    private easing;
    private prevEase;
    private frameId;
    private handler;
    private defaultZoomRate;
    private wheelZoomRate;
    /**
     * @private
     */
    constructor(map: Map | EarthMap, handler: HandlerManager);
    /**
     * Set the zoom rate of a trackpad
     * @param {number} [zoomRate=1/100] The rate used to scale trackpad movement to a zoom value.
     * @example
     * // Speed up trackpad zoom
     * map.scrollZoom.setZoomRate(1/25);
     */
    setZoomRate(zoomRate: number): void;
    /**
     * Set the zoom rate of a mouse wheel
     * @param {number} [wheelZoomRate=1/450] The rate used to scale mouse wheel movement to a zoom value.
     * @example
     * // Slow down zoom of mouse wheel
     * map.scrollZoom.setWheelZoomRate(1/600);
     */
    setWheelZoomRate(zoomRate: number): void;
    /**
     * Returns a Boolean indicating whether the "scroll to zoom" interaction is enabled.
     *
     * @returns {boolean} `true` if the "scroll to zoom" interaction is enabled.
     */
    isEnabled(): boolean;
    isActive(): boolean;
    isZooming(): boolean;
    /**
     * Enables the "scroll to zoom" interaction.
     *
     * @param {Object} [options] Options object.
     * @param {string} [options.around] If "center" is passed, map will zoom around center of map
     *
     * @example
     *   map.scrollZoom.enable();
     * @example
     *  map.scrollZoom.enable({ around: 'center' })
     */
    enable(options?: any): void;
    /**
     * Disables the "scroll to zoom" interaction.
     *
     * @example
     *   map.scrollZoom.disable();
     */
    disable(): void;
    wheel(e: WheelEvent): void;
    renderFrame(): {
        noInertia: boolean;
        needsRenderFrame: boolean;
        zoomDelta: number;
        around: Point;
        originalEvent: any;
    } | undefined;
    reset(): void;
    private onScrollFrame;
    private onTimeout;
    private start;
    private smoothOutEasing;
}
export default ScrollZoomHandler;
