///
import { LngLat } from '../geo/lng_lat';
import { TransformProvider } from './transform-provider';
import type Point from '@mapbox/point-geometry';
import type { Handler } from '../handler_manager';
import type { Map } from '../map';
import type { AroundCenterOptions } from './two_fingers_touch';
/**
* The `ScrollZoomHandler` allows the user to zoom the map by scrolling.
*
* @group Handlers
*/
export declare class ScrollZoomHandler implements Handler {
_map: Map;
_tr: TransformProvider;
_enabled: boolean;
_active: boolean;
_zooming: boolean;
_aroundCenter: boolean;
_around: LngLat;
_aroundPoint: Point;
_type: 'wheel' | 'trackpad' | null;
_lastValue: number;
_timeout: ReturnType;
_finishTimeout: ReturnType;
_lastWheelEvent: any;
_lastWheelEventTime: number;
_startZoom: number;
_targetZoom: number;
_delta: number;
_easing: (a: number) => number;
_prevEase: {
start: number;
duration: number;
easing: (_: number) => number;
};
_frameId: boolean;
_triggerRenderFrame: () => void;
_defaultZoomRate: number;
_wheelZoomRate: number;
/** @internal */
constructor(map: Map, triggerRenderFrame: () => void);
/**
* Set the zoom rate of a trackpad
* @param zoomRate - 1/100 The rate used to scale trackpad movement to a zoom value.
* @example
* Speed up trackpad zoom
* ```ts
* map.scrollZoom.setZoomRate(1/25);
* ```
*/
setZoomRate(zoomRate: number): void;
/**
* Set the zoom rate of a mouse wheel
* @param wheelZoomRate - 1/450 The rate used to scale mouse wheel movement to a zoom value.
* @example
* Slow down zoom of mouse wheel
* ```ts
* map.scrollZoom.setWheelZoomRate(1/600);
* ```
*/
setWheelZoomRate(wheelZoomRate: number): void;
/**
* Returns a Boolean indicating whether the "scroll to zoom" interaction is enabled.
* @returns `true` if the "scroll to zoom" interaction is enabled.
*/
isEnabled(): boolean;
isActive(): boolean;
isZooming(): boolean;
/**
* Enables the "scroll to zoom" interaction.
*
* @param options - Options object.
* @example
* ```ts
* map.scrollZoom.enable();
* map.scrollZoom.enable({ around: 'center' })
* ```
*/
enable(options?: AroundCenterOptions | boolean): void;
/**
* Disables the "scroll to zoom" interaction.
*
* @example
* ```ts
* map.scrollZoom.disable();
* ```
*/
disable(): void;
wheel(e: WheelEvent): void;
_onTimeout: (initialEvent: MouseEvent) => void;
_start(e: MouseEvent): void;
renderFrame(): {
noInertia: boolean;
needsRenderFrame: boolean;
zoomDelta: number;
around: Point;
originalEvent: any;
};
_smoothOutEasing(duration: number): (t: number) => number;
reset(): void;
}