import Point from '../../util/point';
import { MouseRotateHandler, MousePitchHandler } from '../handler/mouse';
import type Map from '../map';
import type { IControl } from './control';
declare type Options = {
    showCompass?: boolean;
    showZoom?: boolean;
    visualizePitch?: boolean;
};
/**
 * A `NavigationControl` control contains zoom buttons and a compass.
 *
 * @implements {IControl}
 * @param {Object} [options]
 * @param {Boolean} [options.showCompass=true] If `true` the compass button is included.
 * @param {Boolean} [options.showZoom=true] If `true` the zoom-in and zoom-out buttons are included.
 * @param {Boolean} [options.visualizePitch=false] If `true` the pitch is visualized by rotating X-axis of compass.
 * @example
 * var nav = new maplibregl.NavigationControl();
 * map.addControl(nav, 'top-left');
 * @see [Display map navigation controls](https://maplibre.org/maplibre-gl-js-docs/example/navigation/)
 * @see [Add a third party vector tile source](https://maplibre.org/maplibre-gl-js-docs/example/third-party/)
 */
declare class NavigationControl implements IControl {
    _map: Map;
    options: Options;
    _container: HTMLElement;
    _zoomInButton: HTMLButtonElement;
    _zoomOutButton: HTMLButtonElement;
    _compass: HTMLButtonElement;
    _compassIcon: HTMLElement;
    _handler: MouseRotateWrapper;
    constructor(options: Options);
    _updateZoomButtons(): void;
    _rotateCompassArrow(): void;
    onAdd(map: Map): HTMLElement;
    onRemove(): void;
    _createButton(className: string, fn: (e?: any) => unknown): HTMLButtonElement;
    _setButtonTitle(button: HTMLButtonElement, title: string): void;
}
declare class MouseRotateWrapper {
    map: Map;
    _clickTolerance: number;
    element: HTMLElement;
    mouseRotate: MouseRotateHandler;
    mousePitch: MousePitchHandler;
    _startPos: Point;
    _lastPos: Point;
    constructor(map: Map, element: HTMLElement, pitch?: boolean);
    down(e: MouseEvent, point: Point): void;
    move(e: MouseEvent, point: Point): void;
    off(): void;
    offTemp(): void;
    mousedown(e: MouseEvent): void;
    mousemove(e: MouseEvent): void;
    mouseup(e: MouseEvent): void;
    touchstart(e: TouchEvent): void;
    touchmove(e: TouchEvent): void;
    touchend(e: TouchEvent): void;
    reset(): void;
}
export default NavigationControl;
//# sourceMappingURL=navigation_control.d.ts.map